ESP32-CAM 內建 LED 怎麼控制?GPIO 4 與 GPIO 33 接腳全解析

解析 ESP32-CAM 內建 LED 的接腳特性:正面閃光燈為 GPIO 4,與 SD 卡共用接腳;背面指示燈為 GPIO 33,採低電位觸發(Active Low)。

ESP32-CAM 內建 LED 怎麼控制?GPIO 4 與 GPIO 33 接腳全解析

在使用 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 卡傳輸,又強行控制閃光燈,可能會造成資料寫入失敗或系統當機。

led1.png

2. 狀態指示燈 (紅色小燈)

這顆 LED 通常位於板子背面(靠近天線或下載晶片處),用於顯示系統運作狀態。

  • 連接接腳: GPIO 33
  • 特性: 它是 「反向控制 (Active Low)」
    • LOW (0) → 燈亮 💡
    • HIGH (1) → 燈熄 🌑

led2.png


🆚 與一般 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);
}