1

我们正在尝试将 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 游乐场中建议的代码时: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 均已连接。任何评论将不胜感激。

4

3 回答 3

2

我对你提到的第二个代码有完全相同的问题(-1 -1 -1 ....)

我对第一个错误有其他错误,根本无法让它工作。(我对 arduino 编程非常陌生,所以几乎 100% 肯定这将是我做错的事情)。

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

从以下位置下载 zip 文件:https ://github.com/sparkfun/MPU-9150_Breakout (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)。

于 2013-11-26T10:56:28.383 回答
2

同样的问题。只需更改设备的 I2C 地址...连接,AD0 到 GND 和 cho

于 2014-05-31T18:25:09.487 回答
0

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

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

于 2013-11-30T19:23:21.767 回答