用Arduino micro读取MPU-9150断板的原始数据

时间:2013-11-16 06:13:55

标签: arduino accelerometer gyroscope firmware magnetometer

我们正在尝试将MPU-9150断板连接到arduino micro,我们使用了sparkfun文档(https://github.com/sparkfun/MPU-9150_Breakout/tree/master/firmware)中建议的示例代码来读取原始数据。我们的Vcc总是3.3V。我们的波特率是9600.这是串口监视器显示的内容。所有9DOF值均为零

a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 
a/g/m: 0 0 0 0 0 0 0 0 0 …

当我们使用Arduino playground中建议的代码时:http://playground.arduino.cc//Main/MPU-9150这是我们得到的。现在所有值都是-1

-1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 
36.50 -1 -1 -1 -1 -1 -1 -1 -1 -1 

........ 我们也很确定这些联系。我们真的不知道我们在哪里做错了。 Vcc,GND,SCL和SDA都连接在一起。任何评论将不胜感激。

3 个答案:

答案 0 :(得分:2)

我对你提到的第二个代码(-1 -1 -1 ....)

有完全相同的问题

我在第一个错误中遇到了其他错误,根本无法解决问题。 (我对arduino编程很陌生,所以几乎100%肯定会出现我做错的事。)

但是,我确实得到了与您的第一个示例相关的旧代码,如下所示: [使用arduino uno连接gnd-gnd,vcc-3.3v,sda-A4和scl-A5]

https://github.com/sparkfun/MPU-9150_Breakout下载zip文件 (zip文件位于右侧)

解压缩,复制文件夹I2Cdev& MPU6150进入C:... / users /.../ documents / arduino / libraries / (或在保存图书馆时适当的类似)

运行Arduino

打开程序:MPU9150_raw并上传 (它在MPU6150 \ examples \ MPU9150_raw中找到)

打开串行监视器

将波特率更改为36000

希望有效!


我最近还在playground.arduino.cc//Main/MPU-9150上使用Arduino Uno和分线板获得了代码。如果你正在使用sparkfun分线板,我认为你需要改变代码在两个地方来将I2C地址更改为0x68,因为板上的AD0被拉低而不是高。所以你要搜索int MPU9150_I2C_ADDRESS = 0x69;并更改为0x68(它在代码中提到这一点很抱歉,如果这对大多数人来说是显而易见的,只是以为我会发布它,以防它帮助其他人)。

在6050的arduino网页上(我没有足够的声誉发布另一个链接) 它说

  

“I2C地址取决于传感器的AD0引脚。如果接地,则>地址为0x68。如果连接到VLOGIC(+ 3.3V),则为0x69。有几个传感器>带有MPU-6050传感器的电路板已焊接在其上。其中一些电路板在AD0(地址= 0x68)处有一个下拉电阻,其他电路板有一个上拉电阻(地址= 0x69)。“ / p>

答案 1 :(得分:2)

同样的问题。 Juste更改设备的I2C地址... 连接,AD0至GND并选择

答案 2 :(得分:0)

我也有mpu9150。这段代码给出了所有三个内部芯片的原始值。仔细检查你的波特率。祝你好运

https://github.com/sparkfun/MPU-9150_Breakout/blob/master/firmware/MPU6050/Examples/MPU9150_raw/MPU9150_raw.ino