本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287670_1_1.html
演示视频(开发板体验视频,详见作者原文链接内容)
而在DFRobot Beetle ESP32-C3的Arduino编程中,得益于Arduino IDE强大的扩展功能,我们可以用第三方的扩展库,来很方便的控制WS2812B。
在这个分享中,使用的是Adafruit_NeoPixel,关于其详细资料,可以查看官方页面:Adafruit NeoPixel Library
WS2812B炫彩LED可以很灵活的组成各种实际所需要的形状,如条带状、环形、点阵,单颗也可以使用。
我这次所使用的,是一块8*8点阵的WS2812B炫彩LED点阵板:
背面结构如下:
WS2812B炫彩LED很神奇,不管是1颗LED的控制,还是上千颗LED的控制,都只需要1根数据线即可,也就是上面板子背面的DIN。
多块这样的单体,还能够连接起来,前者的DOUT,连接到后者的DIN。实际上,相邻的两颗之间,也是这么连接的。
这款8*8的点阵板,每一颗灯珠都是可以单独控制的,所以有先后顺序,按照下面的顺序进行控制。
通过1根线,发送控制数据给WS2812B,需要较高的数据发送速度,所以通常使用SPI接口发送。
查看DFRobot Beetle ESP32-C3的官方资料,了解引脚的具体定义情况:
通过上图,可以了解到,D6可复用为SPI的MOSI,用于发送数据,因此,可以将该引脚与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的时候,如果是单颗的,使用开发板自身供电,没有问题。如果使用多颗,则一定要使用专门的外接电源。
在我的这个实例中,我使用了一个USB2TTL的电源引脚,来为WS2812B点阵供电。
最终,具体的连线如下:
做好以上连线后,就可以使用Arduino IDE进行编程了。
在具体编程之前,需要现在Arduino IDE中安装Adafruit NeoPixel。
在Arduino IDE的库管理界面中,搜索Adafruit NeoPixel并安装如图所示的扩展库即可:
在了解了 Adafruit NeoPixel 的具体使用后,编写如下的程序:
代码文件:(源码下载文件,见作者原文)
代码展示:
编写好代码,按照以下参数设置,编译下载,就能看到效果:
在上述代码中,包含了如下三个部分的内容:
- 串口调试信息输出:使用较为简单,不详细说明,可以自己查看Arduino资料了解
- 控制板载LED:端口为D10,根据idx奇偶点亮或者熄灭
- Adafruit NeoPixel 控制WS2812B
Adafruit NeoPixel 部分的重点如下:
1. 初始化控制实例:
- Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800)
传入的参数为LED灯珠数,控制引脚,以及信息传输的频率(不用修改)。
8*8的点阵,灯珠数为64各。
根据前面了解DFRobot Beetle ESP32-C3的资料和连线,控制引脚为D6
2. 开始控制:
- pixels.begin();
3. 设置亮度:
- pixels.setBrightness(20);
最大值为255,也就是0xff,表示最亮。
4. 设置全部灯珠的颜色:
- pixels.fill(0x000000);
直接使用6位16进制数,每两位控制一个颜色,分别为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();
代码的整体逻辑结构,也相对比较简单,就是每次循环,先熄灭上一颗灯珠,然后点亮当前指向的灯珠,颜色使用了一定的随机。
显示完成后,指向下一颗灯珠;如果达到了最大值,则从0重新开始。
下载完成后,打开串口,也可以看到输出的调试信息:

