RGB LED

什麼是RGB LED?

LED 是小而強大的燈,可用於許多不同的應用。RGB LED 是 3 個不同顏色的 LED 的組合:

不同的顏色如何顯示?

RGB LED 可以通過混合紅、綠、藍 3 種基本顏色並改變強度來輸出不同的顏色。所以它實際上由 3 個獨立的 LED 組成,紅色、綠色和藍色,安裝在一個外殼中。

因此有 4 條線,根據 RGB-LED 類型,3 種顏色中的每一種都有一條線和一個公共陰極或陽極。

混合顏色

要創建其他顏色,您可以組合不同強度的三種顏色。您可以使用 PWM 信號來調整每個 LED 的強度。

由於 LED 彼此非常接近,我們的眼睛看到的是顏色組合的結果,而不是單獨的三種顏色。

要了解如何組合顏色,請參見圖。這是最簡單的顏色混合圖。但是,它給出了它如何工作以及如何產生不同顏色的想法。

具有共陽極和共陰極的 RGB LED

RGB LED 有兩種類型:共陽極 LED 和共陰極 LED。左圖顯示了一個共陽極和一個共陰極 LED。

  • 使用共陰極 RGB LED,所有三個 LED 都具有負連接(陰極)。

  • 使用通用的 RGB LED 陽極,三個 LED 具有正極連接(陽極)。

這導致 LED 具有 4 個引腳,每個 LED 一個引腳和一個公共陰極或陽極。

本教程使用陰極。

RGB-LED-引腳

RGB LED 有四個連接(4 個引腳)一個用於每個 LED,一個用於公共陽極或陰極。您可以通過其長度來識別每個導體,如左圖所示。

LED 面向您,陽極或陰極(最長的引線)在左數第二個,引線應按以下順序排列:紅色、陽極或陰極、綠色和藍色。

陰極接地,3 個陽極通過 220 歐姆電阻連接到 Arduino 板上的 3 個數字引腳,可提供 PWM 信號。

使用 PWM 來模擬模擬輸出,該輸出將為 LED 提供不同的電壓電平,因此我們可以獲得我們想要的顏色。

Arduino LED Code:(此程式必須使用NANO板,或是UNO板)

int redPin= 9; int greenPin = 10;int bluePin = 11;
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, 255); // White Color delay(1000); setColor(170, 0, 255); // Purple Color delay(1000);}
void setColor(int redValue, int greenValue, int blueValue) { dacWrite(redPin, redValue); dacWrite(greenPin, greenValue); dacWrite(bluePin, blueValue);}

源代碼

在 Arduino 草圖中,使用了引腳 7、6 和 5,分別稱為 redPin、greenPin 和 bluePin。這些必須在設置區域中定義為輸出。

在 Sketch 中有函數 setColor(),它接受三個不同的參數:redValue、greenValue 和 blueValue。

這些參數代表 LED 的亮度或由 analogWrite () 函數生成的 PWM 信號的佔空比。

這些值可以在 0 到 255 之間。這對應於 100% PWM 信號或最大 LED 亮度的佔空比。

必須在循環功能中進行調整,以便 LED 的顏色每秒都在變化。

為了使 LED 亮起紅燈,我們調用函數 setColor() 並將參數 redValue 的值設置為 255,將其他兩個設置為 0。相應地,我們可以得到另外兩種原色,綠色和藍色。要獲得其他顏色,我們需要將參數值混合在一起。

例如,如果將所有 3 個 LED 都設置為最大亮度,則如果為參數設置以下值,則會得到白色和紫色:170 redValue、0 greenValue 和 255 blueValue。