【问题标题】:two i2c sensors cant work simultaneously两个 i2c 传感器不能同时工作
【发布时间】:2016-03-13 08:44:47
【问题描述】:

我使用 Arduino Uno 分别测试了板载 GY86(MPU6050-HMC8553-MS5611) 和微型 RTC 模块 ds1307 的所有传感器。 现在我正在尝试连接它们并同时获得结果。 正是当我将 DS1307 连接到 I2C 总线时,突然我得到(MPU6050 连接失败错误)。看来他们不能一起工作。他们分开工作很好。 这是初始化代码:

#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!");
}  

可能是什么问题?

【问题讨论】:

  • 只要把问题删掉,你就解决了。

标签: c++ arduino arduino-uno i2c


【解决方案1】:

我发现了问题。 Arduino 无法提供足够的电流,所以我使用了外部电源,它工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多