如何将PCF8574 I2C LCD与ESP8266 NodeMCU接口?

在本教程中,我们将学习如何将I2C LCD与ESP8266 NODEMCU开发委员会接口。PCF8574 I2C LCD是16×2和20×4字符LCD显示器的特殊模块。我们将学习ESP8266 NodeMCU I2C LCD接口的工作原理,如何配置i2c在ESP8266 nodemcu中,并在16×2 LCD上显示一些数据。

i2c-lcd-nodemcu-image-1

需要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接口。

PCF8574-IO-Expander模块

I2C LCD模块不是GPIO扩展,而是专门用于驱动角色LCD。因此,它的引脚与典型的16×2 LCD一致,它包含一个电位器来调整对比度,还包含一个跳线,以启用或禁用背光。

PCF8574-I2C-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-16X2-LCD

下表显示了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接口的电路图。

ESP8666-NodeMCU-I2C-LCD-CIRCUIT-DIAGRAM

准备Arduino IDE

如果您以前从未使用过I2C LCD模块,则必须下载特殊的库。打开Arduino IDE,然后转到工具 - >管理库。。。

搜索“ LiquidCrystal I2C”,然后下载Frank de Brabander的“ LiquidCrystal I2C”库。

arduino-ide-i2c-lcd-library-1

我在以前的几个项目中使用了这个库。因此,您可以看到它已经为我安装了。

现在,如前所述进行所有必要的连接,并将ESP8266 NodeMCU插入计算机。确保在董事会中选择了NodeMCU并设置正确的COM端口。

Arduino-IDE-I2C-LCD-LIBRARY-2

获取I2C LCD模块的从属地址

在编写实际代码以在LCD上显示内容之前,我们必须首先确定PCF8574 I2C LCD模块的从地址。如果您还记得我的基础知识2c通信,大师只有知道奴隶地址时才能与奴隶通信。

在这里,ESP8266 nodemcu是i2C总线大师和PCF8574 I2C LCD模块是从属。

因此,让我们使用以下代码获取I2C LCD模块的从地址。建立所有连接后,将代码上传到ESP8266 nodemcu并打开串行监视器。

代码

ESP8266将寻找任何奴隶,如果从属确认,它将获得其从地址并在串行显示器上打印。就我而言,从0x3F中的从地址。我们必须在主代码中使用此从地址。

I2C-LCD-SLAVE-ADDRESS

显示简单的文字

现在,让我们看看如何使用ESP8266和I2C LCD模块在16×2 LCD上显示一个简单的文本。没有额外的连接,因为我们需要的一切都是我们所需的。

代码

ESP8666-NODEMCU-I2C-LCD-TEXT

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的结果的电路图。

ESP8666-NODEMCU-I2C-LCD-ADC-Circuit

代码

ADC-VALUE-I2C-LCD-ESP8266-NODEMCU

结论

与ESP8266 NODEMCU开发委员会接口PCF8574 I2C LCD模块的简单教程。您了解了I2C LCD模块的重要内容,即ESP8266 NodeMCU I2C LCD接口的工作方式,如何在LCD上显示一些文本。

您甚至可以显示一些特殊字符或滚动文字。

一个回应

  1. 我如何将NODMCU的VIN连接到I2C的VCC,我尝试过它没有任何意义,并且它不起作用……..

发表评论

您的电子邮件地址不会被公开。

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map