絢麗的色彩從何而來_LOTO示波器實(shí)測WS2812B系LED光源

不管你對 “RGB性能狂升300%” 的梗認(rèn)同不認(rèn)同,不可否認(rèn),絢麗的彩色很是酷炫,在現(xiàn)在市面上帶“燈”的肯定比不帶“燈”的貴也成了商家的一致行為。
在市面上呢,其中有一種RGB LED燈珠,因?yàn)閮r(jià)格便宜一個(gè)只要幾毛錢買的多了都可能到1毛錢一個(gè),無需額外的“龐大”控制電路來驅(qū)動,用各廉價(jià)的單片機(jī)和簡單的元件,就可以單IO接口串聯(lián)讓成百上千個(gè)燈珠各自獨(dú)立的發(fā)出顏色,低功耗,而且還有不錯的刷新率,讓DIY玩家在很是推崇。

這就是WS2812系類,它是一種“集控制電路與發(fā)光電路于一體的智能外控LED光源”。
那么它是怎么實(shí)現(xiàn)的?相關(guān)的文檔、源碼很多,但具體到實(shí)際控制方式還是不明不白。本文以WS2812B-4為例,它是WS2812的mini版本,性能上沒有標(biāo)準(zhǔn)6腳的快,但是體積小,性能也用,可以讓點(diǎn)距更小些。
讓我們了解下它,然后為我們就會知道為什么要用LOTO示波器明明白折的分析下它是怎么被單片機(jī)控制并發(fā)出絢麗顏色的吧。
先來看看官方文檔的說明~





科普下時(shí)間單位,方便后邊說明。
ms是毫秒=0.001秒 ?us是微秒=0.000,001秒 ns是納秒=0.000,000,001秒
?
現(xiàn)在開始正文,簡單總結(jié)下來就是想最快的讓一個(gè)WS2812B-4 LED亮出顏色就需要1960ns(1bit) * 24(紅綠藍(lán)3種顏色各8bit) + 280us = 47040ns(47.04us) + 280us = 327.04us。
也就是可以讓單個(gè)WS2812B-4 LED 在不考慮余輝的情況下1毫秒3次,1秒鐘約3000次的變換不同顏色。
再之后呢,每擴(kuò)展1個(gè)WS2812B-4 LED,就要多一個(gè)47.04us的顏色數(shù)據(jù),那么要1秒60次刷新需要16.66ms = 16,666us – 280us = 16,386us /47.04us = 348個(gè)LED。
這個(gè)串聯(lián)數(shù)量,讓我們設(shè)計(jì)小的DIY RGB光源的時(shí)候可以游刃有余的完成所要的設(shè)計(jì)。這也就是WS2812受到推崇的原因了。
但是這么快的速度讓我們很難看到它是怎么工作了,用萬用表什么的是絕對沒可能看到實(shí)際情況,因?yàn)樘?,電壓看來都?。那么怎么才能看到LED怎么被電路驅(qū)動的呢,只能用示波器了。
專業(yè)人士的示波器都是很貴的,幾萬幾十萬上百萬的不在少數(shù),而這價(jià)格讓我們DIY玩家很難承受,畢竟銀子難賺嘛,二三四手的也不省錢還有可能翻車。
這里就要讓本文的主角LOTO示波器出場了。有了它可以讓我們只要花幾百塊就可以在電腦上了解到專業(yè)示波器的分析結(jié)果,當(dāng)然了一分錢一分貨,帶寬和采樣和價(jià)格是同比的,不過一般的DIY也用不到那么專業(yè)的嘛,所以,LOTO讓你可以不用花很多錢就可以在日常場景中方便的了解學(xué)習(xí)電路原理,真的是物超所值的哦。
如圖~,這個(gè)洞洞板用一下1塊的STC8G單片機(jī),用一個(gè)IO端口驅(qū)動了2個(gè)WS2812B-4,讓第一個(gè)發(fā)出了綠色,第二個(gè)發(fā)出了紅色,并且是呼吸閃爍的效果,不過圖片嘛,就看不出來了。

因?yàn)槭?V的高電平電路,需要用10X擋的探頭,先來用1ms時(shí)域看,只有小小的一個(gè)尖刺,1ms里看9600bps的通訊那叫清楚,現(xiàn)在看us級的只能看成這樣的尖刺,只能說,真快啊。

再來換成0.1ms擋位,已經(jīng)能看到連續(xù)的波紋了,不過還是太密集了,可以見到藍(lán)色的A通道是黃色B通道長一倍,這就是LED1收到2組24bit后轉(zhuǎn)發(fā)給LED2的1組24bit的波紋啦。

0.1ms還太“慢”了,讓我們來到10us,也就是0.000,010秒。也因?yàn)樘炝耍@里用了觸發(fā),可以攔截到有高電平,要不閃動太快想找到波形可不容易。可以看到明顯的波形情況了,但是還是不清楚,那我們繼續(xù)。

1us檔,現(xiàn)在就可以清楚的看到波形了。怎么樣,0.000,001秒的電壓變化清楚的展現(xiàn)給你的感覺?

也許你會奇怪為什么不是平的波形的呢?是不是示波器有問題?我們先來試試示波器,看看是不是示波器的問題,示波器多都有一個(gè)標(biāo)準(zhǔn)方波生成功能,來方便我們調(diào)校示波器。
看下圖,這是個(gè)1000hz的標(biāo)準(zhǔn)方波,嗯~很平,證明示波器沒問題。那就是STC8G的輸出就是上圖中所顯示的波形了~

我們繼續(xù),加上標(biāo)簽,可以看到第一個(gè)高電平是0.323us,這就是我們單片機(jī)里發(fā)的高電平的8位二進(jìn)制顏色的第一位顏色的波形表現(xiàn),00011101就是我們第一個(gè)燈的綠色數(shù)值。

我們把波形縮小一點(diǎn)看下全部的波形。前8個(gè)第一組波形就是綠色G,第二組就是紅色R,第三組就是藍(lán)色B。

然后我們來看看第一個(gè)WS2812轉(zhuǎn)發(fā)給第2個(gè)的波形,可以看到只過了150ns,第二個(gè)WS2812就收到了轉(zhuǎn)發(fā)的波形信號了!真的很快了。

以上就是我們使用LOTO虛擬示波器對WS2812B-4的波形分析啦。如果沒有示波器,只能在單片機(jī)里盲目的調(diào)節(jié)頻率來適配WS2812的數(shù)據(jù)。而有了LOTO示波器就方便多了,不知道你有沒有感覺到示波器的方便呢。