在本教程中,我們將了解如何在不使用 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。
-
lcd
+關注
關注
34文章
4426瀏覽量
167626 -
I2C
+關注
關注
28文章
1489瀏覽量
123888 -
NODEMCU
+關注
關注
13文章
289瀏覽量
21440
發布評論請先 登錄
相關推薦
評論