WS2812資料包(含51單片機,arduino平臺與stm32的各種控制源碼):
0.png (44.06 KB, 下載次數: 167)
下載附件
2018-4-17 02:59 上傳
0.png (14.13 KB, 下載次數: 168)
下載附件
2018-4-17 02:59 上傳
WS2812是一個集控制電路與發光電路于一體的智能外控LED光源。其外型與一個5050LED燈珠相同,每個元件即為一個像素點。像素點內部包含了智能數字接口數據鎖存信號整形放大驅動電路,還包含有高精度的內部振蕩器和12V高壓可編程定電流控制部分,有效保證了像素點光的顏色高度一致。數據協議采用單線歸零碼的通訊方式,像素點在上電復位以后,DIN端接受從控制器傳輸過來的數據,首先送過來的24bit數據被第一個像素點提取后,送到像素點內部的數據鎖存器,剩余的數據經過內部整形處理電路整形放大后通過DO端口開始轉發輸出給下一個級聯的像素點,每經過一個像素點的傳輸,信號減少24bit。像素點采用自動整形轉發技術,使得該像素點的級聯個數不受信號傳送的限制,僅僅受限信號傳輸速度要求。LED具有低電壓驅動,環保節能,亮度高,散射角度大,一致性好,超低功率,超長壽命等優點。將控制電路集成于LED上面,電路變得更加簡單,體積小,安裝更加簡便。
●控制電路與RGB芯片集成在一個5050封裝的元器件中,構成一個完整的外控像素點。
●內置信號整形電路,任何一個像素點收到信號后經過波形整形再輸出,保證線路波形畸變不會累加。
●內置上電復位和掉電復位電路。
●每個像素點的三基色顏色可實現256級亮度顯示,完成16777216種顏色的全真色彩顯示,掃描頻率不低于
400Hz/s。
●串行級聯接口,能通過一根信號線完成數據的接收與解碼。
●任意兩點傳傳輸距離在不超過5米時無需增加任何電路。
●當刷新速率30幀/秒時,低速模式級聯數不小于512點,高速模式不小于1024點。
●數據發送速度可達800Kbps。
●光的顏色高度一致,性價比高。
WS2812引腳圖與數據手冊(51hei附件可下載)
0.png (99.03 KB, 下載次數: 155)
下載附件
2018-4-17 02:57 上傳
電路原理圖如下:
0.jpg (27.91 KB, 下載次數: 172)
下載附件
2018-4-17 02:58 上傳
源碼:
RGB LED Cycle Test
RGB LED Cycle 七彩切換效果程序
RGB LED Cycle 七彩漸變效果程序
RGB LED Cycle 七彩覆蓋效果程序
RGB LED Cycle 三色循環效果程序
RGB LED Cycle 三色覆蓋效果程序
RGB LED Cycle 單個紅色旋轉效果程序
RGB LED Cycle 雙色漸變彩帶旋轉效果程序
RGB LED Cycle 紅綠藍三色旋轉效果程序
RGB LED Cycle 紅綠藍三色旋轉效果程序2
WS2812B數據驅動
帶單片機8位全彩流水燈程序模板V1.0
帶單片機8位全彩流水燈程序模板V1.1
stm32
3步打造stm32驅動的ws2812智能燈.zip
NucleoL496智能燈數據點.zip
51單片機源程序如下:
- /*----------------------------------------------------------------------------
- * 項目名稱:
- RGB LED驅動程序
- * 功能描述:
- 1、將整個數組的數據發送得到LED進行顯示
- 2、從指定像素開始將整個數組的數據發送到LED顯示
- 3、發送復位信號
- * 版權信息:
- (c) 飛翼電子, 2014.
- * 歷史版本:
- 2014-03-15:
- - 初始版本 V1.0.0;
- * 配置說明:
- MCU: STC15W204S
- 晶振: 內部晶振:33MHz
- 擴展模塊: -
- 軟件: Keil.C51.V9.01
- * 備注:
- ------------------------------------------------------------------------------*/
- #include "STC15W.h"
- #include <intrins.h>
- #include "ws2812.h"
- //-------------------------------------------------------------------------------
- //子程序名稱:IO_Init(void)
- //功能:端口初始化
- //-------------------------------------------------------------------------------
- void IO_Init(void)
- {
- ;
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:ResetDateFlow(void)
- //功能:復位,為下一次發送做準備,
- //說明:將DI置位為0后,延時約65us
- //-------------------------------------------------------------------------------
- void ResetDataFlow(void)
- {
- unsigned char i,j;
- DI=0; //DI置為0后,延時50us以上,實現幀復位
- for(i=0;i<15;i++) //此處33Mhz時延時65us
- {
- for(j=0;j<20;j++)
- {
- ;
- }
- }
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:SendOnePix(unsigned char *ptr)
- //功能:發送一個像素點的24bit數據
- //參數:接收的參數是一個指針,此函數會將此指針指向的地址的連續的三個Byte的數據發送
- //說明:在主函數中直接調用此函數時,在整個幀發送開始前需要先執行 ResetDataFlow()
- // 數據是按歸零碼的方式發送,速率為800KBPS
- //-------------------------------------------------------------------------------
- void SendOnePix(unsigned char *ptr)
- {
- unsigned char i,j;
- unsigned char temp;
- for(j=0;j<3;j++)
- {
- temp=ptr[j];
- for(i=0;i<8;i++)
- {
- if(temp&0x80) //從高位開始發送
- {
- DI=1; //發送“1”碼
- _nop_(); //不可省略的nop(),延時指定時間作用,晶振頻率33MHz
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- DI=0;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }
- else //發送“0”碼
- {
- DI=1;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- DI=0;
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- _nop_();
- }
- temp=(temp<<1); //左移位
- }
- }
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:SendOneFrame(unsigned char *ptr)
- //功能:發送一幀數據(即發送整個數組的數據)
- //參數:接收的參數是一個指針,此函數會將此指針指向的地址的整個數組的數據發送
- //-------------------------------------------------------------------------------
- void SendOneFrame(unsigned char *ptr)
- {
- unsigned char k;
- ResetDataFlow(); //發送幀復位信號
- for(k=0;k<SNUM;k++) //發送一幀數據,SNUM是板子LED的個數
- {
- SendOnePix(&ptr[(3*k)]);
- }
- ResetDataFlow(); //發送幀復位信號
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:SendSameColor(unsigned char *ptr,unsigned char cnt)
- //功能:相同顏色的點發送cnt次
- //參數:接收的參數是一個指針,指向像素點顏色數組,cnt傳遞發送個數
- //-------------------------------------------------------------------------------
- void SendSameColor(unsigned char *ptr,unsigned char cnt)
- {
- unsigned char k;
- ResetDataFlow(); //發送幀復位信號
- for(k=0;k<cnt;k++) //發送一幀數據,SNUM是板子LED的個數
- {
- SendOnePix(&ptr[0]);
- }
- ResetDataFlow(); //發送幀復位信號
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:SendOneFrameFrom(unsigned char i,unsigned char *ptr)
- //功能:從指定的像素點開始發送一幀數據(即發送整個數組的數據)
- //參數:接收的參數是一個指針,此函數會將此指針指向的地址的整幀數據發送
- // i:把數組的第0個像素數據發送到第i個像素點(第0個像素是板上標號為01的像素)
- //說明:即原本對應第一個像素的數據會發送到第i個像素點(LED)上
- //-------------------------------------------------------------------------------
- void SendOneFrameFrom(unsigned char i,unsigned char *ptr)
- {
- unsigned char k;
- ResetDataFlow(); //發送幀復位信號
- for(k=(SNUM-i);k<SNUM;k++) //發送一幀數據
- {
- SendOnePix(&ptr[(3*k)]);
- }
- for(k=0;k<(SNUM-i);k++)
- {
- SendOnePix(&ptr[(3*k)]);
- }
- ResetDataFlow(); //發送幀復位信號
- }
- //-------------------------------------------------------------------------------
- //子程序名稱:SendOneFrameSince(unsigned char i,unsigned char *ptr)
- //功能:從第i個像素點的數據開始發送一幀數據(即發送整個數組的數據)
- //參數:接收的參數是一個指針,此函數會將此指針指向的地址的整幀數據發送
- // i:把數組的第i個像素數據發送到第1個像素點
- //說明:即原本對應第i像素的數據會發送到第1個像素點(LED)上,第i+1個像素點的數據
- // 發送到第2個像素上
- //-------------------------------------------------------------------------------
- void SendOneFrameSince(unsigned char i,unsigned char *ptr)
- {
- unsigned char k;
- ResetDataFlow(); //發送幀復位信號
- for(k=i;k<SNUM;k++) //發送一幀數據
- {
- SendOnePix(&ptr[(3*k)]);
- }
- for(k=0;k<i;k++)
- {
- SendOnePix(&ptr[(3*k)]);
- }
- ResetDataFlow(); //發送幀復位信號
- }
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
ws2812B模塊資料.rar
(12.02 MB, 下載次數: 1180)
2018-4-16 19:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|