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

时间:2015-03-31 14:43:14

标签: arduino mpu

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

当我将VCC和GND连接到Arduino上的5V或3V3和GND时,我能够从陀螺仪/加速度计获得读数。当我将它们连接到数字引脚时,我会得到读数,但它们都是零,即使传感器被抖动,值仍保持为零。我在数字引脚设置中使用的代码如下:

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

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

1 个答案:

答案 0 :(得分:0)

我有同样的问题,这就是为什么这是一个问题。 首先将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);

所以你需要获得电源然后唤醒设备。 AB型。 10ms是一个很好的价值。

之后你可以正常阅读(如果你不经常阅读它,那么好主意就是睡觉设备)。