徹底理解帶IC的彩色燈珠控制器WS2812B以及使用ESP8266對其進行控制的要點
彩色LED燈珠,目前有2種主流類型,一種是燈珠內布置了R/G/B3種顏色LED,通過3路PWM分別控制3種LED亮度進行混色,另一種是燈珠內部除了3色LED還直接內置了燈控制器,稱為IC燈珠,你只需要輸入24bit的RGB控制信號,它內部會自動產生驅動pwm信號,并且自帶信號轉發(fā),對連續(xù)的輸入信號,截取前24bit后,后面的數據自動從DOUT口輸出轉發(fā)到下一顆燈珠。
在封裝上兩者都是4腳的,如果是不帶ic的,則每顆燈珠需要3路控制信號,數目一多,想搞個點陣屏什么的,連驅動ic都要排陣列,簡直要打人,所以在彩色LED方面,如果成本沒有要壓到極限的,還是選擇IC燈珠來做陣列會比較省心。
(看看下面的512像素彩色led點陣屏,只需要4根線就可以流暢控制,可達30 fps的刷新率)
WS2812的詳細參數詳見其官網datasheet,網上也大把中文資料,我們著重在其數字信號控制上。
PIN-MAP 見下圖所示,非常簡單,VDD , VSS 分別為電源和地, DIN為數據輸入,DOUT為數據輸出 ,每顆燈珠須要24bit的控制數據,超過24bit的數據會通過DOUT流到下一個燈珠
所以多個WS2812燈珠串接時候,將前一個的DOUT接到下一個的DIN即可,參考下圖WS官方推薦的LED燈帶原理圖和PCB。所以也可以理解為啥上圖的512 LED點陣屏只需要4根線就能控制了吧,它只是把燈帶折疊起來做成正方形屏幕的樣子,本質上是連續(xù)的燈帶。
WS2812B數據輸入只需要一個管腳,它使用的是自定義的脈寬控制協(xié)議,下表摘自 ws2812 datashee
總結一下就是:
bit 1 ?。?先輸出 0.8us 高電平,然后輸出 0.45us 低電平
bit 0 ?。?先輸出 0.4us 高電平,然后輸出 0.85us 低電平
輸出一個bit需時 1.25us ,通過控制2種脈沖寬度來進行1和0位編碼,如果持續(xù)輸出超過50us以上的低電平,就表示reset,也可以理解為幀結束.
如此短的脈寬保證了ws2812的高刷新率,其通訊數據速率可達800kbps,
那很明顯,調試這種器件,你起碼要有個邏輯分析儀來調整你的輸出時序.
那接下來結合ESP8266來對WS2812燈帶驅動,通過實例了解驅動一個led燈和驅動一條燈帶
*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。