1. IIC转接板介绍
Arduino Uno R3开发板的外部IO口是非常有限的。在驱动LCD1602时,尽管我们的数据线使用了4线,相对于8线方式减少一半,但是在需要外接多种传感器的应用中,4线驱动还是占用了过多的IO。本篇介绍LCD1602的IIC驱动方式,通过IIC转接板使用IIC接口,只占用2个IO口就能驱动LCD1602。
IIC「Inter-Integrated Circuit 集成电路总线」是一种串行通信总线,应用于板载低速设备间的通讯。由飞利浦公司开发的这一通讯协议,其目的就是为了简化系统硬件设计,减少设备间的连线。
IIC串行总线有两根信号线,一根是双向的数字线SDA,另一根是时钟线SCL,每个IIC设备都有自己的地址,IIC总线上多个设备间通过设备地址进行区别。
上图为本篇使用的IIC转接板,直接焊接于LCD1602。可通过跳线帽设置是否开启背光,通过蓝色电位器调节对比度。IIC设备地址可通过短路A0/A1/A2修改,默认地址0x27
2. 安装驱动库
在Arduino IDE中点击「项目」—「加载库」—「管理库」,查找「LiquidCrystal_I2C」,选择最新版本进行安装。(这个得慢慢找)
3.实验材料
- Uno R3开发板
- 配套USB数据线
- 面包板及配套连接线
- LCD1602液晶屏带IIC转接板
4.实验步骤
4.1.电路连接。
IIC转接板的VCC、GND分别连接开发板5V、GND,转接板的SDA、SCL连接开发板A4、A5。
为什么接A4、A5脚,这里可以参考 3.详解Arduino Uno开发板的引脚分配图及定义(重要且基础)
对应到I2C版的
这样就明白了吧?
4.2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。
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 }
4.3. 连接开发板,设置好对应端口号和开发板类型,进行程序下载。
5.实验现象
可通过转接板蓝色电位器调节对比度,使LCD1602显示清晰。