搜索代码

ESP32教程11/55 - 使用LCD1602 LCD2004与ESP32 - SunFounder的ESP32物联网学习套件

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
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
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。
}

资源与参考

文件📁

没有可用的文件。