農林漁牧網

您現在的位置是:首頁 > 林業

和爺爺一起學Arduino:以隨機顏色點亮RGB全綵LED燈

2022-01-13由 林辰愛學習 發表于 林業

杜邦線怎麼使用

和爺爺一起學Arduino:以隨機顏色點亮RGB全綵LED燈

電路連線

第一個實驗只用了數字口,第二個同時使用了數字口輸入與輸出。這第三個是模擬輸出實驗。Arduino和大多數微控制器一樣,沒有模擬輸出。它是用脈寬調製(PWM)脈衝來模仿模擬輸出,用數字口來做。UNO、NANO等Arduino控制板只有D3、D5、D6、D9、D10、D11這六個數字口內部有PWM,也就是隻有這六個數字口可以做模擬輸出。

RGB全綵燈元件內有紅、綠、藍三個LED芯。分別接到元件的R、G、B三個引腳上。我們用紅、綠、藍三根兩頭都是母的杜邦線分別連線到Arduino板的D9、D10、D11引腳。RGB元件的GND連線到Arduino板的任何一個GND引腳上。

和爺爺一起學Arduino:以隨機顏色點亮RGB全綵LED燈

左為Mixly程式碼,右為Arduino程式碼

要是元件的發光顏色隨機,就要使R、G、B三路輸入電壓隨機變化。這就要在程式碼裡使用隨機數。要使用隨機數,必須先初始化隨機數。前面兩個實驗,程式碼裡都沒有setup()部分。這個就一定要有了。裡面就一條語句:

randomSeed(millis());

下面是程式主體loop()函式。PWM輸出的佔空比從0%到100%,相當於RGB元件接收到0~+5V電壓,燈芯從熄滅到最亮。在程式碼裡,相當於輸出值0~255。三條模擬輸出語句:

analogWrite(9,(random(0, 255)));

analogWrite(10,(random(0, 255)));

analogWrite(11,(random(0, 255)));

最後延時語句:

delay(1000);

引數是以毫秒為單位,因此,程式執行時,隔一秒隨機改變一種顏色。