honyfox 发表于 2014-4-5 21:03:01

如何定义两个以上I2C地址

本帖最后由 honyfox 于 2014-4-7 14:12 编辑

对I2C的地址定义一直有点概念模糊,学习了一下hunduncn大哥写的BH1750教材(http://www.geek-workshop.com/forum.php?mod=viewthread&tid=1610),但是对于多个BH1750或其他传感器设备,应该如何定义I2C的地址?

参阅了一下官方对于I2C库的说明,uno板子是定义在A4、A5上(Uno, Ethernet        A4 (SDA), A5 (SCL)),那如果使用多个BH1750,应该怎么硬件连线呢?求指点,谢谢!

zoologist 发表于 2014-4-5 22:17:19

i2c设备直接挂到i2c总线上就好了,具体的区分设备是总线来负责的

一般i2c设备会提供给你一个硬件跳线的位置来选择当前的地址

比如同样都是 eeprom ,同样的板子,可以通过跳线,让一块板子地址是 0x20 一个是0x22

然后接到i2c总线上就可以进行通讯了

honyfox 发表于 2014-4-6 20:08:33

本帖最后由 honyfox 于 2014-4-6 20:10 编辑

zoologist 发表于 2014-4-5 22:17 static/image/common/back.gif
i2c设备直接挂到i2c总线上就好了,具体的区分设备是总线来负责的

一般i2c设备会提供给你一个硬件跳线的位 ...

哦,谢谢指教!

可不可以理解成UNO如果要接多个I2C设备,只需要 将设备并联到A4 (SDA), A5 (SCL)上就可以了?

honyfox 发表于 2014-4-7 14:12:39

明白了,非常感谢两位!!

ardyPro 发表于 2015-4-1 12:40:07

注意有些传感器虽然标称也是使用I2C协议通信,但是有改动,比如SI7005就不能修改slave address,它是通过CS来选择不同的从设备
页: [1]
查看完整版本: 如何定义两个以上I2C地址