最接接觸了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信號。當(dāng)然,在這里會有一個疑問,到底是先發(fā)數(shù)據(jù)還是先發(fā)ret信號。
經(jīng)過本人自己測試驗證,應(yīng)當(dāng)先發(fā)ret信號再發(fā)數(shù)據(jù)信號。原因如下:
數(shù)據(jù)在傳輸?shù)倪^程中,當(dāng)LED接收到完整的24bit數(shù)據(jù)時,才會對該24Bit數(shù)據(jù)進行處理,是當(dāng)前LED數(shù)據(jù),還是需要轉(zhuǎn)發(fā)至下一個LED的數(shù)據(jù)。而實際發(fā)送過程中(尤為上電時)我們有時很難判定他第一個LED是否已經(jīng)接收數(shù)據(jù)。而Ret信號相當(dāng)于將所有的傳輸狀態(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文章
23314瀏覽量
661724 -
單片機
+關(guān)注
關(guān)注
6039文章
44583瀏覽量
636610 -
PWM
+關(guān)注
關(guān)注
114文章
5193瀏覽量
214265 -
RGB
+關(guān)注
關(guān)注
4文章
799瀏覽量
58583 -
WS2812
+關(guān)注
關(guān)注
0文章
32瀏覽量
6198
發(fā)布評論請先 登錄
相關(guān)推薦
評論