ESP32, IOT物聯網

【ESP32教學】第九篇:LCD 1602 I2C顯示模組接線與文字顯示實作

一、 實驗說明:讓 ESP32 輸出清晰可讀的文字資訊!

在先前的專題中,我們都是透過電腦上的「序列埠監視器(Serial Monitor)」來觀看 ESP32 讀取到的數據。但如果要做一個脫離電腦獨立運作的物聯網裝置(例如:桌上型智慧溫濕度計、計數器、門禁系統),我們就需要一個實體顯示螢幕!

本實驗我們將使用創客界最經典的 LCD 1602 顯示器(搭配 I2C 轉接模組)。帶大家搞懂如何只用 2 根訊號線(SDA、SCL)就能在螢幕上輸出自訂英文文字與數字數據!

 

二、 實驗材料準備清單

本篇實作 LCD 1602 顯示專案所需的硬體元件如下:

  • ESP32 開發板

  • 麵包板 (Breadboard)

  • LCD 1602 液晶顯示器 (帶 I2C 背板模組)

  • 杜邦跳線

  • USB 傳輸線

🛒 一次備齊創客工具! 歡迎直接購買米羅科技的 ESP32 物聯網應用學習套件,免去東奔西跑湊零件的煩惱。內含 LCD 1602 I2C 顯示模組、各類感測器及基礎電子元件,是學校課堂教學與個人專案開發的最佳首

 

三、 核心知識:為什麼要選用 I2C 介面的 LCD 1602?

1. 省腳位的神隊友:I2C 通訊協定

傳統的 LCD 1602 螢幕需要連接至少 6~8 根 GPIO 腳位才能顯示文字,接線非常複雜且占用資源。而加裝 I2C 轉接板(PCF8574) 後,只需要 4 根線(VCC、GND、SDA、SCL) 即可搞定!

LCD 1602 I2C ESP32 LCD 1602

2. ESP32 預設的 I2C 腳位

ESP32 晶片預設的硬體 I2C 腳位如下(請務必接對):

  • SDA(串列資料線) ➜ 連接至 ESP32 的 GPIO 21

  • SCL(串列時脈線) ➜ 連接至 ESP32 的 GPIO 22

 

3. 認識 I2C 位址(Address)

每個 I2C 裝置在通訊時都有一個唯一的身份位址,市面上 LCD 1602 I2C 模組常見的位址為 0x270x3F。在寫程式時需要正確設定這個位址,螢幕才能正常接受訊息。

 

四、 軟體設定:安裝 LiquidCrystal_I2C 函式庫

在編譯程式前,需先在 Arduino IDE 中安裝 LCD 1602 I2C 的專用函式庫:

  • 下載LiquidCrystal I2C函式庫 :  載點
  • 在 Arduino 整合環境功能表點選 草稿碼 / 匯入程式庫 / 加入.ZIP程式庫

LiquidCrystal_I2C

▼選擇剛剛所下載的「 LiquidCrystal_I2C-master.zip 」加入程式庫。

I2C 位址 0x27 I2C 位址 0x3F

 

六、 實作實驗程式碼:顯示 Hello World 與動態計數

請將以下程式碼複製到 Arduino IDE 中並上傳:

1. 範例程式碼

#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup()
{
  lcd.init(); // initialize the lcd 
  // Print a message to the LCD.
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.setCursor(0,1);
  lcd.print("MiroTek");
}

void loop()
{
}

2. 燒錄與操作測試

  1. 點擊 Arduino IDE 的 [上傳 (Upload)] 按鈕。

  2. 上傳完成後,LCD 1602 螢幕的第一列將會顯示 Hello, world!,第二列則會顯示MiroTek

 

六、 初學者常見卡關問題與排錯指南(Troubleshooting)

  • Q:螢幕背光有亮,但完全看不到文字,只有一整排藍色或白色方塊?

    • 對比度未調整:這是 90% 初學者都會遇到的問題!請拿一支小型十字螺絲起子,旋轉 LCD 轉接板背面的藍色可變電阻(對比度微調旋鈕),直到文字清晰顯示為止。

  • Q:程式上傳成功,但螢幕一片空白,連方塊都沒有?

    • I2C 位址設錯:請確認程式中的 LiquidCrystal_I2C lcd(0x27, 16, 2);。嘗試將 0x27 改成 0x3F 重新上傳。

    • 供電不足:請確認 VCC 腳位是連接在 ESP32 的 5V / VIN 腳位,而非 3.3V。

    • 背光接口需要經由Jump將腳位短路,若是Jump遺失可使用母母杜邦線對接。
  • Q:ESP32 的 SDA / SCL 接線在哪裡?

    • ESP32 預設 SDA 為 GPIO 21,SCL 為 GPIO 22。請重新檢查杜邦線是否有插錯腳位。

 

七、 結語與下一篇教學

恭喜你!成功掌握了 LCD 1602 I2C 顯示模組的控制方法。學會了文字顯示後,你可以把前面幾篇學到的「光敏電阻」數據直接輸出到 LCD 螢幕上,打造出一台擺在桌上的專屬智慧小儀表!下一篇教學,我們將帶大家解鎖更多實用的物聯網感測與控制專題!

👉 上一篇回顧【ESP32教學】第八篇:PWM呼吸燈原理與LED燈光亮度調控實作

👉 下一篇預告ESP32教學】第十篇:超音波測距模組HC-SR04 

 

相關文章