最接接觸了WS2812 LED,相信有不少人都用過。大家對這款彩色LED肯定是又愛又恨,愛的是它使用簡單,采用單總線通信方式,節(jié)約IO口,而且可以多級串聯(lián)。而普通的彩色LED不是共陰就是共陽,每個顏色一個引腳,一般都是用PWM驅(qū)動,想要控制亮度、顏色就要分別控制每個引腳上的PWM占空比,想要驅(qū)動多個LED就更麻煩了。恨的是WSws2812對時序的要求比較高,對低速單片機不太友好。今天我就詳細談一談WS2812的驅(qū)動,以及使用時遇到的一個問題。
拿到一款芯片,第一件事就是找Datasheet。找Datasheet很簡單,直接上官網(wǎng)或者上專門的datasheet網(wǎng)站。
其實該LED的控制時序比較簡單:
1、數(shù)據(jù)0、1和Ret碼
該時序說名我們該如何傳輸1、0以及如何結(jié)束傳輸
2、LED數(shù)據(jù)
該款LED顯示的是24位RGB數(shù)據(jù),位順序如下。傳輸時高位(G7)先發(fā)送,低位(B0)后后發(fā)送
3、連接模式
該款LED的連接模式比較簡單,串行模式,上一個LED的輸出接下一個LED的輸入。
4、串行LED時序
整個連續(xù)的數(shù)據(jù)發(fā)送如下,即發(fā)送數(shù)據(jù)和Ret信號。當然,在這里會有一個疑問,到底是先發(fā)數(shù)據(jù)還是先發(fā)ret信號。
經(jīng)過本人自己測試驗證,應(yīng)當先發(fā)ret信號再發(fā)數(shù)據(jù)信號。原因如下:
數(shù)據(jù)在傳輸?shù)倪^程中,當LED接收到完整的24bit數(shù)據(jù)時,才會對該24Bit數(shù)據(jù)進行處理,是當前LED數(shù)據(jù),還是需要轉(zhuǎn)發(fā)至下一個LED的數(shù)據(jù)。而實際發(fā)送過程中(尤為上電時)我們有時很難判定他第一個LED是否已經(jīng)接收數(shù)據(jù)。而Ret信號相當于將所有的傳輸狀態(tài)復(fù)位,之后再進行新的數(shù)據(jù)傳輸。
5、演示示例
做了一個板子,焊了4個LED。做了一個紅綠藍黃的流水燈演示。拍攝的原因,蓋了一張白紙。
6、使用存在問題
在實際使用的過程中發(fā)現(xiàn),實際驅(qū)動時,第一個LED的燈顯示異常。在網(wǎng)上也查找過一些資料,也存在遇到這個問題。解決方法如下:
1)、發(fā)送REST
2)、發(fā)送LED數(shù)據(jù),先發(fā)的為第一個LED數(shù)據(jù),后發(fā)的一次往后遞增
3)、發(fā)送REST
4)、重復(fù)發(fā)送第一個LED的數(shù)據(jù)
以上是該款LED使用的一個簡單總結(jié)。
-
led
+關(guān)注
關(guān)注
242文章
23715瀏覽量
671108 -
單片機
+關(guān)注
關(guān)注
6063文章
44928瀏覽量
647143 -
PWM
+關(guān)注
關(guān)注
116文章
5391瀏覽量
218155 -
RGB
+關(guān)注
關(guān)注
4文章
803瀏覽量
59609 -
WS2812
+關(guān)注
關(guān)注
0文章
33瀏覽量
6554
發(fā)布評論請先 登錄
WS2812實時時鐘程序
講講WS2812的數(shù)據(jù)協(xié)議
Arduino控制WS2812燈帶的方法
WS2812驅(qū)動的總結(jié)和時序的詳細資料分析

如何進行WS2812的面板燈制作詳細資料合集免費下載

STM32使用LL庫PWM的DMA模式驅(qū)動ws2812

帶WS2812 LED燈條的DIY Arduino 1D乒乓球游戲

如何使用智能手機控制16x16 WS2812 Led矩陣

論如何使用WS2812以及類似燈珠

評論