具体的呈现效果,如视频所示。
如果你还会一些数学函数的话,那么可以用数学函数,生成心形图案的坐标,对照到8*8点阵上,那么就能在情人节,给你最心爱的Ta,表达心意了。当然,如果不会没关系,可以提前用纸对着8*8点阵,描绘心形图案,记录下对应的LED灯珠的位置,在点亮对应的灯珠也是可以的。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
Arduino
+关注
关注
190文章
6515浏览量
195977 -
ESP32
+关注
关注
24文章
1084浏览量
20862 -
DFRobot
+关注
关注
4文章
1164浏览量
11932
发布评论请先 登录
相关推荐
热点推荐
这块乐鑫科技ESP32-C3开发板太懂开发者了!双无线+全接口,不要太实用
设计之初就瞄准了开发过程中的这些痛点,让你能把更多精力放在创意实现上!性能足够能打,物联网应用无压力搭载乐鑫科技ESP32-C3芯片,采用RISC-V架构,最高主频
低成本开源!用乐鑫科技ESP32-S3开发板轻松驱动无刷电机,保姆级教程来了!
想用ESP32-S3开发板驱动无刷电机却不知从何下手?本教程将手把手教你完成从硬件连接到软件编程的全流程,无论你是新手还是有一定经验的开发者,都能轻松掌握!本教程代码已全部开源!后台私
ESP32-C3 mqtt操作实践
;
其中-t /topic/qos0表示需要往那个topic发送。
此时,可以看到开发板正常接受到了pc发过来的消息。
4.手机控制
此处只做局域网内的控制,也就是手机、电脑、esp32-
发表于 10-31 06:52
乐鑫科技ESP32-S3开发板配单色LED,竟能玩出这么多花样!代码开源,速来白嫖!
从闪烁到呼吸,从流水到追逐,一文掌握所有LED特效技巧本文将带领大家从零开始,使用ESP32-S3开发板实现多种单色LED效果控制。无论你是
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
以下是使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板的详细步骤指南:
一、准备工作
✅ 硬件需求:
项目
要求
发表于 10-16 12:41
ESP32-C3开发板全面支持小智AI!烧录实战指南来了!
本文将详细解析基于乐鑫ESP32-C3芯片的ZXAIEC43开发板烧录“小智”AI语音系统的全流程。该方案代码完全开源,支持深度定制开发,适用于智能玩具、潮玩手办及智能家居控制等多元场
《ESP32S3 Arduino开发指南》第二章 Arduino基础知识
周边资料,其中包括社区、驱动库以及示例代码等,如下图2.1.1所示: 图2.1.1 Arduino生态图 现今,Arduino开发板有很多,正点原子ESP32-S3
发表于 05-13 09:28
WS2812B on S32K144始终闪烁白色,即使没有数据也是如此,为什么?
我正在尝试控制WS2812B RGB LED使用型号 S32K144EVB-Q100.我的目标是发送GRB 数据使用 bit-banging onPTD0.但是,LED 始终闪烁白色
发表于 04-08 07:15
ESP32-C3:革新物联网应用的超高效能芯片,家电远程控制应用等
ESP32-C3是乐鑫科技推出的新一代RISC-V架构Wi-Fi & Bluetooth 5.0双模物联网芯片,专为智能家居、工业控制和消费电子产品设计,提供卓越的性能与极低的功耗
发表于 04-03 16:47
零知开源——使用 GPIO 模拟时序驱动 WS2812B LED 灯带
的控制。这种技术允许我们避开专用驱动库,直接与硬件进行交互,理解并掌握 WS2812B 的通信机制。 一、工具原料 电脑、Windows系统 零知增强版开发板 Micro-usb线 WS281
零知开源——使用 GPIO 模拟时序驱动 WS2812B LED 灯带
、Windows系统
零知增强版开发板
Micro-usb线
WS2812RGB灯 WS2812B 是一款内含控制器芯片的全彩 LED 灯珠
发表于 02-20 14:31
零知开源——玩转WS2812B灯条模块
上传到开发板中。
引用库文件WS2812B.h#include// 引入用于控制WS2812B LED灯带的库
#define NUM
发表于 02-19 17:25
零知开源——玩转WS2812B灯条模块
WS2812RGB灯带 通过零知标准开发板平台上驱动WS2812RGB灯珠,包括WS2812B的供电电压、接线和代码实现。通过创建延时函数和设置级联数据,实现对RGB灯珠的

【DFRobot Beetle ESP32-C3开发板试用体验】Arduino编程控制WS2812B炫彩LED
评论