使用 Arduino 数字引脚为 MPU-6050 供电

Powering MPU-6050 with Arduino digital pins

我一直在尝试将 MPU-6050(特别是 GY-521)与 Arduino Nano v3.0 一起使用,但是当我尝试使用连接到 VCC 和 GND 的 MPU-6050 供电时,我没有得到任何读数Arduino 上的数字引脚。

当我将 VCC 和 GND 连接到 Arduino 上的 5V 或 3V3 和 GND 时,我能够从 gyro/accelerometer 获得读数。当我将它们连接到数字引脚时,我得到了读数,但它们都是零,即使传感器被摇动,这些值也保持为零。我在数字引脚设置中使用的代码如下:

pinMode(powerpin, OUTPUT);
pinMode(groundpin, OUTPUT);
digitalWrite(powerpin, HIGH);
digitalWrite(groundpin, LOW);

当我用相同的引脚为加速度计 ADXL377 供电时,我可以毫无问题地获得读数。这是可以通过数字引脚的电流量的问题吗?似乎 Nano 上的数字引脚最大可以输出 40mA,而 MPU-6050 只需要 3mA,所以我假设电流不是问题。任何帮助都会很棒。

我遇到了同样的问题,这就是问题所在。 首先,将 LOW 连接到 GND 是个好主意。 另一件事:当您通过以下方式将引脚设置为 HIGH 时:

pinMode(powerpin, OUTPUT);
digitalWrite(powerpin, HIGH);

一段时间后它会变高,所以你应该在:

之间放一些延迟
pinMode(powerpin, OUTPUT);
digitalWrite(powerpin, HIGH);

delay(10);

Wire.begin();
Wire.beginTransmission(0x68);
Wire.write(0x6B);  // PWR_MGMT_1 register
Wire.write(0);     // set to zero (wakes up the MPU-6050)
Wire.endTransmission(true);

因此您需要获得电源然后唤醒设备。抗体。 10ms 是一个很好的值。

之后您可以正常阅读(如果您不经常阅读,最好让设备休眠)。