在本教程中,我們將了解如何在不使用 I2C 通信的情況下將 NodeMCU 與 16x2 LCD連接。在這里,我們將使用移位寄存器 SN74HC595 連接 16x2 LCD。即使不使用任何移位寄存器,我們也可以對(duì)其進(jìn)行接口。我們將在本教程中看到這兩種接口。兩種接口之間的主要區(qū)別在于NodeMCU中使用的引腳數(shù)量。
所需材料:
節(jié)點(diǎn)單片機(jī) ESP12E
SN74HC595 移位寄存器 IC
16x2液晶模塊
公-母線
面包板
移位寄存器:
在數(shù)字系統(tǒng)中,移位寄存器是觸發(fā)器的組合,觸發(fā)器串聯(lián)并共享相同的時(shí)鐘。在這個(gè)級(jí)聯(lián)封裝中,一個(gè)觸發(fā)器的數(shù)據(jù)輸出充當(dāng)下一個(gè)觸發(fā)器的數(shù)據(jù)輸入,這導(dǎo)致電路將存儲(chǔ)在其中的位數(shù)組移動(dòng)一個(gè)位置。
我們將要使用的IC是SN74HC595N。它是一款簡(jiǎn)單的8位串行并行輸出移位寄存器IC。簡(jiǎn)而言之,該IC允許通過在并行和串行格式之間轉(zhuǎn)換數(shù)據(jù)來向微控制器添加額外的輸入或輸出。我們的微控制器使用該IC的3個(gè)引腳串行發(fā)送數(shù)據(jù)。實(shí)際上,從輸入引腳獲取 8 位信息后,8 位輸出將出現(xiàn)在 8 個(gè)引腳上。
IC SN74HC595N 的引腳圖和引腳功能如下:
您可以在此處找到74HC595N與Arduino和Raspberry Pi的接口。
使用 ESP12 接口 LCD,無需使用移位寄存器:
如果您已將16x2 LCD與Arduino板一起使用,那么它將非常容易。您只需在NodeMCU中連接引腳,就像使用Arduino板一樣。
NodeMCU中有16個(gè)GPIO引腳,我們需要6個(gè)引腳和GND,vcc。根據(jù)下面給出的電路圖連接引腳:
我們將使用4 個(gè)數(shù)據(jù)引腳和 RS、LCD 的 EN,它們連接為:
液晶屏的d7引腳==節(jié)點(diǎn)MCU的D8引腳
液晶屏的 d6 引腳 == 節(jié)點(diǎn)MCU 的 D7 引腳
液晶屏的d5引腳==節(jié)點(diǎn)MCU的D6引腳
液晶屏的d4引腳==節(jié)點(diǎn)MCU的D5引腳
液晶顯示器的 RS 引腳 == 節(jié)點(diǎn)MCU 的 D2 引腳
液晶屏的 en 引腳 == 節(jié)點(diǎn)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);
}
正如我們所看到的,我們已經(jīng)使用了 6 個(gè)引腳的 NodeMCU。這個(gè)小板可用的引腳已經(jīng)更少了,我們只剩下很少的引腳來連接其他傳感器。
因此,為了克服這個(gè)問題,我們將使用移位寄存器IC,這將最大限度地減少no。節(jié)點(diǎn)MCU上使用的引腳。
使用 ESP12 接口 LCD,使用移位寄存器 SN74HC595N:
移位寄存器IC中提供8個(gè)輸出引腳和3個(gè)輸入引腳。我們將使用 6 個(gè)輸出引腳與 LCD 連接,使用 3 個(gè)輸入引腳連接到 NodeMCU。
LCD與IC的連接如下:
液晶屏D7引腳==IC引腳1
液晶屏D6引腳==IC引腳2
液晶屏D5引腳==IC引腳3
液晶屏D4引腳==IC引腳4
液晶屏的RS引腳==IC的引腳7
液晶屏引腳 == IC 引腳 15
節(jié)點(diǎn)MCU與IC的連接:
節(jié)點(diǎn)MCU的D6引腳==IC的引腳14,IC的數(shù)據(jù)引腳
節(jié)點(diǎn)MCU的D7引腳==IC的引腳12,IC的鎖存引腳
節(jié)點(diǎn)MCU的D8引腳==IC的引腳11,IC的時(shí)鐘引腳
將 IC 的引腳 16 和 PIN 10 連接到 Vcc。
將 IC 的引腳 8 和引腳 13 連接到接地。
根據(jù)下圖仔細(xì)制作電路:
現(xiàn)在我們的硬件已準(zhǔn)備好進(jìn)行編程。
1. Arduino IDE的Goto Sketch菜單。
2. 單擊“包括庫(kù)”。
3.現(xiàn)在,單擊添加.zip庫(kù)。選擇您從給定鏈接下載的zip文件并完成。
現(xiàn)在上傳下面給出的代碼,您將看到打印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");
}
代碼很簡(jiǎn)單,因?yàn)槲覀冎恍枰贚iquidCrystal595 lcd()中給出數(shù)據(jù)引腳、鎖存引腳和時(shí)鐘引腳作為參數(shù);其余代碼與我們之前所做的相同。
這樣,您剛剛通過使用移位寄存器保存了 3 個(gè)引腳的 NodeMCU。
-
lcd
+關(guān)注
關(guān)注
34文章
4426瀏覽量
167480 -
I2C
+關(guān)注
關(guān)注
28文章
1487瀏覽量
123740 -
NODEMCU
+關(guān)注
關(guān)注
13文章
289瀏覽量
21403
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論