這個LED整合了RGB三個顏色與控制器,可以很簡單用一根IO控制一整排的RGB LED
WS2812是將RGB LED控制IC WS2811跟RGB LED包在5050的封裝裡面
目前市面上很多彩色的廣告燈都是用WS2812的RGB LED
如果學會其實可以應用在不少的地方,比方說做遙控車的煞車燈、霧燈、大燈、七彩霓虹燈..
而且,控制起來非常簡單,只需要一片小小的Digispark,只用其中一隻I/O,串遍整台車的RGB LED就可以控制,線路相當簡單
目前市面上很多彩色的廣告燈都是用WS2812的RGB LED
如果學會其實可以應用在不少的地方,比方說做遙控車的煞車燈、霧燈、大燈、七彩霓虹燈..
而且,控制起來非常簡單,只需要一片小小的Digispark,只用其中一隻I/O,串遍整台車的RGB LED就可以控制,線路相當簡單
相關接線方式:
範例程式碼:
1
2 #include
3 DEFINE_WS2811_FN(WS2811RGB, PORTB, 1)
4 RGB_t rgb[6]; //1 for 1 pixel
5 int RGB_NUM;
6
7 void setup() {
8
9 pinMode(1,OUTPUT);
10
11 }
12
13 void loop() {
14
15 RGB_NUM+=1;
16 switch( RGB_NUM/50 )
17 {
18 case 0: //第一顆LED,亮紅色
19 rgb[0].r=40; rgb[0].b=0; rgb[0].g=0;
20 break;
21 case 1: //第二顆LED,亮紫色
22 rgb[1].r=40; rgb[1].b=40; rgb[1].g=0;
23 break;
24 case 2: //第三顆LED,亮藍色
25 rgb[2].r=0; rgb[2].b=40; rgb[2].g=0;
26 break;
27 case 3: //第四顆LED,亮青藍色
28 rgb[3].r=0; rgb[3].b=40; rgb[3].g=40;
29 break;
30 case 4: //第五顆LED,亮綠色
31 rgb[4].r=0; rgb[4].b=0; rgb[4].g=40;
32 break;
33 case 5: //第六顆LED,亮黃色
34 rgb[5].r=40; rgb[5].b=0; rgb[5].g=40;
35 break;
36 case 6:
37 RGB_NUM=0;
38 break;
39 }
40
41 updatePixels(); //show the change
42 delay(20);
43 }
44
45 void updatePixels(){
46 WS2811RGB(rgb, ARRAYLEN(rgb));
47 }
48
結果影片:上述程式可以達成如下的樣子,可以再依照您的需求修改程式
另外一個型態顯示,但由於程式比較複雜一點點,就沒有把這隻範例放到網路上
影片拍的顏色沒有那麼鮮豔,因為顏色反差太大,拍起來並不漂亮
實際上的顏色是很鮮豔,很漂亮的
沒有留言:
張貼留言