极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18658|回复: 4

如何定义两个以上I2C地址

[复制链接]
发表于 2014-4-5 21:03:01 | 显示全部楼层 |阅读模式
本帖最后由 honyfox 于 2014-4-7 14:12 编辑

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

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

使用道具 举报

发表于 2014-4-5 22:17:19 | 显示全部楼层
i2c设备直接挂到i2c总线上就好了,具体的区分设备是总线来负责的

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

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

然后接到i2c总线上就可以进行通讯了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-6 20:08:33 | 显示全部楼层
本帖最后由 honyfox 于 2014-4-6 20:10 编辑
zoologist 发表于 2014-4-5 22:17
i2c设备直接挂到i2c总线上就好了,具体的区分设备是总线来负责的

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


哦,谢谢指教!

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

使用道具 举报

 楼主| 发表于 2014-4-7 14:12:39 | 显示全部楼层
明白了,非常感谢两位!!
回复 支持 反对

使用道具 举报

发表于 2015-4-1 12:40:07 | 显示全部楼层
注意有些传感器虽然标称也是使用I2C协议通信,但是有改动,比如SI7005就不能修改slave address,它是通过CS来选择不同的从设备
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 06:19 , Processed in 0.044353 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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