跳到:
ESP32 教學 1/55 - SunFounder ESP32 IoT 學習套件軟件同 Arduino IDE 簡介 ESP32 教學 2/55 - 咩係 ESP32、相機擴展板、開箱 SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 3/55 - 電阻、LED、麵包板項目:Hello LED -ESP32 IoT 學習套件 ESP32 教學 4/55 - 數據類型 定義變量 Int、bool、char、序列監視器 - ESP32 IoT 套件 ESP32 教學 5/55 - LED 漸變,控制 LED 亮度 - ESP32 物聯網學習套件 ESP32 教學 6/55 - 使用 RGB LED 項目 2.3 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 7/55 - 使用陣列配合 ESP32 Arduino 程式設計 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 Tutorial 8/55 -Walking Light 74HC595 Shift register -SunFounder's ESP32 IoT Learning kit ESP32 教學 9/55 - 用按鈕切換 LED,按一下開,按一下關 - SunFounder ESP32 IoT 套件 ESP32 教學 10/55 - 使用七段顯示器 74HC595 嘅數字計數器 - ESP32 IoT 學習套件 ESP32 教學 11/55 - 使用 LCD1602 LCD2004 同 ESP32 - SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 12/55 - WS2812 RGB 燈帶 4 項目,配合 SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 13/55 - Arduino 用有源蜂鳴器發出嗶聲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 14/55 - 使用 SunFounder ESP32 IoT 學習套件播放自訂音樂音符 ESP32 教學 15/55 - 用 ESP32 L293D 控制直流馬達速度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 16/55 - 使用 ESP32 同 L293D 嘅迷你水泵 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 17/55 - 使用 ESP32 同電位器控制伺服馬達 - ESP32 IoT 學習套件 ESP32 教學 18/55 - 使用 ESP32 偵測傾斜 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 19/55 - 使用紅外線感測器偵測障礙物 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 20/55 - 循線模組 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 21/55 - 用 PIR 動作感應器偵測人體 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 22/55 - 用 LED Arduino 感受光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 23/55 - 使用 ESP32 讀取電位器電壓 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 24/55 - 量度土壤濕度用於灌溉 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 25/55 - 使用 NTC 同 LCD 測量溫度 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 26/55 - 使用搖桿配合 Arduino 採取行動 | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 27/55 - 用超聲波感測器量度距離 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 28/55 - DHT11 溫度感測器配合 LCD | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 29/55 - 用 ESP32 讀取紅外線遙控器按鍵| SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 30/55 - 使用 Adafruit IO 服務透過 MQTT 喺網頁上控制伺服摩打 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 31/55 - 專案 LED 燈帶配合避障功能 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教程 32/55 - 汽车倒车距离警告(带LCD同蜂鸣器)| SunFounder嘅物联网学习套件 ESP32 教學 33/55 - 使用 SunFounder 嘅 ESP32 IoT 學習套件整數碼骰仔 ESP32 教學 34/55 - 用 RGB LED 同旋鈕整顏色漸變 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 35/55 - 植物監測器,土壤、溫度同光線 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 36/55 - 猜數字遊戲 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 37/55 - 使用藍牙應用程式配合 ESP32 BLE | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 38/55 - 用手機控制 RGB LED | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 39/55 - 用 ESP32 做藍牙音樂播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 40/55 - 讀寫 Micro SD 卡 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 41/55 - 使用 Micro SD 卡嘅 MP3 播放器 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 42/55 - 用相機影相並儲存喺 Micro SD CAM-1 | SunFounder 嘅 ESP32 套件 ESP32 教程 43/55 - 物聯網互聯網天氣站 | SunFounder 嘅 ESP32 物聯網學習套件 ESP32 教學 44/55 - ESP32 相機網絡伺服器透過 WiFi 傳輸視頻串流 CAM-2 | SunFounder 嘅 ESP32 套件 ESP32 教學 45/55 - 自訂串流伺服器配合 LED 控制 CAM-3 l SunFounder 嘅 ESP32 學習套件 ESP32 教學 46/55 - 使用 HiveMQ MQTT 進行遠程溫度監控 | SunFounder 嘅 ESP32 套件 ESP32 教學 47/55 - 使用 MQTT 透過互聯網嘅 WS2812 CheerLights | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 48/55 - 遠程溫度監控同 LED 控制 MQTT | SunFounder 嘅 ESP32 IoT 套件 ESP32 教學 49/55 - 透過 Adafruit IoT 控制直流摩打 | SunFounder 嘅 ESP32 套件 ESP32 教學 50/55 - 喺世界任何地方控制 RGB LED | SunFounder 嘅 ESP32 套件 ESP32 Tutorial 51/55 - Temperature and Humidity over WiFi with DHT | SunFounder's ESP32 IoT Learning Kit ESP32 教學 52/55 - WS2812 CheerLights MQTT 全球同步連 LCD | SunFounder ESP32 IoT 套件 ESP32 教學 53/55 - 建立 LCD 網絡時鐘 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 54/55 - 透過 Wi-Fi 設定 WS2812 LED 燈條顏色 | SunFounder 嘅 ESP32 IoT 學習套件 ESP32 教學 55/55 - 點樣量度 12V、24V 或者 100V 直流電壓 | SunFounder 嘅 ESP32 IoT 學習套件
ESP32 教學 6/55 - 使用 RGB LED 項目 2.3 - SunFounder 嘅 ESP32 IoT 學習套件
喺呢個教學入面,我哋會學吓點樣用ESP32微控制器嚟控制一粒RGB LED。呢個項目會幫你明白點樣接駁RGB LED,同埋用PWM(脈衝寬度調製)訊號嚟控制佢嘅顏色。完成呢個教學之後,你就可以透過調整每個LED元件嘅強度嚟整出任何顏色組合。呢個係整視覺上吸引嘅項目嘅基本技能。
為咗更深入了解RGB LED同佢嘅混色能力,我哋會探討接線同埋用ESP32控制佢所需嘅代碼。如果你需要視覺輔助,記得睇吓條片(片入面03:20)嚟了解接線同代碼設定嘅更清楚解釋。
硬件解釋
呢個項目嘅主要組件包括ESP32模組、RGB LED同電阻。ESP32係一個功能強大嘅微控制器,內置Wi-Fi同藍牙,好適合物聯網應用。RGB LED由三個獨立嘅LED(紅、綠、藍)組成,裝喺同一個封裝入面,可以根據三種顏色嘅組合產生好多唔同顏色。
喺我哋嘅設定入面,RGB LED會用共陽極配置接線,即係陽極腳連接到正電壓,而每種顏色嘅陰極腳就獨立控制。咁樣,我哋就可以透過ESP32發送PWM訊號嚟調整每種顏色嘅亮度。
數據手冊細節
製造商 SunFounder
零件編號 RGB-LED-4PIN
共同類型 共陽極
正向電壓(每個LED) 2.0 V(紅)、3.2 V(綠)、3.2 V(藍)
最大電流(每個LED) 20 mA
工作溫度 -25至85 °C
封裝 4針通孔
每種顏色用一個220 Ω電阻嚟限制電流同防止損壞。
確保共同腳連接到適當嘅電壓(ESP32用3.3 V)。
接RGB LED時要檢查極性,避免反向損壞。
用PWM嚟控制亮度級別,建議頻率大約5000 Hz。
接成個設定之前,先單獨測試每種顏色。
接線指示
要將RGB LED接到ESP32,首先識別RGB LED上面嘅針腳。最長嘅針腳係共陽極,會連接到ESP32嘅3.3 V供電。另外三個針腳分別係紅、綠同藍。喺我哋嘅設定入面,將紅色針腳連接到GPIO 27,綠色針腳連接到GPIO 26,藍色針腳連接到GPIO 25。每個針腳都會接一個220 Ω電阻。
首先將RGB LED放喺麵包板上,確保共陽極針腳喺左邊。將紅色針腳插入麵包板,連接到電阻嘅一端,電阻嘅另一端去GPIO 27。對綠色同藍色針腳重複呢個步驟,將綠色針腳連接到GPIO 26,藍色針腳連接到GPIO 25。最後,將共同針腳連接到ESP32嘅3.3 V針腳嚟完成電路。記得將ESP32嘅地線都連接到麵包板。
ESP32_RGB_LED_wiring_lesson_06
代碼示例同講解
喺代碼入面,我哋首先用常數嚟定義RGB LED針腳。例如,const int redPin = 27;定義紅色LED嘅GPIO針腳。我哋仲設定PWM頻率同解析度,用const int freq = 5000;同const int resolution = 8;。咁樣就設定好控制每種LED顏色亮度所需嘅參數。
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
跟住,我哋喺setup()函數入面為每種顏色配置PWM通道。ledcAttach()函數將每個針腳連接到相應嘅PWM通道。呢個設定確保我哋可以獨立控制每種顏色嘅亮度。
void setup() {
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
喺loop()函數入面,我哋用setColor()函數嚟改變LED顏色。傳入呢個函數嘅值代表紅、綠、藍嘅強度。例如,呼叫setColor(255, 0, 0);會將LED設為紅色。每次改變顏色之後,我哋用delay(1000);等一秒先切換到下一個顏色。
void loop() {
setColor(255, 0, 0); // 紅色
delay(1000);
setColor(0, 255, 0); // 綠色
delay(1000);
}
示範/預期效果
完成接線並將代碼上傳到ESP32之後,你應該會見到RGB LED循環顯示各種顏色:紅、綠、藍、黃、紫同青。如果LED冇正確著燈,檢查吓接線,確保共陽極連接到3.3 V。另外,如果你見到意料之外嘅顏色,檢查吓連接到LED針腳嘅電阻。
正如條片入面示範嘅(片入面10:45),調整setColor()函數入面嘅值可以整出唔同顏色。試吓唔同組合,睇吓RGB LED點樣反應。
影片時間戳
00:00 - RGB LED 簡介
03:20 - 接線講解
10:45 - 程式碼逐步解說
12:30 - 混色示範
圖片
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_RGB_LED_wiring_lesson_06
代碼
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32
語言: C++
檢視程式碼
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;
// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;
void setup() {
// Set up PWM pins
ledcAttach(redPin, freq, resolution);
ledcAttach(greenPin, freq, resolution);
ledcAttach(bluePin, freq, resolution);
}
void loop() {
setColor(255, 0, 0); // Red
delay(1000);
setColor(0, 255, 0); // Green
delay(1000);
setColor(0, 0, 255); // Blue
delay(1000);
setColor(255, 255, 0); // Yellow
delay(1000);
setColor(80, 0, 80); // Purple
delay(1000);
setColor(0, 255, 255); // Cyan
delay(1000);
}
void setColor(int red, int green, int blue) {
ledcWrite(redPin, red);
ledcWrite(greenPin, green);
ledcWrite(bluePin, blue);
}