在本教程中,我们将学习如何接口I2C LCD与ESP8266 NodeMCU开发板。PCF8574 I2C液晶显示模块为16×2、20×4字符液晶显示专用模块。介绍ESP8266 NodeMCU I2C LCD接口的工作原理,如何配置I2在16×2 LCD上显示部分数据。
需要I2C LCD
ESP8266 NodeMCU是Wi-Fi相关应用的开发板。这个板的另一个优点是GPIO引脚。取出所有专用GPIO引脚后(用于SPI Flash IC和UART我们有大约9个GPIO引脚可以免费使用。
但是如果你想要ESP8266 NodeMCU接口一个16×2字符液晶显示器呢?即使在4位并行通信模式下,16×2 LCD也会占用微控制器的6个GPIO引脚(4个用于Data, 1个用于RS, 1个用于E)。
如果你打算接口其他重要的传感器和设备,那么使用那么多GPIO引脚来显示字符液晶显示器是不可行的。
这就是I2C LCD模块派上用场的地方。它是专门为16×2和20×4字符液晶显示而设计的,并通过I2C接口。因此,从6个GPIO引脚,我们已经归结为两个GPIO引脚(SDA和SCL的I2C)。
PCF8574 I2C LCD模块简介
顾名思义,PCF8574 I2C LCD模块是在PCF8574 GPIO扩展芯片的基础上开发而成的,最初用于扩展单片机的GPIO引脚,通过I与单片机通信2C接口。
I2C LCD模块不是GPIO扩展,而是专用于驱动字符LCD。因此,它的pinout与典型的16×2 LCD重合,它包含一个电位计来调整对比度,也有一个跳线来启用或禁用背光。
ESP8266 NodeMCU I2C LCD
现在让我们了解一下ESP8266 NodeMCU I2C LCD接口的工作原理。如果你还记得ESP8266 NodeMCU的引脚,D1和D2,即GPIO 5和GPIO 4经常用于I2C通信。
D1 (GPIO 5)是SCL引脚,D2 (GPIO 4)是SDA引脚。我们必须使用这两个引脚连接到PCF8574 I2C LCD模块。
在I2C LCD模块和实际LCD本身之间没有其他连接,因为模块只是插入LCD显示器的引脚。你只需要提供补给,而我2C连接。
I2C LCD Module与ESP8266 NodeMCU的对接关系如下表所示。
I2C液晶模块 |
ESP8266 NodeMCU |
接地 |
接地 |
VCC | 文 |
SDA |
D2 - gpio 4 |
sci | D1 - gpio 5 |
注意:液晶显示器工作在4.7 V和5.3 V之间的电源电压。因此,即使PCF8574 IC工作在2.5 V到6 V的电源,而不是提供3.3V从NodeMCU,我们提供5V。
组件的要求
- ESP8266 NodeMCU
- PCF8574 I2C LCD模块
- 16×2字符液晶显示
- 电路试验板
- 连接电线
线路图
下图为ESP8266 NodeMCU I2C LCD接口电路图。
准备Arduino IDE
如果您以前没有使用过I2C LCD Module,那么您必须下载一个特殊的库。打开Arduino IDE和去工具->管理库…
搜索“liquidcrystal i2c”并下载Frank de Brabander的“liquidcrystal i2c”库。
我在之前的几个项目中使用了这个库。所以,你可以看到它已经为我安装好了。
现在,按照前面提到的步骤进行所有必要的连接,将ESP8266 NodeMCU插到计算机上。确保单板上选择了“NodeMCU”,并设置正确的“COM Port”。
获取I2C LCD模块从地址
在编写在LCD上显示内容的实际代码之前,我们必须首先确定PCF8574 I2C LCD模块的从地址。如果你还记得I的基本知识2C通信,主服务器只有在知道从服务器地址的情况下才能与从服务器通信。
此处ESP8266 NodeMCU为I2以C总线为主,以PCF8574 I2C LCD模块为从。
那么,让我们使用下面的代码来获取I2C LCD模块的从地址。连接完成后,将代码上传到ESP8266 NodeMCU,打开串口监视器。
代码
ESP8266将查找任何从服务器,如果从服务器承认,它将获取从服务器地址并将其打印到串行监视器上。在我的例子中,从地址是0x3F。我们必须在主代码中使用这个从地址。
显示简单的文本
现在,让我们看看如何使用ESP8266和I2C LCD模块在16×2 LCD上显示简单的文本。没有额外的连接,因为之前建立的连接就是我们所需要的。
代码
LCD上的ADC值
作为奖励,我做了一个小电路,其中一个10 KΩ电位器连接到NodeMCU(标签为A0)的ADC引脚,并使用I2C LCD模块在LCD上显示ADC的结果。
如果你还记得ESP8266的规格,它的内部ADC有10位的分辨率。因此,ADC的输出将是一个范围为0到1023的数字。
还要注意,ESP8266只有一个ADC通道。在NodeMCU单板上,ADC引脚标记为A0。10 KΩ电位器的雨刷针连接到NodeMCU的A0。电位器的另外两个引脚分别接3.3V和GND。
警告:仅将POT连接到3.3V。ESP8266 ADC电压不能超过3.3V,请勿将POT连接到5V。
线路图
下图是连接10个KΩ电位器到ESP8266 NodeMCU,并在I2C LCD上显示ADC结果的电路图。
代码
结论
介绍PCF8574 I2C LCD模块与ESP8266 NodeMCU开发板的接口。了解了I2C LCD模块的重要性,ESP8266 NodeMCU I2C LCD接口的工作原理,以及LCD上显示文字的方法。
您甚至可以显示一些特殊字符或制作滚动文本。
一个回应
我如何连接nodmcu的vin到i2c的VCC我没有意义,我尝试了它,它不工作.....