在这个项目中,我们将学习如何接口PCF8574 I2C LCD与ESP32开发板。我们将看到如何配置I2C ESP32引脚,下载Arduino IDE所需库,了解ESP32 I2C LCD接口的工作原理,并在16×2 LCD上显示部分数据。
如果你想连接I2C LCD与ESP8266 NodeMCU板,那么我做了一个单独的教程。检查出来。
简介
有许多显示设备,如OLED显示器,128×64图形显示器,诺基亚5110显示器等。但是对于显示简单的文本和数字,我们所需要的只是一个16×2或20×4字符显示。
16×2液晶显示器的主要缺点是它需要至少6个GPIO引脚的微控制器正常工作。这甚至不是8位模式,而是减少的4位模式(为8位模式添加另外4个GPIO引脚)。
仅仅为了一个简单的字符LCD显示器而使用那么多的微控制器引脚是不可取的,特别是如果你正在设计一个有许多传感器和设备连接到微控制器的项目。
PCF8574 I2C液晶模组就是为了克服这个缺点而设计的。
PCF8574 I2C液晶显示模块简介
顾名思义,PCF8574 I2C LCD模块是一个基于PCF8574 IC的模块,设计用于将常规的16×2(或20×4)字符LCD显示屏转换为I2基于C语言的设备,即,我们可以使用I来代替使用8位或4位并行接口来发送数据2C总线发送数据到显示器。
如果你注意到这个I2C LCD模块的板布局和引脚,你可以观察到它是一个普通IO扩展模块的修改版本,也是基于PCF8574 IC。
该I2C LCD模块包括POT,用于调整LCD的对比度和SDA和SCL线的上拉电阻。因此,您不需要任何额外的连接。
只需在16×2 LCD的后面插入I2C LCD模块,并在微控制器和I2C LCD模块之间进行连接。就是这样。
ESP32 I2C LCD接口
我们需要弄清楚的第一件事,为ESP32 I2C LCD接口的工作是I2ESP32的C引脚。如果你还记得,在ESP32 Pinout教程中,我提到过ESP32微控制器有两个I2C接口和任何GPIO引脚都可以配置为I2C引脚。
但在将所有GPIO引脚用于各种目的(如SPI)之后,UARTGPIO 22和GPIO 21是免费的(没有任何重要的替代功能)。因此,在这个项目中,我们将使用GPIO 22作为SCL,使用GPIO 21作为I的SDA2C接口。
另一个需要注意的要点是16×2 LCD在标准TTL电压水平上运行,即4.7V到5.3V。我们不能将3.3V作为VCC应用到I2C LCD模块,即使PCF8574 IC工作在这个电压下。
因此,记住这一点,下表显示了I2C LCD模块和ESP32之间的所有连接
PCF8574 I2C液晶模块 |
ESP32 DevKit |
接地 | 接地 |
VCC |
文 |
SDA | GPIO 21 (D21) |
sci |
GPIO 22 (D22摊位) |
从表中可以看出,I2C LCD模块的VCC连接到ESP32开发板的VIN引脚上。当ESP32通过USB供电时,连接到USB电源。所以,我们会在这个引脚上得到大约5V的电压。
组件的要求
- ESP32 DevKit开发板
- 16×2字符液晶
- PCF8574 I2C液晶模块
- 电路试验板
- 连接电线
- 微型usb电缆
线路图
下图是演示ESP32 I2C LCD接口的电路图。
准备Arduino IDE
你必须下载一个名为' LiquidCrystal_I2C '的库才能使用I2C液晶模块。如果已经安装了该库,则可以跳过此步骤。如果没有,那就跟着做。打开Arduino IDE并通过选择Tools -> Manage Libraries打开库管理器…
一旦库管理器窗口打开,搜索' liquidcrystal i2c '并安装Frank de Brabander的' liquidcrystal i2c '库。还有其他I2C LCD库。你也可以试试。
关闭库管理器。按照电路图进行所有必要的连接,并将ESP32板插入计算机。在Arduino IDE中,选择正确的单板(ESP32 Dev Module)和正确的COM端口。
定位I2C LCD模块从地址
既然我们和I一起工作2C接口中,从地址是我们需要注意的重要事情之一。在这里,ESP32微控制器是主控制器,PCF8574 I2C LCD模块是从控制器。
你可以参考PCF8574 IC的数据表并计算从地址,但现在我们将采用简单的方法,即,一个小程序自动确定从地址。
事实上,我们用同样的代码Arduino和ESP8266为其他I2C相关项目。在ESP32和I2C LCD模块之间完成所有必要的连接后,上传以下代码,打开Arduino IDE的串行监视器。
从串口显示器截图可以看到,PCF8574 I2C LCD Module的从地址为0x3F。
显示简单的文本
让我们使用这个从地址,并使用I2C LCD模块在16×2 LCD显示器上显示一些基本的文本。使用下面的代码并查看输出。
代码
在LCD上显示ADC结果
在下一段代码中,让我们制作一个涉及ESP32电位器和ADC的小电路。我连接了一个10 KΩ POT到ADC 2通道3的ESP32。它与GPIO 15引脚(在ESP32 DevKit板上为D15)相关联。
在代码中,我将GPIO 15配置为模拟输入引脚,并将ADC的结果显示在LCD上。
线路图
下图是连接10 KΩ电位器到ESP32开发板并在I2C LCD上显示ADC结果的电路图。
代码
结论
关于PCF8574 I2C LCD模块与ESP32开发板的接口的简单教程。你了解了I2C液晶模块的重要性,我2ESP32上的C引脚,ESP32 I2C LCD接口如何工作以及如何在LCD上显示一些文本。
您甚至可以显示一些特殊字符或制作滚动文本。
一个回应
最好使用电平移位器将5.0 vdc的TTL设备连接到3.3VDC的ESP处理器,否则可能会破坏ESP32设备