在本指南中,您將學(xué)習(xí)如何使用Arduino控制RGBLED。RGB(紅-綠-藍(lán))LED可以通過(guò)混合不同強(qiáng)度的紅、綠、藍(lán)光來(lái)產(chǎn)生多種顏色。您將學(xué)習(xí)創(chuàng)建一個(gè)基本Arduino RGB LED電路,并以一些基本顏色為例循環(huán)。
使用提供的原理圖和試驗(yàn)板圖像,以及下面的示例代碼,您應(yīng)該擁有輕松設(shè)置和控制RGBLED顏色輸出所需的一切。
所需零件
ArduinoUno的
面包板(和一些面包板電線)
3x電阻(220Ω)
RGB發(fā)光二極管
RGBLED有兩種類型:共陽(yáng)極和共陰極。我們將在下面提供兩種類型的示例原理圖和代碼。
如何將RGBLED連接到Arduino
這是電路原理圖。該圖使用三個(gè)電阻器和一個(gè)共陽(yáng)極RGBLED(您將在下面找到共陰極的原理圖)。
如果您使用的是共陽(yáng)極LED,則需要將共陽(yáng)極引腳連接到5V,如下所示:
在試驗(yàn)板上連接電路的步驟
如果您使用的是共陰極RGBLED,請(qǐng)將陰極連接到Arduino上的GND引腳。如果您的RGBLED是公共陽(yáng)極,請(qǐng)將陽(yáng)極連接到Arduino上的5V引腳。
將LED的紅色、綠色和藍(lán)色支腿分別連接到Arduino的引腳11、10和9,每個(gè)引腳都通過(guò)一個(gè)220歐姆電阻器。
確保您的Arduino通過(guò)USB電纜連接到計(jì)算機(jī)。
使用下面的面包板圖像之一作為設(shè)置連接的視覺(jué)指南:
連接到Arduino的共陰極RGBLED
連接到Arduino的共陽(yáng)極RGBLED
上傳ArduinoRGBLED代碼
使用ArduinoIDE將下面的代碼上傳到您的Arduino,您應(yīng)該會(huì)看到LED循環(huán)使用不同的顏色,每種顏色停止一秒鐘。
RGBLED(共陰極)的完整Arduino代碼:
int redPin= 11;
int greenPin = 10;
int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0); // Red Color
delay(1000);
setColor(0, 255, 0); // Green Color
delay(1000);
setColor(0, 0, 255); // Blue Color
delay(1000);
setColor(255, 255, 0); // Yellow Color
delay(1000);
setColor(0, 255, 255); // Cyan Color
delay(1000);
setColor(255, 0, 255); // Magenta Color
delay(1000);
setColor(255, 165, 0); // Orange Color
delay(1000);
setColor(128, 0, 128); // Purple Color
delay(1000);
setColor(255, 255, 255); // White Color
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, redValue);
analogWrite(greenPin, greenValue);
analogWrite(bluePin, blueValue);
}
如果您使用的是共陽(yáng)極RGBLED,則與共陰極RGBLED相比,邏輯是相反的。在共陰極RGBLED中,您為特定引腳提供電源(HIGH)以打開顏色。對(duì)于共陽(yáng)極RGBLED,將特定引腳接地(LOW)以打開顏色。
因此,對(duì)于普通陽(yáng)極RGBLED,要設(shè)置顏色,您需要在應(yīng)用之前從最大值(即255)中減去每個(gè)顏色值。此反轉(zhuǎn)可確保特定顏色的值為255(全強(qiáng)度)會(huì)導(dǎo)致該顏色被關(guān)閉,而值為0(無(wú)強(qiáng)度)會(huì)導(dǎo)致該顏色完全打開。
RGBLED(共陽(yáng)極)的完整Arduino代碼:
int redPin= 11;
int greenPin = 10;
int bluePin = 9;
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
setColor(255, 0, 0); // Red Color
delay(1000);
setColor(0, 255, 0); // Green Color
delay(1000);
setColor(0, 0, 255); // Blue Color
delay(1000);
setColor(255, 255, 0); // Yellow Color
delay(1000);
setColor(0, 255, 255); // Cyan Color
delay(1000);
setColor(255, 0, 255); // Magenta Color
delay(1000);
setColor(255, 165, 0); // Orange Color
delay(1000);
setColor(128, 0, 128); // Purple Color
delay(1000);
setColor(255, 255, 255); // White Color
delay(1000);
}
void setColor(int redValue, int greenValue, int blueValue) {
analogWrite(redPin, 255 - redValue);
analogWrite(greenPin, 255 - greenValue);
analogWrite(bluePin, 255 - blueValue);
}
代碼的工作原理
此代碼首先通過(guò)變量redPin、greenPin和bluePin設(shè)置RGBLED引腳。如果您使用的引腳與示例電路中的引腳不同,請(qǐng)更改這些引腳。
然后,代碼以紅色、綠色、藍(lán)色、黃色、青色、品紅色、橙色、紫色和白色點(diǎn)亮RGBLED,并在每種顏色上暫停一秒鐘。
結(jié)論
通過(guò)更改函數(shù)中的值來(lái)嘗試不同的顏色組合!請(qǐng)記住,RGBLED結(jié)合了紅光、綠光和藍(lán)光來(lái)產(chǎn)生多種顏色。您現(xiàn)在可以使用Arduino和RGBLED創(chuàng)建彩色顯示器!
審核編輯:陳陳
-
led
+關(guān)注
關(guān)注
242文章
23347瀏覽量
662927 -
RGB
+關(guān)注
關(guān)注
4文章
801瀏覽量
58692 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
187748
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論