Arduino 點亮RGB彩色流水燈

2021-08-28 04:44:04 字數 1668 閱讀 1570

實驗的效果是 6個rgb彩色流水燈依次點亮,顏色變化依次為:紅色-綠色-藍色-白色-黃色-青色,如下圖。

arduino uno r3 開發板:1

杜邦線:10

rgb彩色流水燈模組:1

在 樹莓派gpio控制rgb彩色led燈 中,介紹了rgb彩色流水燈的原理以及點亮乙個led燈的方法。本篇文章,我們用**實現依次點亮led燈,在點亮的同時,改變rgb的輸出值,就可以改變rgb燈顯示的顏色,從而實現彩色的流水燈。

硬體使用了乙個rgb彩色流水燈模組,模組上整合了8個共陽rgb彩色led燈,使用時只需要將模組上的引腳接到arduino uno r3開發板上即可,不用自己連線電阻,方便了使用。要注意的是,由於我杜邦線不夠,所以就只是用了模組上的6個rgb燈。如果你要控制8個rgb燈,你應該修改我使用的**。

arduino控制rgb彩色燈就需要使用pwm輸出,本文使用analogwrite函式來產生pwm。脈寬調變(pwm)是一種用數字手段獲得模擬結果的技術。數字控制用於產生方波,訊號在只能在開與關之間切換。這種開關模式通過改變高電平持續時間與低電平持續時間比值,可以模擬在開(5伏)和關閉(0伏)之間的任一模擬電壓。高電平持續時間稱為為脈衝寬度。為了獲得不同的模擬值,可以改變或調整脈衝寬度。

analogwrite(pin, val)命令:其中pin是引腳的編號,在uno r3上只能使用3,5,6,9,10,11這幾個引腳;val是0~255的整數值,對應電壓從0到+5v,不同的值對應不同的占空比,通過控制占空比從而模擬出不同的模擬電壓值,實現pwm控制。不同的值對應的占空比如下:

產生pwm的示例**:

int pin = 11; //可以選擇3,5,6,9,10,11

void setup()

void loop()

這種方式產生的方波週期大概是2ms左右(490hz),占空比位50%,產生方波不需要占用額外的cpu命令時間。

rgb彩色流水燈模組的引腳與uno的連線對應關係如下:

rgb led ———— arduino uno r3

r ————9

g ———— 11

b ————10

vcc —— 5v

d0————2

d1————3

d2 ———— 4

d3 ———— 5

d4 ———— 6

d5 ———— 7

點亮6個rgb彩色流水燈的**如下,顏色變化順序為:紅色-綠色-藍色-白色-黃色-青色

/*

* ide版本號:1.8.2

* 作用:共陽rgb流水燈迴圈點亮

*///定義rgb燈顏色控制引腳

int r=9;

int g=11;

int b=10;

int t=1000; //延時時間控制

void setup()

pinmode(r,output);

pinmode(g,output);

pinmode(b,output);

}void loop() //從右到左熄滅rgb流水燈 for(int i=7;i>2;i--) }

//顏色控制函式

void setcolor(int r,int g,int b)

//選擇要顯示的顏色

void color(int c)

}

使用Arduino開發板點亮RGB全彩LED燈

使用arduino開發板點亮rgb全彩led燈 所需的元件 1.乙個rgb led燈 2.3個220歐電阻 3.arduino麵包板 4.麵包板和跳線 源 int redpin 7 int greenpin 6 int bluepin 5 void setup 所以現在在loop函式中我們將製作程式...

使用Arduino開發板點亮RGB全彩LED燈

使用arduino開發板點亮rgb全彩led燈 什麼是rgb led燈?rgb led燈是以紅綠藍三色混光而成。rgb是從顏色發光的原理來設計定的,通俗點說它的顏色混合方式就好像有紅 綠 藍三盞燈,當它們的光相互疊合的時候,色彩相混,而亮度卻等於兩者亮度之總和,越混合亮度越高,即加法混合。紅 綠 藍...

灰度於RGB彩色

影象灰度值的概念是什麼?灰度也可以認為是亮度,簡單說就是色彩的深淺程度。實際上在我們的日常生活中,通過三原色色彩深淺的組合,可以組成各種不同的顏色。產品能夠展現的灰度數量越多,也就意味著這款產品的色彩表現力更加豐富,能夠實現更強的色彩層次。例如三原色16級灰度,能顯示的顏色就是16 16 16 40...