ESP32 + RGB LED 應用範例:打造七彩燈光秀

想讓你的房間、櫃子或展示區充滿科技感?利用 ESP32 搭配 RGB LED,你就能輕鬆打造出一場屬於自己的七彩燈光秀!
本篇教學將一步步教你如何接線、撰寫程式、控制顏色變化,甚至用 Wi-Fi 遙控燈光,實現專業級燈效。

什麼是 RGB LED?

RGB LED 是由 紅 (Red)、綠 (Green)、藍 (Blue) 三個 LED 組合而成的燈珠。
透過改變各色亮度,就能混合出千變萬化的顏色。

共陽與共陰

  • 共陽(共正極):三色共用正極,分別接地控制亮度。
  • 共陰(共負極):三色共用負極,分別接電源控制亮度。

小提醒:在 Arduino/ESP32 專案中,通常使用共陰型較為直覺。

ESP32 的優勢

ESP32 是一款功能強大的微控制器,擁有:

  • 雙核心處理器
  • 內建 Wi-Fi / 藍牙
  • 多達 16 組可調 PWM(LEDC)通道
    這些特性讓 ESP32 成為控制 RGB LED 的完美選擇。

準備材料

ESP32 開發板 x 1 
RGB LED x 1  (共陰型推薦)
杜邦線  x 若干  (公對公、公對母各數條)
麵包板 x 1 

優良店家推薦:

硬體接線教學

RGB LED 腳位說明

以共陰型 RGB LED 為例:

  • 腳1:紅色
  • 腳2:綠色
  • 腳3:藍色
  • 腳4:共陰(GND)

接線圖

我買的模組RGB LED,省去接電阻的麻煩。如你買的是單顆RGB LED,請參考,這接線圖

紅色接17號腳 + 220Ω電阻

綠色接16號腳 + 220Ω電阻

藍色接4號腳 + 220Ω電阻

RGB Led接線圖

PWM 控制原理

ESP32 透過 LEDC 模組 提供高精度 PWM 控制,可設定:

  • 頻率(Hz)
  • 解析度(bit)
  • 通道(channel)

PWM 的概念就像「開關閃爍的速度」:
開得越久,燈越亮;關得越久,燈越暗。

範例一:基本顏色切換

				
					const int Red = 17;
const int Green = 16;
const int Blue = 4;


void setup() {
  pinMode(Red, OUTPUT);
  pinMode(Green, OUTPUT);
  pinMode(Blue, OUTPUT);
}

void loop() {
  analogWrite(Red,255);
  analogWrite(Green,0);
  analogWrite(Blue,0);
  delay(1000);
  analogWrite(Red,0);
  analogWrite(Green,255);
  analogWrite(Blue,0);
  delay(1000);
  analogWrite(Red,0);
  analogWrite(Green,0);
  analogWrite(Blue,255);
  delay(1000);
}
				
			

範例二:自動變色燈光秀

				
					const int Red = 17;
const int Green = 16;
const int Blue = 4;

int changeTime = 10;


void setup() {
  pinMode(Red, OUTPUT);
  pinMode(Green, OUTPUT);
  pinMode(Blue, OUTPUT);
}

void loop() {
  int r, g, b;
 
  // 由藍到紫
  for (r = 0; r < 256; r++) { 
    analogWrite(Red, r);
    delay(changeTime);
  } 
  // 由紫到紅
  for (b = 255; b > 0; b--) { 
    analogWrite(Blue, b);
    delay(changeTime);
  } 
  // 由紅到黃
  for (g = 0; g < 256; g++) { 
    analogWrite(Green, g);
    delay(changeTime);
  } 
  // 由黃到綠
  for (r = 255; r > 0; r--) { 
    analogWrite(Red, r);
    delay(changeTime);
  } 
  // 由綠到藍綠色
  for (b = 0; b < 256; b++) { 
    analogWrite(Blue, b);
    delay(changeTime);
  } 
  // 由藍綠色到藍色
  for (g = 255; g > 0; g--) { 
    analogWrite(Green, g);
    delay(changeTime);
  } 
}
				
			

此段程式透過變化 PWM 值,創造出平滑的顏色漸層,就像夜店的舞台燈一樣流暢。

for迴圈教學,請參考之前文章:【Arduino入門】LED跑馬燈設計教程

實際測試照片&影片

RGB測試照片

進階應用

  • 聲控燈效:搭配麥克風模組,隨節拍變色。
  • 節日裝飾:萬聖節、聖誕節打造主題燈。
  • 智慧家居:整合 Home Assistant 或 MQTT 控制。

實作心得

這個專案不僅能學到 PWM,還能實際看到燈光變化的樂趣。
當你第一次讓 RGB LED 隨程式變色時,那份成就感真的會讓人上癮!

結論

利用 ESP32 + RGB LED,你可以輕鬆製作出酷炫的七彩燈光秀。
無論是展示作品、派對裝飾、還是智慧家居,都能用簡單的硬體與程式實現專業效果。
快動手試試,點亮你的創意生活吧!

常見問答(FAQ)

Q1:可以用 Arduino UNO 控制嗎?
可以,但 PWM 通道與 Wi-Fi 功能有限,建議用 ESP32。

Q2:可以用手機控制嗎?
可以,只要手機與 ESP32 在同一 Wi-Fi 網路下即可。

Q3:能否多組 RGB 同時控制?
可以,ESP32 支援多達 16 個 PWM 通道。

Q4:PWM 頻率該設多少?
一般建議 5000Hz,避免閃爍且亮度穩定。

參考資料

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端