搜尋程式碼

ESP32 教學 11/55 - 使用 LCD1602 LCD2004 同 ESP32 - 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
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
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. 
}

資源與參考資料

文件📁

冇文件可用。