跳到:
ESP32 教學 1/55 - SunFounder ESP32 IoT 學習套件軟件同 Arduino IDE 簡介 ESP32 教學 2/55 - 咩係 ESP32、相機擴展板、開箱 SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 3/55 - 電阻、LED、麵包板項目:Hello LED -ESP32 IoT 學習套件 ESP32 教學 4/55 - 數據類型 定義變量 Int、bool、char、序列監視器 - ESP32 IoT 套件 ESP32 教學 5/55 - LED 漸變,控制 LED 亮度 - ESP32 物聯網學習套件 ESP32 教學 6/55 - 使用 RGB LED 項目 2.3 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 7/55 - 使用陣列配合 ESP32 Arduino 程式設計 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit ESP32 教學 9/55 - 用按鈕切換 LED,按一下開,按一下關 - SunFounder ESP32 IoT 套件 ESP32 教學 10/55 - 使用七段顯示器 74HC595 嘅數字計數器 - ESP32 IoT 學習套件 ESP32 教學 11/55 - 使用 LCD1602 LCD2004 同 ESP32 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 12/55 - WS2812 RGB 燈帶 4 項目,配合 SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 13/55 - Arduino 用有源蜂鳴器發出嗶聲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 14/55 - 使用 SunFounder ESP32 IoT 學習套件播放自訂音樂音符 ESP32 教學 15/55 - 用 ESP32 L293D 控制直流馬達速度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 16/55 - 使用 ESP32 同 L293D 嘅迷你水泵 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 17/55 - 使用 ESP32 同電位器控制伺服馬達 - ESP32 IoT 學習套件 ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 19/55 - 使用紅外線感測器偵測障礙物 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 20/55 - 循線模組 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 21/55 - 用 PIR 動作感應器偵測人體 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 22/55 - 用 LED Arduino 感受光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 23/55 - 使用 ESP32 讀取電位器電壓 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 24/55 - 量度土壤濕度用於灌溉 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 25/55 - 使用 NTC 同 LCD 測量溫度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 26/55 - 使用搖桿配合 Arduino 採取行動 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 27/55 - 用超聲波感測器量度距離 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 28/55 - DHT11 溫度感測器配合 LCD | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 29/55 - 用 ESP32 讀取紅外線遙控器按鍵| SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 30/55 - 使用 Adafruit IO 服務透過 MQTT 喺網頁上控制伺服摩打 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 31/55 - 專案 LED 燈帶配合避障功能 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教程 32/55 - 汽车倒车距离警告(带LCD同蜂鸣器)| SunFounder嘅物联网学习套件 ESP32 教學 33/55 - 使用 SunFounder 嘅 ESP32 IoT 學習套件整數碼骰仔 ESP32 教學 34/55 - 用 RGB LED 同旋鈕整顏色漸變 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 35/55 - 植物監測器,土壤、溫度同光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 36/55 - 猜數字遊戲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 37/55 - 使用藍牙應用程式配合 ESP32 BLE | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 38/55 - 用手機控制 RGB LED | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 39/55 - 用 ESP32 做藍牙音樂播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 40/55 - 讀寫 Micro SD 卡 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 41/55 - 使用 Micro SD 卡嘅 MP3 播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 42/55 - 用相機影相並儲存喺 Micro SD CAM-1 | SunFounder 嘅 ESP32 套件 ESP32 教程 43/55 - 物聯網互聯網天氣站 | SunFounder 嘅 ESP32 物聯網學習套件 ESP32 教學 44/55 - ESP32 相機網絡伺服器透過 WiFi 傳輸視頻串流 CAM-2 | SunFounder 嘅 ESP32 套件 ESP32 教學 45/55 - 自訂串流伺服器配合 LED 控制 CAM-3 l SunFounder 嘅 ESP32 學習套件 ESP32 教學 46/55 - 使用 HiveMQ MQTT 進行遠程溫度監控 | SunFounder 嘅 ESP32 套件 ESP32 教學 47/55 - 使用 MQTT 透過互聯網嘅 WS2812 CheerLights | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 48/55 - 遠程溫度監控同 LED 控制 MQTT | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 49/55 - 透過 Adafruit IoT 控制直流摩打 | SunFounder 嘅 ESP32 套件 ESP32 教學 50/55 - 喺世界任何地方控制 RGB LED | SunFounder 嘅 ESP32 套件 ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit ESP32 教學 52/55 - WS2812 CheerLights MQTT 全球同步連 LCD | SunFounder ESP32 IoT 套件 ESP32 教學 53/55 - 建立 LCD 網絡時鐘 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 54/55 - 透過 Wi-Fi 設定 WS2812 LED 燈條顏色 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 55/55 - 點樣量度 12V、24V 或者 100V 直流電壓 | SunFounder 嘅 ESP32 IoT 學習套件
ESP32 教學 11/55 - 使用 LCD1602 LCD2004 同 ESP32 - SunFounder 嘅 ESP32 IoT 學習套件
喺呢個教學入面,我哋會探討點樣將LCD1602同LCD2004同ESP32微控制器一齊使用。呢啲LCD屏幕可以令我哋有效地顯示文字同其他資訊,透過視覺反饋嚟提升我哋嘅項目。我哋亦會講解點樣調整對比度以確保可讀性。
ESP32係SunFounder ESP32 IoT學習套件嘅一部分,內置Wi-Fi同藍牙功能,令佢成為各種IoT應用嘅強大工具。透過將LCD連接到ESP32,我哋可以輕鬆顯示來自程式碼嘅訊息或數據輸出,令我哋嘅項目更加互動同用戶友好(影片00:30位置)。
硬件講解
我哋會用到嘅主要組件包括ESP32微控制器同LCD1602或LCD2004顯示模組。ESP32會作為我哋項目嘅大腦,處理輸入同控制輸出,包括LCD顯示。
LCD模組透過I2C通訊,呢個簡化咗接線,只需要用兩個數據引腳(SDA同SCL)嚟通訊,加上電源同接地連接。呢個設置大幅減少咗連接多個引腳嘅複雜性,令電路更整潔同容易管理。
數據手冊詳情
製造商
SunFounder
零件編號
LCD1602
邏輯/IO電壓
5 V
供電電壓
5 V
顯示尺寸
16 x 2 個字元
背光
有
介面
I2C
尺寸
80 x 36 mm
備註/變體
通常使用I2C地址0x27
確保提供正確嘅電壓(5 V)以防止損壞。
使用短電線以減少I2C線路上嘅干擾。
調整可變電阻以獲得最佳嘅對比度可見性。
如果顯示器無法初始化,請檢查I2C地址(常見地址:0x27、0x3F)。
更新訊息前先清除顯示,以避免重疊。
接線說明
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring
要將LCD1602連接到ESP32,首先將LCD嘅接地引腳連接到ESP32上嘅接地引腳。然後,將LCD嘅VCC引腳連接到ESP32嘅5V輸出。對於I2C通訊,將LCD嘅SDA引腳連接到ESP32上嘅引腳21,並將LCD嘅SCL引腳連接到ESP32上嘅引腳22。確保連接穩固,以避免任何通訊問題。
需要注意嘅係,雖然ESP32以3.3V邏輯電平運作,但LCD1602需要5V先可以正常運作。因此,確保你使用正確嘅電壓供應,以避免損壞LCD。如果你使用唔同尺寸嘅LCD,請根據I2C地址同規格相應調整接線。
程式碼示例同講解
喺程式碼入面,我哋首先包含I2C通訊同LCD所需嘅函式庫。我哋使用I2C地址0x27建立一個LCD實例,並指定佢有16列同2行。
#include
#include
LiquidCrystal_I2C lcd(0x27,16,2); // 將LCD地址設定為0x27,用於16字元同2行顯示
呢個設置令我哋可以輕鬆控制LCD。喺setup()函數入面,我哋初始化LCD並開啟背光,然後打印一條歡迎訊息。
void setup()
{
lcd.init(); // 初始化LCD
lcd.backlight(); // 開啟LCD背光。
lcd.print("Hello, world!"); // 打印一條訊息到LCD。
delay(3000);
}
喺loop()函數入面,我哋透過清除顯示、設定游標位置同打印當前計數值嚟持續更新顯示。呢個示範咗LCD點樣動態顯示變化嘅資訊。
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // 將游標位置設定到第一行同第一列(0, 0)。
lcd.print("COUNT: ");
lcd.print(count); // 打印count變數嘅當前值。
delay(1000);
count++; // 將計數器加1。
}
完整嘅程式碼會喺文章下面載入,你可以喺嗰度睇到完整嘅實現同為你嘅項目添加嘅任何額外功能。
示範/預期效果
當所有嘢都連接好並且程式碼上傳之後,LCD應該會顯示「Hello, world!」3秒鐘,然後開始一個每秒遞增嘅計數器。你可以使用可變電阻調整對比度,以確保文字容易閱讀(影片08:45位置)。
如果你遇到任何問題,請檢查接線連接並確保使用正確嘅I2C地址。一個常見嘅錯誤係LCD嘅I2C地址同程式碼入面設定嘅唔匹配,呢個會令顯示器無法正常運作。
影片時間戳
00:00 開始
1:47 LCD介紹
3:26 文檔頁面
5:06 點樣將LCD同ESP32接線
9:07 喺Arduino上選擇ESP32開發板同COM端口
8:51 安裝LCD函式庫
10:06 查找LCD嘅I2C地址
14:00 Arduino程式碼講解
17:50 示範
20:54 將LCD2004同ESP32一齊使用
22:58 綠色LCD1602比藍色好
圖片
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring-schematic
代碼
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
語言: C++
檢視程式碼
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//SDA->21,SCL->22
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
int count = 0;
void setup()
{
lcd.init();// initialize the lcd
lcd.backlight(); // Turns on the LCD backlight.
lcd.print("Hello, world!"); // Print a message to the LCD.
delay(3000);
}
void loop()
{
lcd.clear();
lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
lcd.print("COUNT: ");
lcd.print(count); // Prints the current value of the count variable.
delay(1000);
count++; // Increments the counter by 1.
}