在 Arduino 專案中,若需要顯示數據(如溫濕度、計數器或狀態訊息),LCD 1602 顯示螢幕是最常見且實用的選擇。然而,傳統的 1602 LCD 至少需要佔用 Arduino 的 7 個 IO 腳位,不僅接線繁雜,更佔據了寶貴的板載資源,在【Arduino入門】 第十八篇已經有跟各位介紹過如何使用7個IO端口的1602 LCD。
為了解決這個問題,Mirotek 1602 I2C 顯示模組整合了 PCF8574 I2C 轉接板,只需 4 條線(VCC, GND, SDA, SCL) 即可輕鬆完成連結!本文將手把手帶你掌握接線方式、I2C 位址掃描、函式庫安裝與實用程式範例。
傳統 LCD 1602 vs. I2C 介面模組比較

實驗所需硬體材料
在開始之前,請準備以下硬體元件:
- 開發板:Arduino Uno R3 (或 Nano / Mega 2560)
- 顯示模組:Mirotek LCD 1602 I2C 顯示模組(藍底白字)
- 線材與配件:杜邦線 4 條、USB 傳輸線
- 電源與麵包板:實驗用麵包板(視需要選用)
💡 新手推薦:一次購足學習所需零組件!👉 米羅科技 Arduino 程式學習套件組
Arduino 與 LCD 1602 I2C 腳位接線教學
LCD 1602 I2C 模組背面帶有 4 個接線針腳,與 Arduino Uno 的連接對照如下:
Step-by-Step 程式庫安裝指南 (LiquidCrystal_I2C)
驅動 I2C 介面的 LCD 需要安裝 LiquidCrystal_I2C 函式庫,請照以下步驟安裝:
開啟 Arduino IDE。
點選上方選單 「草稿碼」 (Sketch) ➔ 「匯入程式庫」 (Include Library) ➔ 「管理程式庫…」 (Manage Libraries…)。
在搜尋欄輸入:
LiquidCrystal I2C。找到由 Frank de Brabander 或 Marco Schwartz 維護的
LiquidCrystal_I2C程式庫,點擊 「安裝」。
▼或是可以用米羅提供的載點LiquidCrystal I2C函式庫 : 下載點 (若下載 ZIP 檔,可透過「草稿碼 ➔ 匯入程式庫 ➔ 加入 .ZIP 程式庫」進行安裝。)
▼選擇剛剛所下載的「 LiquidCrystal_I2C-master.zip 」加入程式庫。
關鍵第一步:使用 I2C Scanner 尋找 LCD 預設位址
不同廠商生產的 I2C 轉接晶片(如 PCF8574T 或 PCF8574AT),其預設 I2C 位址可能不同(最常見為 0x27 或 0x3F)。如果位址填錯,LCD 將無法顯示文字。
請先上傳下方 I2C 掃描程式,並打開序列埠監控視窗(Baud rate: 9600)確認你的 LCD 位址:
/*
* Arduino I2C Scanner 位址掃描工具
*/
#include
void setup() {
Wire.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("\nI2C Scanner 開始掃描...");
}
void loop() {
byte error, address;
int nDevices = 0;
for (address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
Serial.print("找到 I2C 裝置!位址為:0x");
if (address < 16) Serial.print("0");
Serial.print(address, HEX);
Serial.println(" !");
nDevices++;
}
}
if (nDevices == 0) Serial.println("未找到任何 I2C 裝置,請檢查接線!");
delay(5000); // 每 5 秒掃描一次
}
Arduino LCD 1602 I2C 基礎顯示範例
確認好位址後(假設為 0x27),即可上傳以下範例程式,讓螢幕印出文字:
/*
* Mirotek LCD 1602 I2C 基礎顯示範例程式
*/
#include <LiquidCrystal_I2C.h>
// 設定 LCD 位址為 0x27,顯示區域為 16 字元 x 2 行
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); // 初始化 LCD 螢幕
lcd.backlight(); // 開啟 LCD 背景高亮燈
// 第一行顯示文字 (第 0 欄,第 0 列)
lcd.setCursor(0, 0);
lcd.print("Hello, World!");
// 第二行顯示文字 (第 0 欄,第 1 列)
lcd.setCursor(0, 1);
lcd.print("MiroTek Studio");
}
void loop() {
// 主程式持續執行區 (此範例暫不需重複動作)
}
核心語法解析:
lcd.init():初始化 LCD 模組。lcd.backlight():開啟背光(若呼叫lcd.noBacklight()則關閉背光省電)。lcd.setCursor(col, row):設定光標位置(col範圍 0-15,row範圍 0-1)。lcd.print("文字"):顯示指定字串。
常見問題與除錯指南(FAQ)
Q1:上傳程式後,LCD 螢幕只顯示白色方塊/黑塊,沒有出現字形?
原因:螢幕對比度未調整至正確位置。
解決方法:LCD 模組背面有一個藍色的可變電阻(電位器),請使用十字起子小幅旋轉調節對比度,直到文字清晰顯示為止。
Q2:背光有亮,但完全沒有顯示任何內容或方塊?
原因:I2C 位址設定錯誤,或 SDA/SCL 針腳接錯。
解決方法:
請重新執行前文的 I2C Scanner,確認程式內
LiquidCrystal_I2C lcd(位址, 16, 2)的位址是否填寫正確(如改為0x3F)。檢查 SDA 與 SCL 是否接反(SDA 接 A4,SCL 接 A5)。
Q3:如何讓文字產生閃爍或自動捲動效果?
閃爍效果:使用
lcd.blink()或lcd.noBlink()。自動捲動:呼叫
lcd.scrollDisplayLeft()或lcd.scrollDisplayRight()即可實現字幕跑馬燈效果。
延伸閱讀與進階推薦
學會 LCD 1602 I2C 模組後,您可以將其結合各類感測器,打造更豐富的專案(如數位溫濕度計、倒數計時器或物聯網儀表板):


