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