LCD1602(IIC) 字符屏
大约 2 分钟
LCD1602(IIC) 字符屏
LCD1602 是 16 列 × 2 行(或 20×4)字符液晶屏,通过 PCF8574/PCF8574A I2C 扩展板驱动,地址通常为 0x27 或 0x3F。
支持状态
FastBee-Arduino 已实现完整的 LCD1602 驱动(LCD1602Driver),支持:
- 文本显示、数字显示、光标定位
- 背光开/关控制
- I2C 地址自动检测(0x20-0x3F 扫描)
- 16×2 和 20×4 两种尺寸
编译条件:需在 platformio.ini 或 FeatureFlags.h 中启用 FASTBEE_ENABLE_LCD1602=1(默认关闭)。标准固件未包含此驱动,需定制构建。
硬件接线
| LCD1602 I2C 引脚 | ESP32 引脚 | 说明 |
|---|---|---|
| VCC | 5V(推荐)或 3.3V | 按模块要求供电 |
| GND | GND | 共地 |
| SDA | GPIO21 | I2C 数据(ESP32 经典版) |
| SCL | GPIO22 | I2C 时钟(ESP32 经典版) |
ESP32-C3 推荐 SDA=GPIO8、SCL=GPIO9;ESP32-S3 推荐 SDA=GPIO1、SCL=GPIO2。
外设配置
外设类型:LCD1602(type: 52),需要 2 个引脚(SDA、SCL)。
{
"id": "lcd1602_01",
"name": "LCD1602字符屏",
"type": 52,
"enabled": true,
"pinCount": 2,
"pins": [21, 22, 255, 255, 255, 255, 255, 255],
"params": {
"width": 16,
"height": 2,
"address": "0x27"
}
}参数说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
| width | 16 | 每行字符数(16 或 20) |
| height | 2 | 行数(2 或 4) |
| address | 自动检测 | I2C 地址,留空则自动扫描 |
显示动作
LCD1602 复用外设执行的显示动作类型:
| actionType | 说明 | actionValue 示例 |
|---|---|---|
| 24 | 显示数字 | "25.6" |
| 25 | 显示文本 | "Hello" |
| 26 | 清屏 | 无参数 |
OLED 自定义多行显示(actionType: 27)仅适用于 SSD1306/SH1106 图形屏,LCD1602 不支持。
配置示例:定时显示温度
{
"id": "exec_lcd_temp",
"name": "LCD1602显示温度",
"enabled": false,
"triggers": [
{
"triggerType": 1,
"triggerPeriphId": "dht_01",
"timerMode": 0,
"intervalSec": 5
}
],
"actions": [
{
"targetPeriphId": "dht_01",
"actionType": 19,
"actionValue": "{\"periphId\":\"dht_01\",\"sensorCategory\":\"dht11\",\"dataField\":\"temperature\",\"sensorLabel\":\"温度\",\"unit\":\"°C\",\"decimalPlaces\":1}"
},
{
"targetPeriphId": "lcd1602_01",
"actionType": 25,
"actionValue": "Temp: ${dht_01.temperature}C",
"syncDelayMs": 100
}
],
"reportAfterExec": false
}启用步骤
- 在
platformio.ini对应环境中添加build_flags = -D FASTBEE_ENABLE_LCD1602=1。 - 重新编译并烧录固件。
- 在 Web 外设配置页添加 LCD1602 外设(type: 52),填写 SDA/SCL 引脚。
- 启用外设,观察串口日志确认
LCD1602: Initialized 16x2 at 0x27。 - 创建显示规则,先禁用保存,手动"执行一次"确认显示正常后启用。
注意事项
- LCD1602 字符集有限,通常不支持中文,仅支持 ASCII 和少量特殊字符。
- I2C 转接板需通过电位器调节对比度,否则可能看不到显示内容。
- 5V 供电模块的 I2C 上拉可能为 5V 电平,ESP32 长期使用需确认电平安全。
- 与 OLED 共用 I2C 总线时,确保地址不冲突(LCD1602 通常 0x27,OLED 通常 0x3C)。
相关文档
- OLED 使用指南 — SSD1306/SH1106 图形屏
- TM1637 数码管 — 4 位数字显示
- 外设执行配置 — 显示动作配置
