《ESP32 入門》NodeMCU-32S 連接 1602 LCD 顯示螢幕(I2C)

你是否剛入手 ESP32,想讓它在螢幕上顯示文字?1602 LCD 是最經典的入門顯示元件,便宜、好買、接線簡單。這篇教學會帶你從零開始,一步一步完成 ESP32 + 1602 LCD 的第一個專案。

《ESP32 入門》NodeMCU-32S 連接 1602 LCD 顯示螢幕(I2C)

你是否剛入手 ESP32,想讓它在螢幕上顯示文字?1602 LCD 是最經典的入門顯示元件,便宜、好買、接線簡單。這篇教學會帶你從零開始,一步一步完成 ESP32 + 1602 LCD 的第一個專案。


事前準備

建議初學者先用常見的Nodemcu-32s來練習,當然如果手邊有其它ESP32開發板也是沒問題的,只是腳位就要自行留意囉!

NodeMCU-32S 相容版本 ESP32開發板 WiFi 藍牙 可用Arduino IDE
安可信原廠貨! 全腳位引出,還保持迷你的身型,插上麵包後還能插杜邦線,真的是太棒了! 和NodeMCU V2幾乎一樣尺寸! 有5V供電輸出,非常方便! 有了ESP32開發板,真的可以忘記原來的那些Arduino板子了! 可以用Arduino IDE開發,但效能更強大,還內建WiFi 傑森實測記錄,大家可以到 F 粉 絲 團 B 看貼文哦! ESP32-D0WDQ6 內置兩個低功耗 Xtensa® 32-bit LX6 MCU。片上存儲包括: • 448 KB 的 ROM,用於程序啟動和內核功能
💡 小提醒: 購買 1602 LCD 時,建議直接買「已焊接 I2C 模組」的版本。如果買到沒有焊接的,你會需要自己焊上 I2C 轉接板,而且接線會從 4 條變成 16 條,對初學者來說比較麻煩。
藍底 黃綠 1602 LCD 顯示器 已焊2004轉接板 IIC/I2C
原來的1602顯示器需要7個IO介面才能驅動起來,本產品附的這個轉接板,可以幫你省下5個pin 附程式庫及範例程式 商品特色 支持I2C協議 帶背光電源控制,可以通過跳線帽設置是否連接背光電源。插上跳線帽為連接背光電源,拔掉跳線帽為斷開背光電源 對比度可調節,旋轉藍色電位器,順時針增強,逆時針減弱。電位器設計在正面,方便客戶隨時隨地自由調節 模組可級聯,最多可級聯8個。通過短路A0/A1/A2修改設備地址。

傑森在做這個範例時,用到了擴展板,可以更方便的接線,若是沒有的人,把Nodemcu-32s插在麵包板上使用也是沒問題的哦!

ESP32S擴展板 適用於Nodemcu-32s 38Pin全引出
※ 不含ESP32S開發板,需另購! ESP32S專用擴展板 適用於Nodemcu-32s,其它型號都不相容哦!請留意。 38Pin全引出,無敵方便!

軟體環境

安裝開發板:如果之前已使用過ESP32開發板,就不用重複進行了。若是第一次,請參考我們另一篇專文教學哦!

在Arduino IDE中新增ESP32的開發板-以Nodemcu-32s為例
雖然Arduino Uno方便好用,如果真的需要WiFi功能,傑森一律建議直接換塊ESP32的板子,這是最直接的方法。 但Arduino IDE安裝好時並沒有ESP32開發板的選項,所以必須自行安裝,不過其實很簡單的。

第一步:認識 I2C 與 1602 LCD

什麼是 1602 LCD?

1602 的意思是:16 個字元 × 2 行。它可以顯示英文字母、數字和一些特殊符號。雖然不能顯示中文,但對於顯示感測器數值、系統狀態等用途已經非常夠用了。

什麼是 I2C?

I2C(讀作 I-two-C)是一種通訊協定,最大的好處是 只需要 2 條訊號線(SDA 和 SCL)就能讓多個裝置互相溝通。

如果沒有 I2C 模組,1602 LCD 需要接 6 條以上的線才能運作。有了 I2C 轉接模組,只需要接 4 條線(含電源),省時省力。

I2C 位址是什麼?

每個 I2C 裝置都有一個「地址」,就像每間房子都有門牌號碼一樣。ESP32 透過這個地址來辨別要跟哪個裝置溝通。

1602 LCD 的 I2C 模組常見的位址是 0x270x3F,取決於模組上用的晶片型號。等一下我們會教你怎麼確認你的位址是哪一個。


第二步:接線

這是整個專案最重要的一步,接錯線輕則不會動,重則可能燒毀元件。請仔細核對!

