使用RGB LED顯示顏色色調
要了解RGB LED以及它與單色LED的區別,重要的是要使用ESP32或Arduino等微控制器和RGB LED製作一個電路。然後,重要的是要使用程式來管理該電路。有一些模擬器可以讓物聯網初學者學習這些概念,而無需使用物聯網裝置。
但是,要獲得真實的結果,使用電路元件並製作實際電路非常重要。在本文中,透過兩個不同的示例,說明了使用RGB LED的方法。在示例1中,使用麵包板、ESP32、RGB LED、電阻和導線製作實際電路,並使用Arduino IDE編寫的C程式控制這些元件。在示例2中,使用Wokwi模擬器、Arduino微控制器和一個帶有紅色、綠色和藍色單色LED的RGB LED。
RGB LED是一種可以顯示RGB顏色混合併產生色調的LED。它有4個引腳,最長的一個(第2個)是負極。第一個引腳用於紅色,第三個引腳用於綠色,第四個引腳用於藍色。
示例1:使用ESP32和RGB LED
首先,使用麵包板、ESP32、一個RGB LED、3個電阻和一些公對公跳線製作電路。然後需要Arduino IDE來編寫C程式,編譯它,然後將其推送到ESP32進行執行。
圖:RGB LED
所以,首先,按照圖1所示製作電路。然後使用Arduino IDE編寫C程式。
電路設計步驟和編碼
步驟1 - 將ESP32微控制器連線到麵包板。
步驟2 - 將麵包板的負軌連線到ESP32的GND。
步驟3 - 使用一個RGB LED。將RGB LED的最長引腳直接連線到麵包板的負軌,並將其他引腳連線到電阻。現在將電阻引腳連線到ESP32引腳(D21、D19、D18)。
步驟4 - 如果電腦上沒有安裝Arduino IDE,則下載並安裝它。
步驟5 - 啟動Arduino IDE。編寫C程式,並使用勾號進行編譯。
步驟6 - 透過按下勾號旁邊的右箭頭將程式上傳到ESP32。檢查電路上的結果。
程式碼
#define LED_RED 18
#define LED_GREEN 19
#define LED_BLUE 21
#define RED_channel 0
#define GREEN_channel 1
#define BLUE_channel 2
#define PulseWM_Frequency 5000 // PulseWM frequency
#define PulseWM_resolution 8 // 8 bit resolution
void setup() {
ledcAttachPin(LED_RED, RED_channel);
ledcAttachPin(LED_GREEN, GREEN_channel);
ledcAttachPin(LED_BLUE, BLUE_channel);
ledcSetup(RED_channel, PulseWM_Frequency, PulseWM_resolution);
ledcSetup(GREEN_channel, PulseWM_Frequency, PulseWM_resolution);
ledcSetup(BLUE_channel, PulseWM_Frequency, PulseWM_resolution);
}
void loop() {
RGB_Color(255, 5, 5); //Showing the shade of RED color
delay(500);
RGB_Color(20, 255, 4); //Showing the shade of green color
delay(500);
RGB_Color(10, 0, 255); //Showing the shade of blue color
delay(500);
RGB_Color(255, 255, 10); //Showing the shade of yellow color
delay(500);
RGB_Color(19, 255, 255); //Showing the shade of cyan color
delay(500);
RGB_Color(255, 50, 255); //Showing the shade of magenta color
delay(500);
RGB_Color(255, 20, 147); //Showing the shade of deep pink color
delay(500);
RGB_Color(255, 40, 40); //Showing the shade of deep pink color
}
void RGB_Color(int i, int j, int k){
ledcWrite(RED_channel, i);
ledcWrite(GREEN_channel, j);
ledcWrite(BLUE_channel, k);
}
檢視結果 - 示例1
圖1:程式所需的實際電路以及在RGB LED上顯示不同顏色和色調的結果
示例2:在Wokwi上使用Arduino Uno和RGB LED
Wokwi是一個線上平臺,可以在其中製作虛擬電路,編寫控制這些電路的程式,然後測試結果。這是一個易於使用且免費的服務,可以開始學習物聯網。Wokwi連結如下:
Wokwi連結:https://wokwi.com/
登入Wokwi後,使用Arduino Uno專案。
首先,在右側區域製作電路,並在左側程式碼區域使用C語言編寫程式碼,如圖2所示。
電路設計步驟和編碼
步驟1 - 登入Wokwi。在Wokwi模擬器上啟動一個新的Arduino Uno專案。
步驟2 - 使用“+”號在虛擬電路區域放置一個RGB LED。
步驟3 - 將RGB LED的最長引腳連線到Uno的GND。
步驟4 - 使用三個紅色、綠色和藍色的LED。將LED的短引腳連線到Uno的GND,並將另一端連線到Uno引腳(3、5、6)。
步驟5 - 假設LED的第二個引腳最長(負極),將RGB的第一個引腳連線到紅色LED的正極,第三個引腳連線到綠色LED的正極,第四個引腳連線到藍色LED的正極,如圖2所示。
步驟6 - 使用左側的Wokwi程式碼區域編寫C程式。
步驟7 - 使用Wokwi上的播放按鈕編譯程式。檢查結果。
程式碼
//Showing the shades of RGB and R, G, B LED demo
const int pinRedCol = 3;
const int pinGreenCol = 5;
const int pinBlueCol = 6;
void setup() {
pinMode(pinRedCol, OUTPUT);
pinMode(pinGreenCol, OUTPUT);
pinMode(pinBlueCol, OUTPUT);
}
void loop() {
RGB_Color(255, 5, 5); //Showing the shade of RED color
delay(500);
RGB_Color(20, 255, 4); //Showing the shade of green color
delay(500);
RGB_Color(10, 0, 255); //Showing the shade of blue color
delay(500);
RGB_Color(255, 255, 10); //Showing the shade of yellow color
delay(500);
RGB_Color(19, 255, 255); //Showing the shade of cyan color
delay(500);
RGB_Color(255, 50, 255); //Showing the shade of magenta color
delay(500);
RGB_Color(255, 20, 147); //Showing the shade of deep pink color
delay(500);
RGB_Color(255, 40, 40); //Showing the shade of deep pink color
}
void RGB_Color(int i, int j, int k){
analogWrite(pinRedCol, i);
analogWrite(pinGreenCol, j);
analogWrite(pinBlueCol, k);
}
檢視結果
程式編譯後,按下Wokwi上的播放按鈕即可立即看到結果。
圖2:Wokwi上的電路圖以及在RGB LED和單色LED上顯示顏色和色調的結果。
本文介紹了使用RGB LED的方法。第一個示例顯示了使用ESP32微控制器和RGB LED的實際電路。另一個示例演示了在Wokwi上使用Arduino Uno和RGB LED時顏色混合。
資料結構
網路
關係資料庫管理系統(RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP