Arduino之间的I2C通讯
i2c地址设定
i2caddress 就像是你家中的地址, 每个slave都有自己的地址,由於线路上只有一个master,加上slave只可以向master通讯,所以master是不需地址的。
设定 i2c 地址,基本上是没有限制的,只要同一线路上,没有重复就可以了。
要设定slave板子的地址, 只需要执行Wire.begin(《地址》); 而 master因为不需要地址, 只要Wire.begin()就可以了,。
以下是一个 slave 设定的例子,把 slave板子的地址设定为 0x12,上载到slave板子上去执行就可以了。
[pre lang=“arduino” line=“1”file=“slave_01.ino”]#include 《Wire.h》
#define SLAVE_ADDRESS 0x12
void setup() {
Wire.begin(SLAVE_ADDRESS); // join I2C bus as a slave with address 0x12
}
void loop() {
}[/code]
i2c地址扫瞄
slave 建立後,就要看看 master 如果找到它了。
i2c scanner可以说是 master 板子的最基本例子,可以用作测试线路上连接了的设备的存在(只测试存在性,并非测试其功能)。
i2c_scanner 其实也很简单, 由 master 向所有地址发出 beginTransmission 再