ESP32-CAM 內建 LED 怎麼控制?GPIO 4 與 GPIO 33 接腳全解析
解析 ESP32-CAM 內建 LED 的接腳特性:正面閃光燈為 GPIO 4,與 SD 卡共用接腳;背面指示燈為 GPIO 33,採低電位觸發(Active Low)。
在使用 ESP32-CAM 這塊帶鏡頭的模組時,很多玩家會發現原本在一般 ESP32 開發板上跑得好好的 Blink 測試程式失靈了,甚至發現 LED 亮了之後,SD 卡就讀不到資料。
這篇文章將幫大家整理這塊板子 LED 的特殊之處,避開常見的錯誤!
🛠️ ESP32-CAM 的兩顆 LED
與一般的 ESP32 開發板(通常只有一顆 GPIO 2 的 LED)不同,ESP32-CAM 內建了兩顆功能截然不同的 LED:
1. 閃光燈 LED (高亮度白光)
這顆 LED 位於板子正面、鏡頭旁邊,主要用於拍照時的補光。
- 連接接腳:
GPIO 4 - 特性: 電流強、亮度高。
- 注意: 它與 MicroSD 卡槽的 Data 1 線路共用。如果你同時啟動 SD 卡傳輸,又強行控制閃光燈,可能會造成資料寫入失敗或系統當機。

2. 狀態指示燈 (紅色小燈)
這顆 LED 通常位於板子背面(靠近天線或下載晶片處),用於顯示系統運作狀態。
- 連接接腳:
GPIO 33 - 特性: 它是 「反向控制 (Active Low)」。
LOW(0) → 燈亮 💡HIGH(1) → 燈熄 🌑

🆚 與一般 ESP32 開發板的差異
為了方便大家對照,兩者的核心差異如下表:
| 功能項目 | 一般 ESP32 (DevKit V1) | ESP32-CAM |
|---|---|---|
| 預設 LED 接腳 | GPIO 2 |
GPIO 33 (指示燈) / GPIO 4 (閃光燈) |
| 邏輯觸發 | 高電位觸發 (Active High) | D33低電位觸發 (Active Low) |
| 資源衝突 | 較無衝突 | GPIO 4 與 SD 卡共用線路 |
💻 範例程式碼:讓背面指示燈閃爍
如果你想測試 ESP32-CAM 是否正常運作,請使用以下程式碼。請記住,要讓它亮,必須給 LOW!
// ESP32-CAM 指示燈測試 (GPIO 33)
const int ledPin = 33;
void setup() {
// 初始化接腳為輸出模式
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, LOW); // 點亮 LED (反向控制)
delay(500);
digitalWrite(ledPin, HIGH); // 熄滅 LED
delay(500);
}