本篇介紹ESP8266使用NeoPixel庫來驅(qū)動IOT Kit板載WS2812彩燈。
1. WS2812彩燈介紹
WS2812是一個集控制電路與發(fā)光電路于一體的智能外控LED光源,外型與5050LED燈珠相同,每個燈珠都是一個像素點。像素點內(nèi)包含數(shù)字接口、數(shù)據(jù)鎖存、信號整形放大驅(qū)動電路,還包含高精度的內(nèi)部振蕩器和12V高壓可編程定電流控制部分。
數(shù)據(jù)協(xié)議采用單線歸零碼的通訊方式,像素點在上電復(fù)位以后,DIN端接受從控制器傳輸過來的數(shù)據(jù),首先送過來的24bit數(shù)據(jù)被第一個像素點提取后,送到像素點內(nèi)部的數(shù)據(jù)鎖存器,剩余的數(shù)據(jù)經(jīng)過內(nèi)部整形處理電路整形放大后通過DO端口開始轉(zhuǎn)發(fā)輸出給下一個級聯(lián)的像素點,每經(jīng)過一個像素點的傳輸,信號減少24bit。像素點采用自動整形轉(zhuǎn)發(fā)技術(shù),使得該像素點的級聯(lián)個數(shù)不受信號傳送的限制,僅僅受限信號傳輸速度要求。
時序波形
按照數(shù)據(jù)傳輸協(xié)議即可對WS2812進行驅(qū)動,當(dāng)然對于WS2812有許多開源的驅(qū)動庫,下面進行Adafruit_NeoPixel驅(qū)動庫的安裝。
2. 安裝驅(qū)動庫
在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,查找Adafruit_NeoPixel庫,選擇最新版本,點擊安裝。
查找?guī)?/p>
在彈出的對話框中選擇Install all,安裝全部的關(guān)聯(lián)庫。
安裝關(guān)聯(lián)庫
3. 硬件連接及程序下載
在IOT Kit上,WS2812通過跳線帽連接到ESP8266的GPIO0。
硬件連接
在Arduino IDE中新建sketch,拷貝如下代碼保存并下載到開發(fā)板。
/*
* ws2812b
* ESP8266驅(qū)動WS2812彩燈
* 板載接口GPIO0
*/
#include
上傳成功后,板載WS2812彩燈將紅綠藍交替顯示。
實驗現(xiàn)象
4.常用庫函數(shù)介紹
下面對Adafruit_NeoPixel庫常用函數(shù)進行介紹:
- Adafruit_NeoPixel led(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800):創(chuàng)建對象,包括信號引腳以及像素點數(shù)量,最后一個參數(shù)是像素類型標(biāo)志,一般默認即可。
- led.begin():對象初始化。
- led.show():顯示刷新,每次設(shè)置完畢必須調(diào)用此函數(shù)。
- led.clean():將顏色值清除到0。
- led.setBrightness():設(shè)置亮度。范圍0~255。
- led.setPixelColor():設(shè)置顏色值,第一個參數(shù)為像素點序號。
- led.Color():將RGB單獨顏色值打包成32位顏色值。
-
led
+關(guān)注
關(guān)注
242文章
23286瀏覽量
661113 -
彩燈
+關(guān)注
關(guān)注
4文章
65瀏覽量
33740 -
驅(qū)動電路
+關(guān)注
關(guān)注
153文章
1530瀏覽量
108546 -
Arduino
+關(guān)注
關(guān)注
188文章
6470瀏覽量
187180 -
ESP8266
+關(guān)注
關(guān)注
50文章
962瀏覽量
45064
發(fā)布評論請先 登錄
相關(guān)推薦
評論