在本指南中,您將學習如何使用Arduino控制RGBLED。RGB(紅-綠-藍)LED可以通過混合不同強度的紅、綠、藍光來產生多種顏色。您將學習創建一個基本Arduino RGB LED電路,并以一些基本顏色為例循環。
使用提供的原理圖和試驗板圖像,以及下面的示例代碼,您應該擁有輕松設置和控制RGBLED顏色輸出所需的一切。
所需零件
ArduinoUno的
面包板(和一些面包板電線)
3x電阻(220Ω)
RGB發光二極管
RGBLED有兩種類型:共陽極和共陰極。我們將在下面提供兩種類型的示例原理圖和代碼。
如何將RGBLED連接到Arduino
這是電路原理圖。該圖使用三個電阻器和一個共陽極RGBLED(您將在下面找到共陰極的原理圖)。
如果您使用的是共陽極LED,則需要將共陽極引腳連接到5V,如下所示:
在試驗板上連接電路的步驟
如果您使用的是共陰極RGBLED,請將陰極連接到Arduino上的GND引腳。如果您的RGBLED是公共陽極,請將陽極連接到Arduino上的5V引腳。
將LED的紅色、綠色和藍色支腿分別連接到Arduino的引腳11、10和9,每個引腳都通過一個220歐姆電阻器。
確保您的Arduino通過USB電纜連接到計算機。
使用下面的面包板圖像之一作為設置連接的視覺指南:
連接到Arduino的共陰極RGBLED
連接到Arduino的共陽極RGBLED
上傳ArduinoRGBLED代碼
使用ArduinoIDE將下面的代碼上傳到您的Arduino,您應該會看到LED循環使用不同的顏色,每種顏色停止一秒鐘。
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);
}
如果您使用的是共陽極RGBLED,則與共陰極RGBLED相比,邏輯是相反的。在共陰極RGBLED中,您為特定引腳提供電源(HIGH)以打開顏色。對于共陽極RGBLED,將特定引腳接地(LOW)以打開顏色。
因此,對于普通陽極RGBLED,要設置顏色,您需要在應用之前從最大值(即255)中減去每個顏色值。此反轉可確保特定顏色的值為255(全強度)會導致該顏色被關閉,而值為0(無強度)會導致該顏色完全打開。
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, 255 - redValue);
analogWrite(greenPin, 255 - greenValue);
analogWrite(bluePin, 255 - blueValue);
}
代碼的工作原理
此代碼首先通過變量redPin、greenPin和bluePin設置RGBLED引腳。如果您使用的引腳與示例電路中的引腳不同,請更改這些引腳。
然后,代碼以紅色、綠色、藍色、黃色、青色、品紅色、橙色、紫色和白色點亮RGBLED,并在每種顏色上暫停一秒鐘。
結論
通過更改函數中的值來嘗試不同的顏色組合!請記住,RGBLED結合了紅光、綠光和藍光來產生多種顏色。您現在可以使用Arduino和RGBLED創建彩色顯示器!
審核編輯:陳陳
-
led
+關注
關注
242文章
23286瀏覽量
661063 -
RGB
+關注
關注
4文章
798瀏覽量
58529 -
Arduino
+關注
關注
188文章
6470瀏覽量
187163
發布評論請先 登錄
相關推薦
評論