三色 RGB LED 是由紅、綠、藍三種不同顏色的 LED 所組成,通過調整這三種顏色的亮度,可以創造出各種不同的顏色。
三色 RBG LED 有四個接腳,三隻接腳分別為 RGB 的腳位及一個共同腳,共同腳有共陰極和共陽極兩種。共陰極的 LED,則共同腳要接 GND,共陽極的 LED,則共同腳要接 VCC,才能使其發光。
本範例使用共陽極的 LED(每一種顏色光的亮度最大值為 0,最小值為 255 ),共陰極 LED 則相反(每一種顏色光的亮度最大值為 255,最小值為 0 )。
● 四根接腳中最長的 VCC 連接至 3.3V 的位置(避免電壓過高,或接上電阻)
● 紅色接腳連接至 NodeMCU D6(GPIO 12)腳位
● 綠色接腳連接至 NodeMCU D7(GPIO 13)腳位
● 藍色接腳連接至 NodeMCU D8(GPIO 15)腳位
#define LED_RED D6 // 紅色 LED 接脚(D6 or 12)
#define LED_GREEN D7 // 綠色 LED 接腳(D7 or 13)
#define LED_BLUE D8 // 藍色 LED 接腳(D8 or 15)
void setup()
{
pinMode(LED_RED , OUTPUT); // 設置 LED_RED 接腳為輸出模式
pinMode(LED_GREEN, OUTPUT); // 設置 LED_GREEN 接腳為輸出模式
pinMode(LED_BLUE, OUTPUT); // 設置 LED_BLUE 接腳為輸出模式
}
void loop()
{
int i;
setColor(0, 255, 255); // 红色燈
delay(1000); // 延時一秒
setColor(255, 0, 255); // 綠色燈
delay(1000); // 延時一秒
setColor(255, 255, 0); // 藍色燈
delay(1000); // 延時一秒*/
setColor(0, 0, 255); // 黄色燈(紅色混綠色)
delay(1000); // 延時一秒
setColor(0, 255, 0); // 紫色燈(紅色混藍色)
delay(1000); // 延時一秒
setColor(255, 0, 0); // 青色燈(綠色混藍色)
delay(1000); // 延時一秒
setColor(0, 0, 0); // 白色燈
delay(1000); // 延時一秒
// 由紅色漸近到黃色
for (i = 255; i >= 0; i--)
{
setColor(0, i, 255);
delay(10);
}
// 由黃色漸近到紅色
for (i = 0; i <= 255; i++)
{
setColor(0, i, 255);
delay(10);
}
setColor(255, 255, 255); // 關閉 LED
delay(1000); // 延時一秒
}
void setColor(int red, int green, int blue)
{
analogWrite(LED_RED, red); // 設置紅色的亮度
analogWrite(LED_GREEN, green); // 設置綠色的亮度
analogWrite(LED_BLUE, blue); // 設置藍色的亮度
}