ESP32开发板通过PCF8574串行IIC接口驱动LCD1602/LCD2004液晶屏

0 阅读3分钟

LCD1602/2004液晶屏简介

LCD1.jpg LCD2.jpg

LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。可以显示2行每行16个字符,总共32个字符。字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD,常用16×1,16×2,20×2和40×2等的模块。不同厂家生产的LCD1602驱动控制芯片可能有所不同,但使用方法都是一样的,能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。部分颜色的LCD在背光灯引脚A、K不接电源也可以在一定光照下可以看见显示出的字符。如黄绿屏的LCD1602/2004。

LCD2004可以显示4行每行20个字符,总共80个字符,比LCD1602(2*16=32个字符)显示的更多。其引脚功能顺序与LCD1602兼容。

在这里插入图片描述

PCF8574 IO扩展模块简介

LCD4.jpg

它通过两条双向总线(I2C)可使大多数 MCU 实现远程 I/O 口扩展。该器件包含一个 8 位准双向口和一个 I2C 总线接口。PCF8574 电流消耗很低,且口输出锁存具有大电流驱动能力,可直接驱动 LED。它还带有一条中断接线(INT)可与 MCU 的中断逻辑相连。通过 INT 发送中断信号,远端 I/O 口不必经过 I2C 总线通信就可通知 MCU 是否有数据从端口输入。

带背光电源控制,可以通过跳线帽设置是否连接背光电源,插上跳线帽为连接背光电源,拔掉跳线帽为断开背光电源。

对比度可调节,旋转蓝色电位器,顺时针增强。

IIC总线上可以挂载八个PCF8574,即可连接八个LCD2004屏幕。

通过短路模块上的A0/A1/A2焊盘修改设备地址,默认不短接,此时A0/A1/A2都为1,短路时为0。PCF8574T的IIC器件地址为0100A2A1A0,PCF8574AT的器件地址为0111A2A1A0,本实验采用的是PCF8574AT,默认器件地址为0x3F。

在这里插入图片描述

ESP32开发板与LCD模块接线

Arduino UNOFCF8574
21SDA
22SCL
5VVCC
GNDGND

LCD1602接线 在这里插入图片描述 LCD2004接线 在这里插入图片描述

测试代码

在Arduino IDE库管理器搜索LiquidCrystal_I2C,并安装如图示所例程库 在这里插入图片描述

打开Hello_World.ino例程,并按如下程序修改例程 在这里插入图片描述

LCD2004驱动程序 lcd.print("Hello, world!")修改每一行要显示出的字符内容

LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("ESP32 Arduino!");
   lcd.setCursor(0,2);
  lcd.print("Arduino LCM IIC 2004");
   lcd.setCursor(2,3);
  lcd.print("YXDZ!");
}

void loop()
{
}

LCD1602驱动程序

LiquidCrystal_I2C lcd(0x27,20,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init();                      // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(3,0);
  lcd.print("Hello, world!");
  lcd.setCursor(2,1);
  lcd.print("ESP32 Arduino!");
}

void loop()
{
}

实验结果

在LCD2004上第一行到第四行显示出程序所输入的字符 在这里插入图片描述

在LCD1602上第一行和第二行显示出程序所输入的字符 在这里插入图片描述