接線對照表

1602 I2C 模組 NodeMCU-32S 說明
GND GND 接地(共地)
VCC VIN (5V) 電源,LCD 需要 5V
SDA GPIO 21 I2C 資料線
SCL GPIO 22 I2C 時脈線
⚠️ 注意: VCC 要接到 VIN(5V),不是 3.3V。1602 LCD 在 3.3V 下可能會顯示不清楚或完全不亮。NodeMCU-32S 的 VIN 腳位在 USB 供電時會輸出 5V。

第三步:安裝函式庫

在寫程式之前,我們需要安裝一個函式庫來控制 LCD。

  1. 打開 Arduino IDE
  2. 點選左邊的「圖書館管理員」圖示(書本圖案),或到「工具 → 管理函式庫」
  3. 在搜尋欄輸入 LiquidCrystal I2C
  4. 找到作者是 Frank de Brabander 的那個,按「安裝」

安裝好後就可以在程式中使用 #include <LiquidCrystal_I2C.h> 了。


第四步:Hello World!在 LCD 上顯示文字

接下來就可以來寫第一個 LCD 程式了。

完整程式碼

#include <Wire.h>              // I2C 通訊函式庫(Arduino 內建)
#include <LiquidCrystal_I2C.h> // LCD I2C 控制函式庫

// 建立 LCD 物件
// 參數:I2C位址, 每行字元數, 行數
// 如果你掃描出來的位址是 0x3F,就把 0x27 改成 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();       // 初始化 LCD
  lcd.backlight();  // 開啟背光燈

  // 在第一行顯示文字
  // setCursor(欄, 列) → 從第 0 欄、第 0 列開始(左上角)
  lcd.setCursor(0, 0);
  lcd.print("Hello, ESP32!");

  // 在第二行顯示文字
  // setCursor(0, 1) → 第 0 欄、第 1 列(第二行開頭)
  lcd.setCursor(0, 1);
  lcd.print("jmaker.com.tw");
}

void loop() {
  // 目前不需要重複執行的動作,留空即可
}

上傳後,你的 LCD 應該會顯示:

+------------------+
| Hello, ESP32!    |
| jmaker.com.tw    |
+------------------+

🎉 恭喜!你成功讓 ESP32 在 LCD 上顯示文字了!

💡 螢幕有亮但看不到字? 翻到 LCD 背面,找到 I2C 模組上的藍色小旋鈕(可變電阻),用螺絲起子慢慢轉動來調整對比度,直到文字清晰為止。

常見問題 FAQ

Q:螢幕完全沒亮?

確認 VCC 接到 VIN(5V),GND 確實有接。另外檢查 USB 線是否支援資料傳輸。

Q:背光有亮但沒有文字?

用小螺絲起子轉動 I2C 模組背面的藍色可變電阻,慢慢調整對比度。

Q:顯示亂碼或沒有內容?

1602 LCD 的 I2C 模組常見的位址是 0x270x3F,換一個試試。另外確認函式庫版本是否正確安裝。


LCD 常用函式速查表

函式 功能 範例
lcd.init() 初始化 LCD lcd.init();
lcd.backlight() 開啟背光 lcd.backlight();
lcd.noBacklight() 關閉背光 lcd.noBacklight();
lcd.setCursor(欄, 列) 設定游標位置 lcd.setCursor(0, 1);
lcd.print() 顯示文字或數字 lcd.print("Hi");
lcd.clear() 清除螢幕所有文字 lcd.clear();
lcd.home() 游標回到左上角 lcd.home();
lcd.scrollDisplayLeft() 畫面向左捲動 lcd.scrollDisplayLeft();
lcd.scrollDisplayRight() 畫面向右捲動 lcd.scrollDisplayRight();
lcd.blink() 游標閃爍 lcd.blink();
lcd.noBlink() 取消游標閃爍 lcd.noBlink();

總結

1602 LCD 雖然簡單,但它是很多實用專案的基礎。當你學會了 LCD 顯示之後,可以把任何感測器的數據都顯示在螢幕上,像是溫濕度、距離、光線強度、氣壓等等。

如果覺得這篇教學有幫助,歡迎分享給其他正在學 ESP32 的朋友!

傑森創工 - 網路商店 - Arduino、ESP32的專家,創客的好朋友
傑森創工 JMaker Workshop 專注於Arduino、樹莓派(Raspberry Pi)、物聯網、創客(Maker)相關商品的研究,專業銷售各種電子材料、開發板、Arduino套件、感測器模組,以及各類工具。更提供許多獨家的專題套件,供大學或高中職學生製作專題。為台中最專業的Arduino供應商。