您現在的位置是:首頁 > 網頁遊戲首頁網頁遊戲

Arduino實戰:用PWM波讓RGB三色LED發出炫彩光芒

  • 由 小煜的創客世界 發表于 網頁遊戲
  • 2021-12-29
簡介}void setColor(int redValue, int greenValue, int blueValue) {analogWrite(redPin, redValue)

led三色變光是什麼意思

什麼是RGB-LED光源

RGB LED可以透過混合三種基本顏色(紅色R、綠色G和藍色B)發出不同的顏色。因此,它實際上由3個單獨的LED組成,紅色、綠色和藍色封裝在一個外殼中。這就是為什麼它有4根引線,3種顏色各有一根引線。RGB LED燈珠有公共陰極或公共陽極兩種型別。這裡我們採用的上公陰的LED。

Arduino實戰:用PWM波讓RGB三色LED發出炫彩光芒

模組介紹

Arduino 控制器 × 1

220 Ω 電阻

× 3

麵包板 × 1

電源 × 1

杜邦線 × n

Arduino和RGB LED電路示意圖

我們將RGB LED的共陰極將接地,3個陽極將透過220歐姆電阻連線到Arduino板上可提供PWM訊號的3個數字引腳。我們將使用PWM來模擬輸出,為LED提供不同的電壓,以便獲得所需的顏色。

Arduino實戰:用PWM波讓RGB三色LED發出炫彩光芒

Arduino實戰:用PWM波讓RGB三色LED發出炫彩光芒

Arduino程式碼

我們將LED的RGB三個引腳連線到Arduino7、6和5號引腳上,並將它們命名為redPin、greenPin和bluePin。並將三個引腳定義為輸出。setColor()函式用於接收3個不同的引數redValue、greenValue和blueValue。這些引數表示LED的亮度或使用analogWrite()函式建立的PWM訊號的佔空比。這些值可以在0到255之間變化,表示PWM訊號的100%佔空比或最大LED亮度。

int redPin= 7;int greenPin = 6;int bluePin = 5;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) { analogWrite(redPin, redValue); analogWrite(greenPin, greenValue); analogWrite(bluePin, blueValue);}

在loop()函式中,我們將製作程式,每秒改變LED的顏色。為了在LED上顯示紅燈,我們將呼叫setColor()函式,並將redValue引數的值設定為255,另外兩個引數的值設定為0。同理,我們可以分別得到另外兩種基本顏色,綠色和藍色。為了獲得其他顏色,我們需要混合引數值。例如,如果將所有3個LED設定為最大亮度,我們將得到白色,如果我們想要紫色,可以嘗試以下引數:170 redValue、0 greenValue和255 blueValue。

Top