本文來源電子發(fā)燒友社區(qū),作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287670_1_1.html
演示視頻(開發(fā)板體驗視頻,詳見作者原文鏈接內容)
而在DFRobot Beetle ESP32-C3的Arduino編程中,得益于Arduino IDE強大的擴展功能,我們可以用第三方的擴展庫,來很方便的控制WS2812B。
在這個分享中,使用的是Adafruit_NeoPixel,關于其詳細資料,可以查看官方頁面:Adafruit NeoPixel Library
WS2812B炫彩LED可以很靈活的組成各種實際所需要的形狀,如條帶狀、環(huán)形、點陣,單顆也可以使用。
我這次所使用的,是一塊8*8點陣的WS2812B炫彩LED點陣板:
背面結構如下:
WS2812B炫彩LED很神奇,不管是1顆LED的控制,還是上千顆LED的控制,都只需要1根數(shù)據(jù)線即可,也就是上面板子背面的DIN。
多塊這樣的單體,還能夠連接起來,前者的DOUT,連接到后者的DIN。實際上,相鄰的兩顆之間,也是這么連接的。
這款8*8的點陣板,每一顆燈珠都是可以單獨控制的,所以有先后順序,按照下面的順序進行控制。
通過1根線,發(fā)送控制數(shù)據(jù)給WS2812B,需要較高的數(shù)據(jù)發(fā)送速度,所以通常使用SPI接口發(fā)送。
查看DFRobot Beetle ESP32-C3的官方資料,了解引腳的具體定義情況:
通過上圖,可以了解到,D6可復用為SPI的MOSI,用于發(fā)送數(shù)據(jù),因此,可以將該引腳與WS2812B點陣板的DIN連接。
另外,WS2812B的工作電壓為5V,而每個紅色、綠色和藍色LED需要大約20mA,或者在全亮度下每個LED總共60mA,如果8*8共64顆燈珠都點到最亮,那將需要60*64=3840A的電流,這樣嚴重超過DFRobot Beetle ESP32-C3的輸出電流,產生不可預料的結果。因為 DFRobot Beetle ESP32-C3 的最大輸出電流為500 mA。
所以,使用WS2812B的時候,如果是單顆的,使用開發(fā)板自身供電,沒有問題。如果使用多顆,則一定要使用專門的外接電源。
在我的這個實例中,我使用了一個USB2TTL的電源引腳,來為WS2812B點陣供電。
最終,具體的連線如下:
做好以上連線后,就可以使用Arduino IDE進行編程了。
在具體編程之前,需要現(xiàn)在Arduino IDE中安裝Adafruit NeoPixel。
在Arduino IDE的庫管理界面中,搜索Adafruit NeoPixel并安裝如圖所示的擴展庫即可:
在了解了 Adafruit NeoPixel 的具體使用后,編寫如下的程序:
代碼文件:(源碼下載文件,見作者原文)
代碼展示:
編寫好代碼,按照以下參數(shù)設置,編譯下載,就能看到效果:
在上述代碼中,包含了如下三個部分的內容:
- 串口調試信息輸出:使用較為簡單,不詳細說明,可以自己查看Arduino資料了解
- 控制板載LED:端口為D10,根據(jù)idx奇偶點亮或者熄滅
- Adafruit NeoPixel 控制WS2812B
Adafruit NeoPixel 部分的重點如下:
1. 初始化控制實例:
- Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800)
傳入的參數(shù)為LED燈珠數(shù),控制引腳,以及信息傳輸?shù)念l率(不用修改)。
8*8的點陣,燈珠數(shù)為64各。
根據(jù)前面了解DFRobot Beetle ESP32-C3的資料和連線,控制引腳為D6
2. 開始控制:
- pixels.begin();
3. 設置亮度:
- pixels.setBrightness(20);
最大值為255,也就是0xff,表示最亮。
4. 設置全部燈珠的顏色:
- pixels.fill(0x000000);
直接使用6位16進制數(shù),每兩位控制一個顏色,分別為RGB。
當使用0x000000時,表示沒有顏色,也就是熄滅;
當使用0xFF0000是,表示紅色R最亮。
此處的fill,表示控制所有的燈珠,而不是控制單個。
5. 清除當前燈珠顏色設置:
- pixels.clear();
6. 設置單顆燈珠的顏色:
- pixels.setPixelColor(idx, pixels.Color(0, 0, 0));
idx表示第幾顆燈珠,從0開始;因為是8*8的點陣,所以最大值為63
而pixels.Color,分別則設置RGB三種顏色,最大為255,也就是0xff。
7. 讓燈珠真正顯示生效:
- pixels.show();
代碼的整體邏輯結構,也相對比較簡單,就是每次循環(huán),先熄滅上一顆燈珠,然后點亮當前指向的燈珠,顏色使用了一定的隨機。
顯示完成后,指向下一顆燈珠;如果達到了最大值,則從0重新開始。
下載完成后,打開串口,也可以看到輸出的調試信息:

