十,ESP32 在I2C LCD显示信息

一.介绍

本教程介绍如何通过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数据和控制信号。
十,ESP32 在I2C LCD显示信息
图:LCD1602模块
十,ESP32 在I2C LCD显示信息
图:LCM1602模块

注意:LCM1602 的I2C地址为0x27 

二.元器件清单

  • ESP32开发板
  • 一个I2C LCD1602模块
  • 面包板
  • 导线若干

三.电路图

十,ESP32 在I2C LCD显示信息

四.代码设计

我们将使用 为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。

以下就是实现功能的代码:

已有7人支付

五.测试代码

要测试代码,只需使用Arduino IDE上传它。然后,您应该看到LCD显示你需要的信息了。以下就是实现的效果:

十,ESP32 在I2C LCD显示信息
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
3 条回复 A 作者 M 管理员
  1. 试过没用的,

    • 程序里少一条初始化程序,lcd.init();加上就好了啊。。。。

    • 文中程序已加上,没问题了

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论