【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏
本帖最后由 eagler8 于 2022-7-9 04:46 编辑实验使用的硬件,软件平台使用Arduino IDE(见《【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境》)
本帖最后由 eagler8 于 2022-7-8 16:13 编辑
WS2812B
是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。
主要特点
● 智能反接保护,电源反接不会损坏IC。
● IC控制电路与LED点光源公用一个电源。
● 控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。
● 内置信号整形电路,任何一个像素点收到信号后经过波形整形再输出,保证线路波形畸变不会累加。
● 内置上电复位和掉电复位电路。
● 每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s。
● 串行级联接口,能通过一根信号线完成数据的接收与解码。
● 任意两点传传输距离在不超过5米时无需增加任何电路。
● 当刷新速率30帧/秒时,级联数不小于1024点。
● 数据发送速度可达800Kbps。
● 光的颜色高度一致,性价比高。
WS2812B典型应用电路
Beetle ESP32-C3是一款基于ESP32-C3 RISC-V 32位单核处理器芯片的主控板,专为物联网 (IoT) 设备而设计。Beetle ESP32-C3在仅硬币大小的体积上引出了多达13个IO口,制作项目时不必再担心IO口不够用的情况,同时主控板还集成锂电池充电管理功能,可以直接连接锂电池,不需要外围模块,同时保证应用体积和安全性。Beetle ESP32-C3配套的扩展板在未增加太大体积的情况下,引出了更多的电源,在制作项目时焊接更加方便,板载的GDI显示屏接口解决使用屏幕时的接线烦恼。实验使用的引脚为A0和D6。
8X32灯板采用独立电源供电,这里使用华为5V2A手机电源
打开Arduino IDE——工具——管理库,搜索Adafruit NeoPixel,并安装驱动库
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812灯板
实验程序一:逐一点亮256个绿色LED灯
/*
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812灯板
实验程序一:逐一点亮256个绿色LED灯
*/
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 256
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int delayval = 60;
void setup() {
pixels.begin();
}
void loop() {
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(0, 30, 0));
pixels.show();
delay(delayval);
}
}
实验场景图
动态图 http://bbs.eeworld.com.cn/data/attachment/forum/202207/08/190810vbrkt8zd1u5588ib.gif