在本教程中,我们将学习如何将I2C LCD与ESP8266 NODEMCU开发委员会接口。PCF8574 I2C LCD是16×2和20×4字符LCD显示器的特殊模块。我们将学习ESP8266 NodeMCU I2C LCD接口的工作原理,如何配置i2c在ESP8266 nodemcu中,并在16×2 LCD上显示一些数据。
需要I2C LCD
ESP8266 NODEMCU是针对Wi-Fi相关应用程序的出色开发委员会。该板的另一个优点是GPIO引脚。取出所有专用的GPIO引脚(对于Spi Flash IC和uart)我们可以免费使用9个GPIO引脚。
但是,如果您想与ESP8266 nodemcu连接16×2字符LCD显示屏怎么办?即使在4位平行通信模式下,16×2 LCD也会占用微控制器的6个GPIO引脚(数据为4,一个用于RS,一个用于E)。
如果您打算连接其他重要的传感器和设备,则将许多GPIO引脚用于角色LCD显示器是不可行的。
这是I2C LCD模块方便的地方。它专门针对16×2和20×4字符LCD显示器设计,并通过我进行通信2C接口。因此,从6个GPIO引脚,我们降低到两个GPIO引脚(i的SDA和SCL2C)。
简要介绍PCF8574 I2C LCD模块
顾名思义,PCF8574 I2C LCD模块基于PCF8574 GPIO扩展器IC。最初,它在模块中用于扩展微控制器的GPIO引脚,并通过I与微控制器进行通信2C接口。
I2C LCD模块不是GPIO扩展,而是专门用于驱动角色LCD。因此,它的引脚与典型的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模块与ESP8266 NodeMCU之间的连接。
I2C LCD模块 |
ESP8266 nodemcu |
gnd |
gnd |
VCC | Vin |
SDA |
D2 - GPIO 4 |
SCL | D1 - GPIO 5 |
笔记:LCD显示器可在4.7 V和5.3 V之间的电源电压下工作。因此,即使PCF8574 IC在2.5 V至6 V电源下工作,而不是从Nodemcu给出3.3V,我们的速度为5V。
需要组件
- ESP8266 nodemcu
- PCF8574 I2C LCD模块
- 16×2字符LCD显示
- 面包板
- 连接电线
电路原理图
下图显示了ESP8266 NodeMCU I2C LCD接口的电路图。
准备Arduino IDE
如果您以前从未使用过I2C LCD模块,则必须下载特殊的库。打开Arduino IDE,然后转到工具 - >管理库。。。
搜索“ LiquidCrystal I2C”,然后下载Frank de Brabander的“ LiquidCrystal I2C”库。
我在以前的几个项目中使用了这个库。因此,您可以看到它已经为我安装了。
现在,如前所述进行所有必要的连接,并将ESP8266 NodeMCU插入计算机。确保在董事会中选择了NodeMCU并设置正确的COM端口。
获取I2C LCD模块的从属地址
在编写实际代码以在LCD上显示内容之前,我们必须首先确定PCF8574 I2C LCD模块的从地址。如果您还记得我的基础知识2c通信,大师只有知道奴隶地址时才能与奴隶通信。
在这里,ESP8266 nodemcu是i2C总线大师和PCF8574 I2C LCD模块是从属。
因此,让我们使用以下代码获取I2C LCD模块的从地址。建立所有连接后,将代码上传到ESP8266 nodemcu并打开串行监视器。
代码
ESP8266将寻找任何奴隶,如果从属确认,它将获得其从地址并在串行显示器上打印。就我而言,从0x3F中的从地址。我们必须在主代码中使用此从地址。
显示简单的文字
现在,让我们看看如何使用ESP8266和I2C LCD模块在16×2 LCD上显示一个简单的文本。没有额外的连接,因为我们需要的一切都是我们所需的。
代码
LCD上的ADC值
作为奖励,我制作了一个小电路,其中将10kΩ电位器连接到NodeMCU的ADC引脚(标记为A0),并使用I2C LCD模块在LCD上显示ADC的结果。
如果您记得ESP8266的规格,则其内部ADC的分辨率为10位。因此,ADC的输出将在0到1023的范围内。
另请注意,ESP8266只有一个ADC频道。在Nodemcu板上,ADC引脚标记为A0。10kΩ电位器的刮水器引脚连接到Nodemcu的A0。电位计的其他两个引脚分别连接到3.3V和GND。
警告:将锅仅连接到3.3V。请勿将锅连接到5V,因为ESP8266 ADC不能忍受超过3.3V。
电路原理图
下图显示了将10kΩ电位器连接到ESP8266 nodemcu并在I2C LCD上显示ADC的结果的电路图。
代码
结论
与ESP8266 NODEMCU开发委员会接口PCF8574 I2C LCD模块的简单教程。您了解了I2C LCD模块的重要内容,即ESP8266 NodeMCU I2C LCD接口的工作方式,如何在LCD上显示一些文本。
您甚至可以显示一些特殊字符或滚动文字。
一个回应
我如何将NODMCU的VIN连接到I2C的VCC,我尝试过它没有任何意义,并且它不起作用……..