本篇介紹ESP8266使用NeoPixel庫來驅動IOT Kit板載WS2812彩燈。
1. WS2812彩燈介紹
WS2812是一個集控制電路與發光電路于一體的智能外控LED光源,外型與5050LED燈珠相同,每個燈珠都是一個像素點。像素點內包含數字接口、數據鎖存、信號整形放大驅動電路,還包含高精度的內部振蕩器和12V高壓可編程定電流控制部分。
數據協議采用單線歸零碼的通訊方式,像素點在上電復位以后,DIN端接受從控制器傳輸過來的數據,首先送過來的24bit數據被第一個像素點提取后,送到像素點內部的數據鎖存器,剩余的數據經過內部整形處理電路整形放大后通過DO端口開始轉發輸出給下一個級聯的像素點,每經過一個像素點的傳輸,信號減少24bit。像素點采用自動整形轉發技術,使得該像素點的級聯個數不受信號傳送的限制,僅僅受限信號傳輸速度要求。
時序波形
按照數據傳輸協議即可對WS2812進行驅動,當然對于WS2812有許多開源的驅動庫,下面進行Adafruit_NeoPixel驅動庫的安裝。
2. 安裝驅動庫
在Arduino IDE中點擊「項目」—「加載庫」—「管理庫」,查找Adafruit_NeoPixel庫,選擇最新版本,點擊安裝。
查找庫
在彈出的對話框中選擇Install all,安裝全部的關聯庫。
安裝關聯庫
3. 硬件連接及程序下載
在IOT Kit上,WS2812通過跳線帽連接到ESP8266的GPIO0。
硬件連接
在Arduino IDE中新建sketch,拷貝如下代碼保存并下載到開發板。
/*
* ws2812b
* ESP8266驅動WS2812彩燈
* 板載接口GPIO0
*/
#include
上傳成功后,板載WS2812彩燈將紅綠藍交替顯示。
實驗現象
4.常用庫函數介紹
下面對Adafruit_NeoPixel庫常用函數進行介紹:
- Adafruit_NeoPixel led(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800):創建對象,包括信號引腳以及像素點數量,最后一個參數是像素類型標志,一般默認即可。
- led.begin():對象初始化。
- led.show():顯示刷新,每次設置完畢必須調用此函數。
- led.clean():將顏色值清除到0。
- led.setBrightness():設置亮度。范圍0~255。
- led.setPixelColor():設置顏色值,第一個參數為像素點序號。
- led.Color():將RGB單獨顏色值打包成32位顏色值。
-
led
+關注
關注
242文章
23691瀏覽量
670817 -
彩燈
+關注
關注
4文章
67瀏覽量
34451 -
驅動電路
+關注
關注
155文章
1578瀏覽量
109585 -
Arduino
+關注
關注
188文章
6490瀏覽量
190075 -
ESP8266
+關注
關注
51文章
965瀏覽量
46867
發布評論請先 登錄
使用ESP8266驅動WS2812B型RGB LED智能燈制作分享
如何用ATtiny85控制WS2812燈珠
【BPI-Pico-RP2040 開發板】Banana BPI-Pico-RP2040 驅動WS2812 彩燈
Linklt ONE開發板如何利用Adafruit_NeoPixel庫驅動WS2812彩燈?
利用ESP8266 WiFi模塊打造科進行遙控的圣誕之星
WS2812驅動的總結和時序的詳細資料分析

如何使用智能手機控制WS2812吸頂燈

STM32使用LL庫PWM的DMA模式驅動ws2812

STM32F103C8T6+PWM+DMA驅動 WS2812燈帶

PWM+DMA 驅動 WS2812

最簡單DIY基于ESP8266的智能彩燈②(在網頁用按鍵和滑動條控制RGB燈)

帶有ESP8266和WS2812BLED的3d可打印wifi情緒燈

ESP8266 Art Net DMX轉WS2812開源

評論