LCD 1602液晶显示器2(I2C总线)
上一小节中我们学习了LCD1602的标准连接,但因为线太多,在实际的工作中会占用太多的Arduino的针脚,所以不是很实用。为了解决这个问题,下面我们介绍一种总线控制IIC(I2C),我们需要一块带有I2C协议的转接板的LCD1602,见下下图。
使用I2C协议的转换板的好处是,除了VCC和GND外,
只需要两根信号线SDA和SCL,布线比较方便简洁。
SDA(Serial Data Line): 串行数据线
SCL(Serial Clock Line):串行时钟线
读者若有兴趣,可查看一些书籍关于I2C协议的资料,
它可以让多个Arduino开发板之间进行通信。
可以将一个Arduino开发板作为主设备,通过I2C总
线与其他Arduino从设备相连接, 接线非常简单,如下图下表
接好线后,请把下面的程序上传至Arduino UNO。
#include <Wire.h>
#include <LiquidCrystal_I2C.h> / /引用I2C库
//设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
lcd.init(); // 初始化LCD
lcd.backlight(); //设置LCD背景等亮
lcd.setCursor(0,0); //设置显示指针在左上角,即列0,行0
lcd.print(“LCD is beginning”); //输出字符“LCD is beginning”到LCD1602上
lcd.setCursor(0,1); //设置显示指针在左上角,即列0,行1
lcd.print(“Wait for…”); //输出字符“Wait for…”到LCD1602上
delay(4000); //延时4秒
lcd.clear(); // LCD 清屏,光标移至屏幕左上角
}
void loop()
{
lcd.setCursor(0,0); //设置显示指针在左上角,即列0,行0
lcd.print(“LCD1602 I2C Test”); //输出字符“LCD1602 I2C Test”到LCD1602上
lcd.setCursor(0,1); //设置显示指针在左上角,即列0,行1
lcd.print(" by Johnson"); //输出字符“ by Johnson”到LCD1602上
delay(1000); //延时1秒
}
如果LCD上没有任何的显示,请不要灰心,在I2C的连接板后面有一个蓝色的旋钮,可以调节屏幕的对比度,直到屏幕上显示出字符为止。