ESP32, IOT物聯網

【ESP32教學】第十三篇:酷炫多彩 RGB LED 燈控制 PWM 調光與色彩混色實作

一、 實驗說明:讓 ESP32 混色輸出七彩燈光!

在先前的專題中,我們學會了如何控制單色 LED 的亮滅與 PWM 呼吸燈調光。但如果想做出更酷炫的氣氛燈、情境指示燈或智慧家居燈光,我們就需要使用 RGB LED 發光二極體

本實驗我們將帶大家使用 ESP32 搭配共陰極 RGB LED,透過 PWM 脈衝寬度調變技術獨立控制紅(R)、綠(G)、藍(B)三原色的發光強度,混色輸出千變萬化的七彩酷炫燈效!

 

 

二、 實驗材料準備清單

本篇實作 ESP32 RGB LED 混色專案所需的硬體元件如下:

  • ESP32 開發板

  • 麵包板 (Breadboard)

  • 共陰極 RGB LED

  • 杜邦跳線若干

  • USB 傳輸線 × 1

 

🛒 一次備齊創客工具!

歡迎直接購買米羅科技的  ESP32 物聯網應用學習套件,免去東奔西跑湊零件的煩惱。內含 RGB LED 模組、各類感測器及基礎電子元件,是學校課堂教學與個人專案開發的最佳首選!

 

三、 核心知識:RGB LED 腳位定義與 ESP32 接線對照

辨識 RGB LED 針腳極性與混色原理

RGB LED 內部封裝了紅(Red)、綠(Green)、藍(Blue)三個獨立的 LED 晶片。透過調整這三種顏色的亮度比例,就可以組合成自然界中的各種顏色(如紅+綠=黃、紅+藍=紫、紅+綠+藍=白)。

RGB LED 通常具有 4 支針腳:

  • 最長的針腳: 共陰極(Common Cathode),必須連接至 GND

  • 其餘 3 支針腳: 分別對應控制 Red (R)Green (G)Blue (B) 的陽極(正極)。

 

▼注意:假如使用下列程式碼發生編譯錯誤,則表示您目前安裝的ESP32函式庫較為新版,請務必將「#include <analogWrite.h>」這一行移除並重新編譯,則可編譯成功並正常運行。

四、實作實驗程式碼:

請將以下程式碼複製到 Arduino IDE 中並上傳至 ESP32 開發板:

1. 範例程式碼

#include <analogWrite.h> 
int redPin = 15;    // R 紅色LED控制腳 連接到ESP32的 GPIO15
int greenPin = 17;  // G 綠色LED控制腳 連接到ESP32的 GPIO17
int bluePin = 16;   // B 藍色LED控制腳 連接到ESP32的 GPIO16 
void setup()    
{   
        pinMode(redPin, OUTPUT);   //設置redPin對應的管腳GPIO15為輸出
        pinMode(greenPin, OUTPUT); //設置greenPin對應的管腳GPIO17為輸出
        pinMode(bluePin, OUTPUT);  //設置bluePin對應的管腳GPIO16為輸出
}    
      
void loop()  
{    
     
        // Basic colors:  
        color(255, 0, 0); // 红色亮
        delay(1000); //延時一秒 
        color(0,255, 0); //綠色亮
        delay(1000); //延時一秒
        color(0, 0, 255); //藍色亮  
        delay(1000); //延時一秒
  
        // Example blended colors:  
        color(255,255,0); // 黄色亮
        delay(1000); //延時一秒      
        color(128,0,255); // 紫色亮  
        delay(1000); //延時一秒
        color(255,255,255); // 白色亮  
        delay(1000); //延時一秒
        color(0,0,0); // 關閉led  
        delay(1000); //延時一秒  
        
}  

//顏色控制函數
void color (unsigned char red, unsigned char green, unsigned char blue)
{    
        analogWrite(redPin, red);   
        analogWrite(greenPin,green); 
        analogWrite(bluePin, blue); 
} 

 

2. 燒錄與操作測試

  1. 點擊 Arduino IDE 的 「上傳 (Upload)」 按鈕。

  2. 上傳完成後,觀測麵包板上的 RGB LED,將會每隔 1 秒依序切換 不同顏色!

 

五、 初學者常見卡關問題與排錯指南(Troubleshooting)

1. RGB LED 顏色顯示異常(例如程式寫紅色,出來卻是綠色)?

  • 腳位接錯: RGB LED 的 R、G、B 針腳非常接近,請重新對照接線表,確認 GPIO 是否連結正確。

 2. 通電後 LED 完全不亮?

  • 極性或元件類型買錯:

    1. 請確認最長針腳是否確實接至 ESP32 的 GND

    2. 若使用的是 共陽極(Common Anode) RGB LED,最長腳需接 5V,且程式碼中的亮滅數值需要反轉(255 為全滅,0 為全亮)。

 

七、 結語與下一篇教學

恭喜你!成功掌握了使用 ESP32 控制 RGB LED 並透過 PWM 進行混色調光的技巧。學會了色彩控制後,你可以結合前幾篇學到的「可變電阻」或「溫濕度感測器」,做出一款會隨溫度變色的智慧氣氛燈!下一篇教學,我們將帶大家解鎖更多實用的物聯網感測與控制專題!

相關文章