具體的呈現(xiàn)效果,如視頻所示。
如果你還會一些數(shù)學函數(shù)的話,那么可以用數(shù)學函數(shù),生成心形圖案的坐標,對照到8*8點陣上,那么就能在情人節(jié),給你最心愛的Ta,表達心意了。當然,如果不會沒關系,可以提前用紙對著8*8點陣,描繪心形圖案,記錄下對應的LED燈珠的位置,在點亮對應的燈珠也是可以的。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Arduino
+關注
關注
190文章
6526瀏覽量
196930 -
ESP32
+關注
關注
26文章
1195瀏覽量
21698 -
DFRobot
+關注
關注
4文章
1164瀏覽量
12414
發(fā)布評論請先 登錄
相關推薦
熱點推薦
在昉·星光開發(fā)板上控制WS2812B炫彩燈環(huán)
本次課程為昉·星光開發(fā)板IoT開發(fā)系列課程的第十四講,將帶領同學們在昉·星光開發(fā)板上,控制WS2812B
發(fā)表于 03-06 06:15
【ESP32-C3】WT9932C3-TINY開發(fā)板上手指南
簡介1開發(fā)板介紹WT9932C3-TINY是一款專為輕量化物聯(lián)網開發(fā)設計的迷你開發(fā)板,核心基于樂鑫ESP32-C3芯片,搭載啟明云端WT01
【ESP32-C3】WT9932C3-TINY開發(fā)板規(guī)格書
開發(fā)板簡介1開發(fā)板介紹WT9932C3-TINY是一款專為輕量化物聯(lián)網開發(fā)設計的迷你開發(fā)板,核心基于樂鑫
ESP32-C3迷你開發(fā)板,支持Wi-Fi+BLE雙模,即插即用設計!
如果你正在為智能家居、工業(yè)控制或低功耗物聯(lián)網終端項目尋找一款性能可靠、開發(fā)便捷且接口完備的核心模塊,不妨直接關注這款WT9932C3-TINY開發(fā)板——它基于成熟的樂鑫科技
MCU 開發(fā)板大比拼:STM32、ESP32、Arduino、樹莓派誰更強?
嵌入式開發(fā)板琳瑯滿目,STM32、ESP32、Arduino、RaspberryPi各有特色。新手容易糾結:到底哪塊板適合我的項目?本文整理了一份開
ESP32-P4全功能開發(fā)板和ESP32-P4-TINY開發(fā)板該怎么選?看這篇就夠了!
啟明云端基于樂鑫科技ESP32-P4芯片設計了多款開發(fā)板,這些開發(fā)板有什么區(qū)別?基于應用場景如何選擇?本期,我們聚焦兩款代表性產品:WT99P4C5-S1
這塊樂鑫科技ESP32-C3開發(fā)板太懂開發(fā)者了!雙無線+全接口,不要太實用
設計之初就瞄準了開發(fā)過程中的這些痛點,讓你能把更多精力放在創(chuàng)意實現(xiàn)上!性能足夠能打,物聯(lián)網應用無壓力搭載樂鑫科技ESP32-C3芯片,采用RISC-V架構,最高主頻
低成本開源!用樂鑫科技ESP32-S3開發(fā)板輕松驅動無刷電機,保姆級教程來了!
想用ESP32-S3開發(fā)板驅動無刷電機卻不知從何下手?本教程將手把手教你完成從硬件連接到軟件編程的全流程,無論你是新手還是有一定經驗的開發(fā)者,都能輕松掌握!本教程代碼已全部開源!后臺私
ESP32-C3 mqtt操作實踐
;
其中-t /topic/qos0表示需要往那個topic發(fā)送。
此時,可以看到開發(fā)板正常接受到了pc發(fā)過來的消息。
4.手機控制
此處只做局域網內的控制,也就是手機、電腦、esp32-
發(fā)表于 10-31 06:52
ESP8266和ESP32開發(fā)板常見的2種下載方式
ESP8266全IO口引出,直接下載無需復位!
ESP32功能框圖
基于arduino的ESP32/ESP8266
發(fā)表于 10-24 18:04
樂鑫科技ESP32-S3開發(fā)板配單色LED,竟能玩出這么多花樣!代碼開源,速來白嫖!
從閃爍到呼吸,從流水到追逐,一文掌握所有LED特效技巧本文將帶領大家從零開始,使用ESP32-S3開發(fā)板實現(xiàn)多種單色LED效果控制。無論你是
ESP32-C3開發(fā)板全面支持小智AI!燒錄實戰(zhàn)指南來了!
本文將詳細解析基于樂鑫ESP32-C3芯片的ZXAIEC43開發(fā)板燒錄“小智”AI語音系統(tǒng)的全流程。該方案代碼完全開源,支持深度定制開發(fā),適用于智能玩具、潮玩手辦及智能家居控制等多元場
WS2812B on S32K144始終閃爍白色,即使沒有數(shù)據(jù)也是如此,為什么?
我正在嘗試控制WS2812B RGB LED使用型號 S32K144EVB-Q100.我的目標是發(fā)送GRB 數(shù)據(jù)使用 bit-banging onPTD0.但是,LED 始終閃爍白色
發(fā)表于 04-08 07:15
ESP32-C3:革新物聯(lián)網應用的超高效能芯片,家電遠程控制應用等
ESP32-C3是樂鑫科技推出的新一代RISC-V架構Wi-Fi & Bluetooth 5.0雙模物聯(lián)網芯片,專為智能家居、工業(yè)控制和消費電子產品設計,提供卓越的性能與極低的功耗
發(fā)表于 04-03 16:47
【DFRobot Beetle ESP32-C3開發(fā)板試用體驗】Arduino編程控制WS2812B炫彩LED
評論