在本教程中,我们将了解如何在不使用I2C通信的情况下将NodeMCU与16x2 LCD接口。在这里,我们将使用移位寄存器SN74HC595连接16x2 LCD。即使不使用任何移位寄存器,我们也可以接口它。在本教程中,我们将看到两种接口。两种接口之间的主要区别是NodeMCU中使用的引脚数。
所需材料:
- NodeMCU ESP12E
- SN74HC595移位寄存器IC
- 16x2 LCD模块
- 电位器
- 公母线
- 面包板
移位寄存器:
在数字系统中, 移位寄存器 是触发器的组合,这些触发器串联在一起并共享相同的时钟。在这种级联封装中,一个触发器的数据输出充当下一个触发器的数据输入,这导致电路将存储在其中的位阵列移位一个位置。
我们将使用的IC是SN74HC595N。它是一个简单的8位串行并行输出移位寄存器IC。简而言之,该IC通过在并行和串行格式之间转换数据,允许将其他输入或输出添加到微控制器。我们的微控制器使用该IC的3个引脚来串行发送数据。从输入引脚获取8位信息后,实际上8位输出将来自8个引脚。在此处了解有关移位寄存器的更多信息。
IC SN74HC595N的PIN图和PIN功能如下所示:
您可以在此处找到74HC595N与Arduino和Raspberry pi的接口。
使用ESP12连接LCD而不使用移位寄存器
如果您将16x2 LCD与Arduino开发板一起使用,则将非常容易。您只需要将NodeMCU中的引脚连接起来,就像使用Arduino板一样。
NodeMCU中有16个GPIO引脚,我们需要6个引脚以及gnd,vcc。根据下面给出的电路图连接引脚:
我们将使用4个数据引脚和LCD的RS,EN,其连接方式如下:
LCD的d7引脚== NodeMCU的D8引脚
LCD的d6引脚== NodeMCU的D7引脚
LCD的d5引脚== NodeMCU的D6引脚
LCD的d4引脚== NodeMCU的D5引脚
LCD的RS引脚== NodeMCU的D2引脚
LCD的En引脚== NodeMCU的D3引脚
您可以使用任何GPIO进行这些连接。
现在,如前所述,使用Arduino IDE上传代码。代码与Arduino板相同,可在液晶示例中找到。如果您想了解有关程序的更多信息,请检查我们的LCD与Arduino程序接口,该程序简单易懂。
码:
#包括
如我们所见,我们已经使用了NodeMCU的6个引脚。这个板子的可用引脚已经很少了,我们剩下的几个引脚可以用来连接其他传感器。
因此,为了克服这个问题,我们将使用移位寄存器IC,它将最大程度地减少编号。NodeMCU上使用的引脚数。
使用移位寄存器SN74HC595N与ESP12的LCD接口:
移位寄存器IC中有8个输出引脚和3个输入引脚。我们将使用6个输出引脚与LCD连接,并使用3个输入引脚连接到NodeMCU。
LCD与IC的连接为:
LCD的D7引脚== IC的引脚1
LCD的D6引脚== IC的引脚2
LCD的D5引脚== IC的引脚3
LCD的D4引脚== IC的引脚4
LCD的RS引脚== IC的引脚7
LCD的EN引脚== IC的引脚15
NodeMCU与IC的连接:
NodeMCU的D6引脚== IC的引脚14,IC的DATA PIN
NodeMCU的D7引脚== IC的引脚12,IC的锁存引脚
NodeMCU的D8引脚== IC的引脚11,IC的LOCK PIN
将IC的PIN 16和PIN 10连接到Vcc。
将IC的PIN 8和PIN 13连接到GND。
根据下图仔细制作电路:
现在我们的硬件已准备好进行编程。
现在,我们需要一个库“ LiquidCrystal595 ”,可以通过以下步骤从此链接https://github.com/tehniq3/LiquidCrystal595下载该库:
1.转到Arduino IDE的 Sketch 菜单。
2.单击 包括库 。
3.现在,单击添加.zip库。选择从给定链接下载的zip文件并完成。
现在上传下面给出的代码,您将看到液晶显示屏上显示消息。
码:
#包括
代码很简单,因为我们只需要在LiquidCrystal595 lcd();中提供数据引脚,锁存引脚和时钟引脚作为参数即可。 其余代码与我们之前所做的相同。
这样,您已经使用移位寄存器保存了3个NodeMCU引脚。
另外,检查与其他微控制器的16x2 LCD接口:
- 与PIC单片机的LCD接口
- 使用Python与Raspberry Pi进行16x2 LCD接口
- LCD与ATmega32单片机的接口
- LCD与8051单片机的接口