ESP32开发板通过PCF8574串行IIC接口驱动LCD1602/LCD2004液晶屏
LCD1602/2004液晶屏简介LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。可以显示2行每行16个字符总共32个字符。字符型液晶显示模块是一种专门用于显示字母、数字和符号等的点阵式LCD常用16×116×220×2和40×2等的模块。不同厂家生产的LCD1602驱动控制芯片可能有所不同但使用方法都是一样的能够显示英文字母、阿拉伯数字、日文片假名和一般性符号。部分颜色的LCD在背光灯引脚A、K不接电源也可以在一定光照下可以看见显示出的字符。如黄绿屏的LCD1602/2004。LCD2004可以显示4行每行20个字符总共80个字符比LCD16022*1632个字符显示的更多。其引脚功能顺序与LCD1602兼容。PCF8574 IO扩展模块简介它通过两条双向总线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器件地址为0100A2A1A0PCF8574AT的器件地址为0111A2A1A0本实验采用的是PCF8574AT默认器件地址为0x3F。ESP32开发板与LCD模块接线Arduino UNOFCF857421SDA22SCL5VVCCGNDGNDLCD1602接线LCD2004接线测试代码在Arduino IDE库管理器搜索LiquidCrystal_I2C并安装如图示所例程库打开Hello_World.ino例程并按如下程序修改例程LCD2004驱动程序lcd.print(“Hello, world!”)修改每一行要显示出的字符内容LiquidCrystal_I2Clcd(0x27,20,4);// set the LCD address to 0x27 for a 16 chars and 2 line displayvoidsetup(){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!);}voidloop(){}LCD1602驱动程序LiquidCrystal_I2Clcd(0x27,20,2);// set the LCD address to 0x27 for a 16 chars and 2 line displayvoidsetup(){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!);}voidloop(){}实验结果在LCD2004上第一行到第四行显示出程序所输入的字符在LCD1602上第一行和第二行显示出程序所输入的字符