ESP32教程11/55 - 使用LCD1602 LCD2004与ESP32 - SunFounder的ESP32物联网学习套件
在本教程中,我们将探讨如何将LCD1602和LCD2004与ESP32微控制器一起使用。这些LCD屏幕使我们能够有效地显示文本和其他信息,通过视觉反馈增强我们的项目。我们还将介绍如何调整对比度以确保可读性。
ESP32是SunFounder ESP32物联网学习套件的一部分,具有内置的Wi-Fi和蓝牙功能,使其成为各种物联网应用的强大工具。通过将LCD连接到ESP32,我们可以轻松显示代码中的消息或数据输出,使我们的项目更具交互性和用户友好性(视频中00:30处)。
硬件说明
我们将使用的主要组件包括ESP32微控制器和LCD1602或LCD2004显示模块。ESP32将作为我们项目的大脑,处理输入并控制输出,包括LCD显示。
LCD模块通过I2C通信,仅使用两个数据引脚(SDA和SCL)进行通信,以及电源和接地连接,从而简化了布线。这种设置显著降低了连接多个引脚的复杂性,使电路更整洁、更易于管理。
数据手册详情
| 制造商 |
SunFounder |
| 零件编号 |
LCD1602 |
| 逻辑/IO电压 |
5 V |
| 电源电压 |
5 V |
| 显示尺寸 |
16 x 2字符 |
| 背光 |
有 |
| 接口 |
I2C |
| 尺寸 |
80 x 36 mm |
| 备注/变体 |
通常使用I2C地址0x27 |
- 确保提供正确的电压(5 V)以防止损坏。
- 使用短线以尽量减少I2C线路上的干扰。
- 调整电位器以获得最佳的对比度可见性。
- 如果显示器未初始化,请检查I2C地址(常见地址:0x27、0x3F)。
- 更新消息前清除显示以避免重叠。
接线说明
ESP32-11_LCD接线示意图
ESP32-11_LCD-wiring
要将LCD1602连接到ESP32,首先将LCD的接地引脚连接到ESP32上的接地引脚。然后,将LCD的VCC引脚连接到ESP32的5V输出。对于I2C通信,将LCD的SDA引脚连接到ESP32上的引脚21,并将LCD的SCL引脚连接到ESP32上的引脚22。确保连接牢固,以避免通信问题。
需要注意的是,虽然ESP32以3.3V逻辑电平运行,但LCD1602需要5V才能正常工作。因此,请确保使用正确的电压供应,以免损坏LCD。如果您使用不同尺寸的LCD,请根据I2C地址和规格相应地调整接线。
代码示例与讲解
在代码中,我们首先包含I2C通信和LCD所需的库。我们使用I2C地址0x27创建LCD实例,并指定它有16列和2行。
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // 将LCD地址设置为0x27,用于16字符和2行显示
这种设置使我们能够轻松控制LCD。在setup()函数中,我们初始化LCD并打开背光,然后打印欢迎消息。
void setup()
{
lcd.init(); // 初始化LCD
lcd.backlight(); // 打开LCD背光。
lcd.print("Hello, world!"); // 向LCD打印一条消息。
delay(3000);
}
在loop()函数中,我们通过清除显示、设置光标位置并打印当前计数值来持续更新显示。这演示了LCD如何动态显示变化的信息。
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // 将光标位置设置为第一行第一列(0, 0)。
lcd.print("COUNT: ");
lcd.print(count); // 打印count变量的当前值。
delay(1000);
count++; // 将计数器加1。
}
完整代码将加载在文章下方,您可以在那里看到完整的实现以及为您的项目添加的任何附加功能。
演示/预期效果
一旦所有连接完成并上传代码,LCD应显示"Hello, world!"3秒钟,然后开始每秒递增的计数器。您可以使用电位器调整对比度,以确保文本易于阅读(视频中08:45处)。
如果遇到任何问题,请检查接线连接并确保使用正确的I2C地址。一个常见错误是LCD的I2C地址与代码中设置的地址不匹配,这可能导致显示器无法正常工作。
视频时间戳
- 00:00 开始
- 1:47 LCD介绍
- 3:26 文档页面
- 5:06 如何将LCD与ESP32接线
- 9:07 在Arduino上选择ESP32开发板和COM端口
- 8:51 安装LCD库
- 10:06 查找LCD的I2C地址
- 14:00 Arduino代码讲解
- 17:50 演示
- 20:54 将LCD2004与ESP32一起使用
- 22:58 绿色LCD1602比蓝色更好
图像
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring-schematic
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
语言: C++
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// SDA->21,SCL->22
LiquidCrystal_I2C lcd(0x27,16,2); // 将LCD地址设置为0x27,以适用于16字符和2行显示。
int count = 0;
void setup()
{
lcd.init(); // 初始化LCD
lcd.backlight(); // 打开LCD背光。
lcd.print("Hello, world!"); // 在液晶屏上打印一条消息。
delay(3000);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // 将光标位置设置到第一行第一列 (0, 0)。
lcd.print("COUNT: ");
lcd.print(count); // 打印计数变量的当前值。
delay(1000);
count++; // 将计数器增加 1。
}