极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 81288|回复: 36

arduino下挂多个MPU6050,如何写I2C程序?

[复制链接]
发表于 2013-7-6 11:07:01 | 显示全部楼层 |阅读模式
8
本帖最后由 zhanghuipz 于 2013-7-6 11:14 编辑

如果是SPI总线控制,倒还容易些,但最近看论坛里的MPU6050的库函数,都是I2C的库文件,之前看了一些资料好像是通过更改I2C器件地址,但具体如何操作呢,如何写程序呢?求大神解答,万分感谢!@弘毅 ,@Randy ,@wzc0066  ,@葱拌豆腐 ,@黑马 。。。。。。。

最佳答案

查看完整内容

在网上搜一下可以找到mpu5060的中文说明,其中说到可以同时使用两片,方法是同样的地址,但对pin9置高置低来完成偏选,因此推论只要控制pin9就可以进行多片同时使用。不过这相当于多片轮询速度是否能跟上需要你估计了。
回复

使用道具 举报

发表于 2013-7-11 12:07:33 | 显示全部楼层
zhanghuipz 发表于 2013-7-7 14:38
只能使用两个吗,不能再多了吗,我看资料上说可以有四个从机,这是什么意思呢


源地址:http://wenku.baidu.com/view/95b01eb5960590c69ec376a3.html

从上表上看,6050只有一个ADD0脚.也就是说 一个IIC总线上最多接2个MPU6050,
IIC通讯建议你看看精华区, 就好像IP地址一样, 唯一不同的是,IP地址是可以自由指定的,IIC地址一般是通过硬件地址来指定的,1个脚,意味着只能用2个地址其中的一个
访问的时候,要用到这个地址才能访问这个器件,地址不对 其他硬件是不会响应的,这就是为啥IIC可以同时并联N多设备而不会冲突.
一个脚 意味着只能 2个状态 + 或者 GND (或者叫做 高或者低)

如果用2个MPU并联在一个IIC总线上, 它们的ADD0脚 必须是一个连接到 高 一个连接到 地 ,IIC地址可以看数据手册 上面会标注 主地址和备用地址(或者标注 ADD0的状态和对应的地址)


================黄金分割线 详细看我上面的引用地址========
MPU-60X0的Slave地址为b110100X,7位字长,最低有效位X由AD0管脚上的逻辑电平决定。这样就可以允许两个MPU-60X0
连接到同一条I2C总线,此时,一个设备的地址为b1101000(AD0为逻辑低电平),另一个为b1101001(AD0为逻辑高)。
===============================================

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-7-6 11:07:02 | 显示全部楼层
在网上搜一下可以找到mpu5060的中文说明,其中说到可以同时使用两片,方法是同样的地址,但对pin9置高置低来完成偏选,因此推论只要控制pin9就可以进行多片同时使用。不过这相当于多片轮询速度是否能跟上需要你估计了。
回复

使用道具 举报

发表于 2013-7-7 00:14:59 | 显示全部楼层
请教楼主大神 你在什么状况下需要同时运行那么多的6050?
还有就是 IIC总线是通过IIC地址访问的,大多数器件的IIC地址是固定的,有的是可选的(硬件跳线 接地和接高 IIC地址不同)
也就是说 最多同一个IIC总线最多2个相同的设备。。。。
如果需要同时监控很多设备姿态,建议用多个ARDUINO+6050来实现,毕竟IIC总线的物理长度也是受到限制的,物理线路太长信号和供电衰减都会严重。
回复

使用道具 举报

发表于 2013-7-7 08:14:41 | 显示全部楼层
mpu6050的pin9可以做为类似片选功能,多芯片的i2c总线并在一起,使用统一地址,pin9分别控制,从选中的进行通讯。
回复

使用道具 举报

 楼主| 发表于 2013-7-7 10:03:29 | 显示全部楼层
林定祥 发表于 2013-7-7 08:14
mpu6050的pin9可以做为类似片选功能,多芯片的i2c总线并在一起,使用统一地址,pin9分别控制,从选中的进行 ...

还有这个功能?还是不懂,I2C总线也可以使用片选功能通信?请问你做个相关实验么,谢谢
回复

使用道具 举报

 楼主| 发表于 2013-7-7 10:06:54 | 显示全部楼层
darkorigin 发表于 2013-7-7 00:14
请教楼主大神 你在什么状况下需要同时运行那么多的6050?
还有就是 IIC总线是通过IIC地址访问的,大多数器 ...

你好,首先谢谢你的解答,我想用多个MPU6050来控制多个舵机。还有我看了资料,好像MPU6050可以有四个从机,这是不是说可以挂4个呢?
回复

使用道具 举报

 楼主| 发表于 2013-7-7 14:38:55 | 显示全部楼层
林定祥 发表于 2013-7-7 14:24
在网上搜一下可以找到mpu5060的中文说明,其中说到可以同时使用两片,方法是同样的地址,但对pin9置高置低来 ...

只能使用两个吗,不能再多了吗,我看资料上说可以有四个从机,这是什么意思呢
回复

使用道具 举报

发表于 2013-7-7 14:42:11 | 显示全部楼层
说明上的例子是两个,推理用此方法可以n个,只要速度不影响。
回复

使用道具 举报

 楼主| 发表于 2013-7-7 15:07:07 | 显示全部楼层
林定祥 发表于 2013-7-7 14:42
说明上的例子是两个,推理用此方法可以n个,只要速度不影响。

可以把你找到的这个MPU6050中文资料传给我一份么,我没找到,谢谢了
回复

使用道具 举报

发表于 2013-7-7 17:18:40 | 显示全部楼层
记得在百度里搜到的,可能下载不了,一会儿给个网址。
回复

使用道具 举报

发表于 2013-7-7 17:30:47 | 显示全部楼层
http://wapwenku.baidu.com/view/9 ... age/1/1373188859474
或者百度搜mpu6050 就能看见mpu6000/605x中文资料,其中10.2中的描述。
回复

使用道具 举报

 楼主| 发表于 2013-7-7 18:39:45 | 显示全部楼层
林定祥 发表于 2013-7-7 17:30
http://wapwenku.baidu.com/view/95b01eb5960590c69ec376a3.html?ssid=0&from=1099c&uid=651FA377E4355E636 ...

好吧,谢谢了
回复

使用道具 举报

 楼主| 发表于 2013-7-7 19:20:54 | 显示全部楼层
林定祥 发表于 2013-7-7 14:42
说明上的例子是两个,推理用此方法可以n个,只要速度不影响。

你好,我刚才把你发的网站里的资料看了一遍,知道了怎么控制两个,但还是不懂怎么控制2个以上的MPU6050。因为pin9只能是高或低,也就是能更改的地址只有两个,两个以上器件如何控制呢?
回复

使用道具 举报

发表于 2013-7-7 20:17:07 | 显示全部楼层
这个问题低级了些,你的arduino有多余的端口吧,最简单的方法,一个端口挂一颗芯片的使能端,控制端口就能分别通信。
回复

使用道具 举报

 楼主| 发表于 2013-7-7 21:07:44 | 显示全部楼层
林定祥 发表于 2013-7-7 20:17
这个问题低级了些,你的arduino有多余的端口吧,最简单的方法,一个端口挂一颗芯片的使能端,控制端口就能分 ...

不是,你没懂我的意思,通常默认的MPU6050地址是0x68(pin9为低),若pin9为高时即0x69,也就是其他的MPU6050的pin9引脚再怎么变也是这两个地址中的一个,你懂我的意思了吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-1 00:13 , Processed in 0.047161 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表