最接接觸了WS2812 LED,相信有不少人都用過。大家對這款彩色LED肯定是又愛又恨,愛的是它使用簡單,采用單總線通信方式,節約IO口,而且可以多級串聯。而普通的彩色LED不是共陰就是共陽,每個顏色一個引腳,一般都是用PWM驅動,想要控制亮度、顏色就要分別控制每個引腳上的PWM占空比,想要驅動多個LED就更麻煩了。恨的是WSws2812對時序的要求比較高,對低速單片機不太友好。今天我就詳細談一談WS2812的驅動,以及使用時遇到的一個問題。
拿到一款芯片,第一件事就是找Datasheet。找Datasheet很簡單,直接上官網或者上專門的datasheet網站。
其實該LED的控制時序比較簡單:
1、數據0、1和Ret碼
該時序說名我們該如何傳輸1、0以及如何結束傳輸
2、LED數據
該款LED顯示的是24位RGB數據,位順序如下。傳輸時高位(G7)先發送,低位(B0)后后發送
3、連接模式
該款LED的連接模式比較簡單,串行模式,上一個LED的輸出接下一個LED的輸入。
4、串行LED時序
整個連續的數據發送如下,即發送數據和Ret信號。當然,在這里會有一個疑問,到底是先發數據還是先發ret信號。
經過本人自己測試驗證,應當先發ret信號再發數據信號。原因如下:
數據在傳輸的過程中,當LED接收到完整的24bit數據時,才會對該24Bit數據進行處理,是當前LED數據,還是需要轉發至下一個LED的數據。而實際發送過程中(尤為上電時)我們有時很難判定他第一個LED是否已經接收數據。而Ret信號相當于將所有的傳輸狀態復位,之后再進行新的數據傳輸。
5、演示示例
做了一個板子,焊了4個LED。做了一個紅綠藍黃的流水燈演示。拍攝的原因,蓋了一張白紙。
6、使用存在問題
在實際使用的過程中發現,實際驅動時,第一個LED的燈顯示異常。在網上也查找過一些資料,也存在遇到這個問題。解決方法如下:
1)、發送REST
2)、發送LED數據,先發的為第一個LED數據,后發的一次往后遞增
3)、發送REST
4)、重復發送第一個LED的數據
以上是該款LED使用的一個簡單總結。
-
led
+關注
關注
242文章
23396瀏覽量
663887 -
單片機
+關注
關注
6044文章
44632瀏覽量
639189 -
PWM
+關注
關注
114文章
5202瀏覽量
215048 -
RGB
+關注
關注
4文章
801瀏覽量
58755 -
WS2812
+關注
關注
0文章
32瀏覽量
6288
發布評論請先 登錄
相關推薦
WS2812實時時鐘程序
講講WS2812的數據協議
Arduino控制WS2812燈帶的方法
WS2812驅動的總結和時序的詳細資料分析
![<b class='flag-5'>WS2812</b>驅動的總結和時序的詳細資料分析](https://file.elecfans.com/web1/M00/9F/8A/pIYBAF1ClCSALyFHAABcX-PBMoY757.png)
如何進行WS2812的面板燈制作詳細資料合集免費下載
![如何進行<b class='flag-5'>WS2812</b>的面板燈制作詳細資料合集免費下載](https://file.elecfans.com/web1/M00/94/A3/o4YBAFzuV--ARIUqAAHXD6YIhco191.png)
STM32使用LL庫PWM的DMA模式驅動ws2812
![STM32使用LL庫PWM的DMA模式驅動<b class='flag-5'>ws2812</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
帶WS2812 LED燈條的DIY Arduino 1D乒乓球游戲
![帶<b class='flag-5'>WS2812</b> <b class='flag-5'>LED</b>燈條的DIY Arduino 1D乒乓球游戲](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用智能手機控制16x16 WS2812 Led矩陣
![如何使用智能手機控制16x16 <b class='flag-5'>WS2812</b> <b class='flag-5'>Led</b>矩陣](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論