2016-03-13 50 views
-3

我用Arduino Uno單獨測試了板載GY86(MPU6050-HMC8553-MS5611)和小型RTC模塊ds1307的所有傳感器。 現在我正在嘗試連接它們並同時獲得結果。 恰恰當我連接DS1307到I2C總線,突然我得到(MPU6050連接失敗錯誤)。看起來他們不能一起工作。他們單獨工作很好。 這是初始化代碼:兩個i2c傳感器不能同時工作

#include "I2Cdev.h" 
#include "MPU6050.h" 
#include <Wire.h> 
#include "RTClib.h" 
#include <MS5611.h> 
RTC_DS1307 RTC; 
double startTime; 
MPU6050 accelgyro(0x68); 
MPU6050 mpu = accelgyro; 

此代碼執行設置功能:

#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE 
    Wire.begin(); 
    TWBR = 24; // 400kHz I2C clock (200kHz if CPU is 8MHz). Comment this line if having compilation difficulties with TWBR. 
#elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE 
    Fastwire::setup(400, true); 
#endif 
Serial.begin(115200); 
while (!Serial) // wait for Leonardo enumeration, others continue immediately 
    ; 
mpu.initialize(); 
Serial.println(mpu.testConnection() ? F("") : F("MPU6050 connection failed")); 

mpu.setI2CMasterModeEnabled(false); 
mpu.setI2CBypassEnabled(true) ; 
mpu.setSleepEnabled(false); 

RTC.begin(); 
DateTime now = RTC.now(); 
DateTime nowSetup = RTC.now(); 
double startTime = nowSetup.unixtime(); 
if (! RTC.isrunning()) { 
    Serial.println("RTC is NOT running!"); 
} 

可以採取什麼問題嗎?

+0

只要刪除問題,因爲你解決了它。 – gsamaras

回答

-1

我發現了這個問題。 Arduino無法提供足夠的電流,因此我使用了外部電源並且工作正常。