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