在本教程中,我们将了解如何在不使用 I2C 通信的情况下将 NodeMCU 与 16x2 LCD连接。在这里,我们将使用移位寄存器 SN74HC595 连接 16x2 LCD。即使不使用任何移位寄存器,我们也可以对其进行接口。我们将在本教程中看到这两种接口。两种接口之间的主要区别在于NodeMCU中使用的引脚数量。
所需材料:
节点单片机 ESP12E
SN74HC595 移位寄存器 IC
16x2液晶模块
电位器
公-母线
面包板
移位寄存器:
在数字系统中,移位寄存器是触发器的组合,触发器串联并共享相同的时钟。在这个级联封装中,一个触发器的数据输出充当下一个触发器的数据输入,这导致电路将存储在其中的位数组移动一个位置。
我们将要使用的IC是SN74HC595N。它是一款简单的8位串行并行输出移位寄存器IC。简而言之,该IC允许通过在并行和串行格式之间转换数据来向微控制器添加额外的输入或输出。我们的微控制器使用该IC的3个引脚串行发送数据。实际上,从输入引脚获取 8 位信息后,8 位输出将出现在 8 个引脚上。
IC SN74HC595N 的引脚图和引脚功能如下:
您可以在此处找到74HC595N与Arduino和Raspberry Pi的接口。
使用 ESP12 接口 LCD,无需使用移位寄存器:
如果您已将16x2 LCD与Arduino板一起使用,那么它将非常容易。您只需在NodeMCU中连接引脚,就像使用Arduino板一样。
NodeMCU中有16个GPIO引脚,我们需要6个引脚和GND,vcc。根据下面给出的电路图连接引脚:
我们将使用4 个数据引脚和 RS、LCD 的 EN,它们连接为:
液晶屏的d7引脚==节点MCU的D8引脚
液晶屏的 d6 引脚 == 节点MCU 的 D7 引脚
液晶屏的d5引脚==节点MCU的D6引脚
液晶屏的d4引脚==节点MCU的D5引脚
液晶显示器的 RS 引脚 == 节点MCU 的 D2 引脚
液晶屏的 en 引脚 == 节点MCU 的 D3 引脚
可以将任何 GPIO 用于这些连接。
法典:
#include
const int RS = D2, EN = D3, d4 = D5, d5 = D6, d6 = D7, d7 = D8;
LiquidCrystal lcd(RS, EN, d4, d5, d6, d7);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
正如我们所看到的,我们已经使用了 6 个引脚的 NodeMCU。这个小板可用的引脚已经更少了,我们只剩下很少的引脚来连接其他传感器。
因此,为了克服这个问题,我们将使用移位寄存器IC,这将最大限度地减少no。节点MCU上使用的引脚。
使用 ESP12 接口 LCD,使用移位寄存器 SN74HC595N:
移位寄存器IC中提供8个输出引脚和3个输入引脚。我们将使用 6 个输出引脚与 LCD 连接,使用 3 个输入引脚连接到 NodeMCU。
LCD与IC的连接如下:
液晶屏D7引脚==IC引脚1
液晶屏D6引脚==IC引脚2
液晶屏D5引脚==IC引脚3
液晶屏D4引脚==IC引脚4
液晶屏的RS引脚==IC的引脚7
液晶屏引脚 == IC 引脚 15
节点MCU与IC的连接:
节点MCU的D6引脚==IC的引脚14,IC的数据引脚
节点MCU的D7引脚==IC的引脚12,IC的锁存引脚
节点MCU的D8引脚==IC的引脚11,IC的时钟引脚
将 IC 的引脚 16 和 PIN 10 连接到 Vcc。
将 IC 的引脚 8 和引脚 13 连接到接地。
根据下图仔细制作电路:
现在我们的硬件已准备好进行编程。
1. Arduino IDE的Goto Sketch菜单。
2. 单击“包括库”。
3.现在,单击添加.zip库。选择您从给定链接下载的zip文件并完成。
现在上传下面给出的代码,您将看到打印LCD的消息。
法典:
#include // include the library
LiquidCrystal595 lcd(D6,D7,D8); // data_pin, latch_pin, clock_pin
void setup() {
lcd.begin(16,2); // 16 characters, 2 rows
lcd.clear();
lcd.setCursor(0,0);
lcd.print("lcd with nodemcu");
}
void loop() {
lcd.setCursor(0,1);
lcd.print("Success");
}
代码很简单,因为我们只需要在LiquidCrystal595 lcd()中给出数据引脚、锁存引脚和时钟引脚作为参数;其余代码与我们之前所做的相同。
这样,您刚刚通过使用移位寄存器保存了 3 个引脚的 NodeMCU。
全部0条评论
快来发表一下你的评论吧 !