和爷爷一起学ArduinoLCD1602液晶屏的使用(续)
新的LCD1602液晶屏加了PCF8574小板子,也就是加了I2C。这样与Arduino连接,就只需要2条线。
I2C(或IIC,读作I squared C),Inter-Integrated Circuit(芯片间电路)。I2C是一种总线,一条I2C总线上最多可以挂接128个I2C节点,其中一个是主节点,其余为从节点。因此,挂接在I2C总线上的每个组件必须有独一无二的I2C地址。I2C地址是7位二进制数。最早的I2C组件的地址是在芯片里烧死的。后来为了不使组件的地址发生冲突,只烧死了高4位,低3位做成跳线,让用户自行改变I2C地址。以LCD1602A为例,高4位是烧死的,0100。上图是LCD1602A的背面。在对比度调节电位器的下方有三对焊点,分别标以A0、A1、A2。这就是I2C地址低3位。里面各自有一个上拉电阻。因此,如果你不动它们,它们就全是高电平,111。你在哪对焊点上滴一滴锡,对应的位就变成了0。也就改变了I2C地址。
LCD1602A的I2C地址的高4位是0100,因此,LCD1602A可以选择的I2C地址如下表。
A2
A1
A0
二进制
十六进制
0
0
0
0100000
0x20
0
0
1
0100001
0x21
0
1
0
0100010
0x22
0
1
1
0100011
0x23
1
0
0
0100100
0x24
1
0
1
0100101
0x25
1
1
0
0100110
0x26
1
1
1
0100111
0x27
如果你的Arduino连接一个以上I2C组件,你就得考虑I2C地址冲突问题。
I2C还有个上拉电阻问题,下次再说。