Arduino Uno R3开发板的外部IO口是很是有限的。在驱动LCD1602时,尽管咱们的数据线使用了4线,相对于8线方式减小一半,可是在须要外接多种传感器的应用中,4线驱动仍是占用了过多的IO。本篇介绍LCD1602的IIC驱动方式,经过IIC转接板使用IIC接口,只占用2个IO口就能驱动LCD1602。html
IIC「Inter-Integrated Circuit 集成电路总线」是一种串行通讯总线,应用于板载低速设备间的通信。由飞利浦公司开发的这一通信协议,其目的就是为了简化系统硬件设计,减小设备间的连线。
IIC串行总线有两根信号线,一根是双向的数字线SDA,另外一根是时钟线SCL,每一个IIC设备都有本身的地址,IIC总线上多个设备间经过设备地址进行区别。
oop
上图为本篇使用的IIC转接板,直接焊接于LCD1602。可经过跳线帽设置是否开启背光,经过蓝色电位器调节对比度。IIC设备地址可经过短路A0/A1/A2修改,默认地址0x27post
在Arduino IDE中点击「项目」—「加载库」—「管理库」,查找「LiquidCrystal_I2C」,选择最新版本进行安装。(这个得慢慢找)ui
IIC转接板的VCC、GND分别链接开发板5V、GND,转接板的SDA、SCL链接开发板A四、A5。spa
为何接A四、A5脚,这里能够参考 3.详解Arduino Uno开发板的引脚分配图及定义(重要且基础)设计
对应到I2C版的code
这样就明白了吧?htm
1 /* 2 * LCD1602 IIC驱动 3 */ 4 #include <Wire.h> 5 #include <LiquidCrystal_I2C.h> 6 7 LiquidCrystal_I2C lcd(0x27,16,2); //配置LCD地址及行列 8 9 void setup() 10 { 11 lcd.init(); //初始化LCD 12 lcd.backlight(); //打开背光 13 } 14 15 void loop() 16 { 17 lcd.setCursor(0,0);//设置显示位置 18 lcd.print("hello ");//显示字符数据 19 lcd.setCursor(0,1);//设置显示位置 20 lcd.print("world !");//显示字符数据 21 }
可经过转接板蓝色电位器调节对比度,使LCD1602显示清晰。blog