不管你對 “RGB性能狂升300%” 的梗認同不認同,不可否認,絢麗的彩色很是酷炫,在現(xiàn)在市面上帶“燈”的肯定比不帶“燈”的貴也成了商家的一致行為。
在市面上呢,其中有一種RGB LED燈珠,因為價格便宜一個只要幾毛錢買的多了都可能到1毛錢一個,無需額外的“龐大”控制電路來驅(qū)動,用各廉價的單片機和簡單的元件,就可以單IO接口串聯(lián)讓成百上千個燈珠各自獨立的發(fā)出顏色,低功耗,而且還有不錯的刷新率,讓DIY玩家在很是推崇。
這就是WS2812系類,它是一種“集控制電路與發(fā)光電路于一體的智能外控LED光源”。
那么它是怎么實現(xiàn)的?相關的文檔、源碼很多,但具體到實際控制方式還是不明不白。本文以WS2812B-4為例,它是WS2812的mini版本,性能上沒有標準6腳的快,但是體積小,性能也用,可以讓點距更小些。
讓我們了解下它,然后為我們就會知道為什么要用LOTO示波器明明白折的分析下它是怎么被單片機控制并發(fā)出絢麗顏色的吧。
先來看看官方文檔的說明~
科普下時間單位,方便后邊說明。
ms是毫秒=0.001秒 us是微秒=0.000,001秒 ns是納秒=0.000,000,001秒
現(xiàn)在開始正文,簡單總結下來就是想最快的讓一個WS2812B-4 LED亮出顏色就需要1960ns(1bit) * 24(紅綠藍3種顏色各8bit) + 280us = 47040ns(47.04us) + 280us = 327.04us。
也就是可以讓單個WS2812B-4 LED 在不考慮余輝的情況下1毫秒3次,1秒鐘約3000次的變換不同顏色。
再之后呢,每擴展1個WS2812B-4 LED,就要多一個47.04us的顏色數(shù)據(jù),那么要1秒60次刷新需要16.66ms = 16,666us – 280us = 16,386us /47.04us = 348個LED。
這個串聯(lián)數(shù)量,讓我們設計小的DIY RGB光源的時候可以游刃有余的完成所要的設計。這也就是WS2812受到推崇的原因了。
但是這么快的速度讓我們很難看到它是怎么工作了,用萬用表什么的是絕對沒可能看到實際情況,因為太快,電壓看來都是0。那么怎么才能看到LED怎么被電路驅(qū)動的呢,只能用示波器了。
專業(yè)人士的示波器都是很貴的,幾萬幾十萬上百萬的不在少數(shù),而這價格讓我們DIY玩家很難承受,畢竟銀子難賺嘛,二三四手的也不省錢還有可能翻車。
這里就要讓本文的主角LOTO示波器出場了。有了它可以讓我們只要花幾百塊就可以在電腦上了解到專業(yè)示波器的分析結果,當然了一分錢一分貨,帶寬和采樣和價格是同比的,不過一般的DIY也用不到那么專業(yè)的嘛,所以,LOTO讓你可以不用花很多錢就可以在日常場景中方便的了解學習電路原理,真的是物超所值的哦。
如下圖~,這個洞洞板用一下1塊的STC8G單片機,用一個IO端口驅(qū)動了2個WS2812B-4,讓第一個發(fā)出了綠色,第二個發(fā)出了紅色,并且是呼吸閃爍的效果,不過圖片嘛,就看不出來了。
因為是5V的高電平電路,需要用10X擋的探頭,先來用1ms時域看,只有小小的一個尖刺,1ms里看9600bps的通訊那叫清楚,現(xiàn)在看us級的只能看成這樣的尖刺,只能說,真快啊。
再來換成0.1ms擋位,已經(jīng)能看到連續(xù)的波紋了,不過還是太密集了,可以見到藍色的A通道是黃色B通道長一倍,這就是LED1收到2組24bit后轉發(fā)給LED2的1組24bit的波紋啦。