目录
一.介绍
本教程介绍如何通过LCM1602模块将LCD模块连接到Arduino ESP32,以显示来自ESP32的信息。将ESP32连接到LCD模块有两种方法:
- 直接连接。通过这种方式,ESP32将浪费7个GPIO引脚(4个GPIO引脚用于数据传输,3个GPIO引脚用于LCD控制)。
- 通过LCM1602模块连接。通过这种方式,ESP32将仅使用2个GPIO引脚作为I2C SDA和SCL引脚。LCM1602将负责将I2C数据转换为 LCD数据和控制信号。
注意:LCM1602 的I2C地址为0x27
二.元器件清单
- ESP32开发板
- 一个I2C LCD1602模块
- 面包板
- 导线若干
三.电路图
四.代码设计
我们将使用 为Arduino制作的库LiquidCrystal_I2C ,但我修改了一点以与ESP32兼容。你可以在这里下载这个库:https://github.com/nhatuan84/esp32-lcd 下载后导入arduino IDE。
该库提供了一些功能:
begin(sda=-1, int8_t scl=-1):
初始化库和I2C引脚,sda是ESP32 GPIO引脚连接到LCM1602 SDA,scl是ESP32 GPIO引脚连接到LCM1602 SCL。
backlight():
打开背光
setCursor(uint8_t col,uint8_t row):
将光标设置在列和行(16×02:2行[索引从0到1]和16列[索引从0到15])
print(char s [])
将字符串s打印到LCD
要使用这些函数,您需要创建LiquidCrystal_I2C的实例:
LiquidCrystal_I2C(uint8_t lcd_addr,uint8_t lcd_cols,uint8_t lcd_rows,uint8_t charsize = LCD_5x8DOTS);
lcd_Addr:是LCD的I2C地址,在这种情况下是0x27。
lcd_cols:是LCD的列数,它是16。
lcd_rows:是LCD的行数,它是2。
charsize = LCD_5x8DOTS:是一个字符的大小。默认值为5×8点。
所以它可以这样写:
LiquidCrystal_I2C lcd(0x27,16,2);
还有初始化
lcd.begin(12,14);
这里就表示ESP32 GPIO12连接到LCM1602 SDA,ESP32 GPIO14连接到LCM1602 SCL。
以下就是实现功能的代码:
五.测试代码
要测试代码,只需使用Arduino IDE上传它。然后,您应该看到LCD显示你需要的信息了。以下就是实现的效果:
试过没用的,
程序里少一条初始化程序,lcd.init();加上就好了啊。。。。
文中程序已加上,没问题了
这是啥情况
用的库是不是不对?
?
不能用