標(biāo)題: 51單片機控制RGB5050全彩LED燈 [打印本頁]

作者: fx283    時間: 2017-1-24 19:37
標(biāo)題: 51單片機控制RGB5050全彩LED燈
自己在淘寶買了個全彩LED,但是卻不知道怎么用。有沒有大神給知道一下怎么接線,怎么用單片機控制啊?

IMG_20170124_193207.jpg (89.75 KB, 下載次數(shù): 156)

IMG_20170124_193207.jpg

作者: angmall    時間: 2017-1-24 21:11
WS2812B是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為一個像素點。像素點內(nèi)部包含了智能數(shù)字接口數(shù)據(jù)鎖存信號整形放大驅(qū)動電路,還包含有高精度的內(nèi)部振蕩器和12V高壓可編程定電流控制部分,有效保證了像素點光的顏色高度一致。
數(shù)據(jù)協(xié)議采用單線歸零碼的通訊方式,像素點在上電復(fù)位以后,DIN端接受從控制器傳輸過來的數(shù)據(jù),首先送過來的24bit數(shù)據(jù)被第一個像素點提取后,送到像素點內(nèi)部的數(shù)據(jù)鎖存器,剩余的數(shù)據(jù)經(jīng)過內(nèi)部整形處理電路整形放大后通過DO端口開始轉(zhuǎn)發(fā)輸出給下一個級聯(lián)的像素點,每經(jīng)過一個像素點的傳輸,信號減少24bit。像素點采用自動整形轉(zhuǎn)發(fā)技術(shù),使得該像素點的級聯(lián)個數(shù)不受信號傳送的限制,僅僅受限信號傳輸速度要求。
LED具有低電壓驅(qū)動,環(huán)保節(jié)能,亮度高,散射角度大,一致性好,超低功率,超長壽命等優(yōu)點。將控制電路集成于LED上面,電路變得更加簡單,體積小,安裝更加簡便。

僅以此貼獻給剛剛學(xué)會流水燈的孩子,學(xué)會這個就可以搞任意顏色搭配的流水燈了,而且根本不用考慮引腳個數(shù)(碎碎念:只用一個引腳就可以控制幾百個以上的燈珠,每個燈珠顏色是255*255*255種)

  1. /********************************************************/
  2. /*程序功能:用51單片機控制ws2812 RGB輸出,顯示全色彩
  3. /*備 注:51單片機晶振24M
  4. /********************************************************/

  5. #include<reg52.h>
  6. #include<intrins.h>
  7. #define uchar unsigned char

  8. sbit Send_Dat=P1^0;     //數(shù)據(jù)輸出,接IN腳
  9. sbit Key=P1^1;          //按鍵等待
  10. sbit Send_Dat1=P1^2;   //中斷狀態(tài)燈
  11. uchar RGB_BUF[24];
  12. void delay();
  13. void delays();
  14. void init();

  15. uchar Led_Tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};        
  16. //存儲一個轉(zhuǎn)化后的RGB2進制數(shù)  共24bits
  17. struct My_24bits                  //結(jié)構(gòu)體
  18. {
  19.         uchar G_VAL;                 //綠色  0-255
  20.         uchar R_VAL;                  //紅色 0-255
  21.         uchar B_VAL;                  //藍色0-255
  22. };


  23. /*寫入數(shù)據(jù)時序*/
  24. void Send_A_bit(uchar VAL)
  25. {
  26.         //     Send_Dat=0;
  27.         if (VAL==1)
  28.         {
  29.                 //     Send_Dat=0;
  30.                 Send_Dat=1;
  31.                 _nop_();
  32.                 //_nop_();
  33.                 Send_Dat=0;     //2.17us
  34.                 //_nop_();
  35.                 //     Send_Dat=1;    //2.17us
  36.         }
  37.         else
  38.         {
  39.                 // Send_Dat=0;
  40.                 Send_Dat=1;
  41.                 //_nop_();
  42.                 //_nop_();
  43.                 Send_Dat=0;           
  44.                 _nop_();
  45.                 // Send_Dat=1;
  46.         }           
  47.        
  48. }


  49. /*發(fā)送24位字符(包含RGB信息各8位)*/
  50. void Send_24bits(struct My_24bits RGB_VAL )                     
  51. {
  52.         uchar i;
  53.         for   (i=0;i<8;i++)
  54.         {
  55.                 RGB_BUF[i]=RGB_VAL.R_VAL>>i&0x01;      //轉(zhuǎn)化R_VAL
  56.         }
  57.         for   (i=8;i<16;i++)
  58.         {
  59.                 RGB_BUF[i]=RGB_VAL.G_VAL>>(i-8)&0x01;  //轉(zhuǎn)化G_VAL
  60.         }
  61.         for   (i=16;i<24;i++)                     //轉(zhuǎn)化B_VAL
  62.         {
  63.                 RGB_BUF[i]=RGB_VAL.B_VAL>>(i-16)&0x01;     
  64.         }
  65.         for (i=0;i<24;i++)
  66.         {
  67.                 Send_A_bit(RGB_BUF[i]);
  68.         }
  69.        
  70. }

  71. /*主函數(shù)*/
  72. void main()
  73. {

  74.         struct My_24bits a,b,c,d,e,f,g;
  75.         a.R_VAL=0xff;
  76.         a.G_VAL=0x00;                      //1        顏色順序,下同
  77.         a.B_VAL=0x00;

  78.         b.R_VAL=0x00;
  79.         b.G_VAL=0xff;                       //2
  80.         b.B_VAL=0x00;

  81.         c.R_VAL=0x00;
  82.         c.G_VAL=0x00;                      //3
  83.         c.B_VAL=0xff;

  84.         d.R_VAL=0xff;                       //4
  85.         d.G_VAL=0xff;
  86.         d.B_VAL=0x00;

  87.         e.R_VAL=0xff;
  88.         e.G_VAL=0x00;                       //5
  89.         e.B_VAL=0xff;

  90.         f.R_VAL=0x00;
  91.         f.G_VAL=0xff;                       //6
  92.         f.B_VAL=0xff;

  93.         g.R_VAL=0xff;                       //7
  94.         g.G_VAL=0xff;
  95.         g.B_VAL=0xff;
  96.         init();
  97.         while(1)
  98.         {
  99.                 Send_Dat=0;
  100.                 Send_24bits(a);
  101.                 Send_Dat=0;   P0=0xF9;
  102.                 delays();
  103.                 while(Key==1);                                        //按鍵等待,當(dāng)Key=1時停止,等于0時七種顏色流水燈循環(huán),下同(主要方便觀察顏色)

  104.                 Send_24bits(b);
  105.                 Send_Dat=0;    P0=0xa4;      //共陰極數(shù)碼管顯示顏色順序,下同
  106.                 delays();
  107.                 while(Key==1);

  108.                 Send_24bits(c);
  109.                 Send_Dat=0;   P0=0xb0;
  110.                 delays();
  111.                 while(Key==1);

  112.                 Send_24bits(d);
  113.                 Send_Dat=0;   P0=Led_Tab[4];
  114.                 delays();
  115.                 while(Key==1);

  116.                 Send_24bits(e);
  117.                 Send_Dat=0;   P0=Led_Tab[5];
  118.                 delays();
  119.                 while(Key==1);

  120.                 Send_24bits(f);
  121.                 Send_Dat=0;   P0=Led_Tab[6];
  122.                 delays();
  123.                 while(Key==1);

  124.                 Send_24bits(g);
  125.                 Send_Dat=0;   P0=Led_Tab[7];
  126.                 delays();
  127.                 while(Key==1);
  128.                 //     PCON|=0x01;      //空閑模式
  129.                
  130.         }
  131. }



  132. /*中斷喚醒測試函數(shù)*/
  133. void INT1_ISR(void) interrupt 2
  134. {
  135.         P2=1;
  136. }


  137. /*小延時函數(shù)*/
  138. /*大概1S吧,隨便寫的*/
  139. void delay()
  140. {
  141.         uchar i,j;
  142.         for (i=0;i<250;i++)
  143.         {
  144.                 for (j=0;j<250;j++);
  145.         }
  146. }


  147. /*大延時函數(shù)*/
  148. /*十幾秒*/
  149. void delays()
  150. {
  151.         delay();
  152.         delay();
  153.         delay();
  154.         delay();
  155.         delay();
  156.         delay();
  157.         delay();
  158.         delay();
  159.         delay();  
  160.         delay();
  161.         delay();
  162.         delay();
  163. }



  164. /*系統(tǒng)初始化*/
  165. void init()
  166. {
  167.         P0=0x00;
  168.         P1=0x00;
  169.         P2=0x00;
  170.         P3=0x00;

  171.         TCON=0x05;
  172.         TMOD=0x00;
  173.         TH0=0x00;
  174.         TL0=0x00;
  175.         TH1=0x00;
  176.         TL1=0x00;

  177.         T2CON=0x00;
  178.         RCAP2H=0x00;
  179.         RCAP2L=0x00;

  180.         IP=0x00;
  181.         IE=0x85;
  182.         PCON=0x00;
  183.         SCON=0x00;
  184. }

