首页

PCF8574 I2C LCD如何与ESP8266 NodeMCU接口?

在本教程中,我们将学习如何接口I2C LCD与ESP8266 NodeMCU开发板。PCF8574 I2C液晶显示模块为16×2、20×4字符液晶显示专用模块。介绍ESP8266 NodeMCU I2C LCD接口的工作原理,如何配置I2在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字符液晶显示器呢?即使在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接口。

PCF8574-IO-Expander-Module

I2C LCD模块不是GPIO扩展,而是专用于驱动字符LCD。因此,它的pinout与典型的16×2 LCD重合,它包含一个电位计来调整对比度,也有一个跳线来启用或禁用背光。

PCF8574-I2C-LCD-Module

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 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接口电路图。

ESP8666-NodeMCU-I2C-LCD-Circuit-Diagram

准备Arduino IDE

如果您以前没有使用过I2C LCD Module,那么您必须下载一个特殊的库。打开Arduino IDE和去工具->管理库…

搜索“liquidcrystal i2c”并下载Frank de Brabander的“liquidcrystal i2c”库。

Arduino-IDE-I2C-LCD-Library-1

我在之前的几个项目中使用了这个库。所以,你可以看到它已经为我安装好了。

现在,按照前面提到的步骤进行所有必要的连接,将ESP8266 NodeMCU插到计算机上。确保单板上选择了“NodeMCU”,并设置正确的“COM Port”。

Arduino-IDE-I2C-LCD-Library-2

获取I2C LCD模块从地址

在编写在LCD上显示内容的实际代码之前,我们必须首先确定PCF8574 I2C LCD模块的从地址。如果你还记得I的基本知识2C通信,主服务器只有在知道从服务器地址的情况下才能与从服务器通信。

此处ESP8266 NodeMCU为I2以C总线为主,以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值

作为奖励,我做了一个小电路,其中一个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结果的电路图。

ESP8666-NodeMCU-I2C-LCD-ADC-Circuit

代码

ADC-Value-I2C-LCD-ESP8266-NodeMCU

结论

介绍PCF8574 I2C LCD模块与ESP8266 NodeMCU开发板的接口。了解了I2C LCD模块的重要性,ESP8266 NodeMCU I2C LCD接口的工作原理,以及LCD上显示文字的方法。

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

一个回应

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu