在本教程中,我们将了解如何在不使用 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。
华为这款新机并肩荣耀8高配,价格却屡创新低!
苹果11日将发三款苹果芯片Mac
DNA存储延续千年的承载介质,可将数据压缩至方糖大小
ALC在保护扬声器的同时改善音质
Xilinx凭借新型存储器、3D-on-3D和多处理SoC技术在16nm遥遥领先
如何在不使用I2C通信的情况下将NodeMCU与16x2 LCD连接
区块链将会对数据中心产生怎样的影响
PCB制程中一种渐薄型孔无铜的原因分析
电流隔离LVDS接口
怎样将Android手机改为可编程的机器人
电视盒子哪个牌子最好?达人推荐11.11电视盒子热销排行榜
先正电子2021年工作会议召开
新一代信号质量分析仪MP1900A BERT,可应对下一代总线及最新的以太网网络
红米Note 8 Pro正式新增了8GB+256GB版本
你愿意选择华为P10,还是继续等待小米6?
比金立还惨的手机品牌_看不到它的实体店
我们能从互联网发明者那里学到IIoT的哪些知识
WT2605X MP3语音编解码芯片的详细介绍
读速提升6倍!FORESEE车规级UFS开启汽车存储攀升之路
苹果和三星因手机射频电磁辐射问题遭到了美国消费者的集体诉讼