復(fù)制代碼

作者: 199419zzq    時間: 2017-1-24 22:48
這個可以找店家要資料阿,他賣這個東西肯定有阿
作者: fx283    時間: 2017-1-25 14:10
angmall 發(fā)表于 2017-1-24 21:11
WS2812B是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為 ...

好厲害,謝謝,正在研究中
作者: fx283    時間: 2017-1-25 14:11
199419zzq 發(fā)表于 2017-1-24 22:48
這個可以找店家要資料阿,他賣這個東西肯定有阿

恩恩,不過他那個店里提供的都是一些簡單的資料,沒有技術(shù)支持的
作者: 199419zzq    時間: 2017-1-25 20:49
你問店家要資料啊
作者: 小小de手心    時間: 2017-8-23 21:46
angmall 發(fā)表于 2017-1-24 21:11
WS2812B是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為 ...

一樓的大佬  看到255還以為是PWM調(diào)制彩燈  請問有不是7色 是256*256*256色的彩燈程序嗎 想?yún)⒖枷?謝謝
作者: cheng012345678    時間: 2017-8-24 16:59
有沒有資料分享下
作者: hitaoliu    時間: 2017-8-24 21:25
謝謝,正在研究中
作者: 小易    時間: 2018-6-21 13:52
angmall 發(fā)表于 2017-1-24 21:11
WS2812B是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為 ...

這個是直接單片機 IO 就可以控制室吧, 不需要外加三極管什么的
作者: eydms    時間: 2018-6-21 15:39
學(xué)習(xí)了
作者: chenwei0159    時間: 2018-6-21 17:53
LED好接,主要是單片機要編程,這個要看資料啊
作者: ljp727828    時間: 2018-6-21 20:39
正在研究中....
作者: myfff    時間: 2019-6-27 08:38
請問一下有沒有原理圖,和仿真圖
作者: hzw854025403    時間: 2020-8-7 20:23
angmall 發(fā)表于 2017-1-24 21:11
WS2812B是一個集控制電路與發(fā)光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為 ...


作者: gfshao    時間: 2020-9-16 11:50
應(yīng)該是被編碼了的,需要知道編碼規(guī)則
作者: tvs    時間: 2021-6-21 17:14
51單片機要買啥樣的?
作者: tvs    時間: 2021-6-21 17:15
51單片機要買什么配置的




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1