【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 862|回复: 22

【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏

[复制链接]
发表于 2022-7-8 15:43 | 显示全部楼层 |阅读模式
本帖最后由 eagler8 于 2022-7-9 04:46 编辑

实验使用的硬件,软件平台使用Arduino IDE(见《【花雕体验】15 尝试搭建Beetle ESP32 C3之Arduino开发环境》)

17.2-19.jpg

 楼主| 发表于 2022-7-8 16:01 | 显示全部楼层
本帖最后由 eagler8 于 2022-7-8 16:13 编辑

WS2812B
是一个集控制电路与发光电路于一体的智能外控LED光源。其外型与一个5050LED灯珠相同,每个元件即为一个像素点。像素点内部包含了智能数字接口数据锁存信号整形放大驱动电路,还包含有高精度的内部振荡器和12V高压可编程定电流控制部分,有效保证了像素点光的颜色高度一致。数据协议采用单线归零码的通讯方式,像素点在上电复位以后,DIN端接受从控制器传输过来的数据,首先送过来的24bit数据被第一个像素点提取后,送到像素点内部的数据锁存器,剩余的数据经过内部整形处理电路整形放大后通过DO端口开始转发输出给下一个级联的像素点,每经过一个像素点的传输,信号减少24bit。像素点采用自动整形转发技术,使得该像素点的级联个数不受信号传送的限制,仅仅受限信号传输速度要求。


00-=-.jpg
 楼主| 发表于 2022-7-8 16:09 | 显示全部楼层
主要特点
●     智能反接保护,电源反接不会损坏IC。
●     IC控制电路与LED点光源公用一个电源。
●     控制电路与RGB芯片集成在一个5050封装的元器件中,构成一个完整的外控像素点。
●     内置信号整形电路,任何一个像素点收到信号后经过波形整形再输出,保证线路波形畸变不会累加。
●     内置上电复位和掉电复位电路。
●     每个像素点的三基色颜色可实现256级亮度显示,完成16777216种颜色的全真色彩显示,扫描频率不低于400Hz/s。
●     串行级联接口,能通过一根信号线完成数据的接收与解码。
●     任意两点传传输距离在不超过5米时无需增加任何电路。
●     当刷新速率30帧/秒时,级联数不小于1024点。
●      数据发送速度可达800Kbps。
●      光的颜色高度一致,性价比高。


0-.jpg
 楼主| 发表于 2022-7-8 16:15 | 显示全部楼层
WS2812B典型应用电路

z.jpg

 楼主| 发表于 2022-7-8 16:36 | 显示全部楼层
Beetle ESP32-C3是一款基于ESP32-C3 RISC-V 32位单核处理器芯片的主控板,专为物联网 (IoT) 设备而设计。Beetle ESP32-C3在仅硬币大小的体积上引出了多达13个IO口,制作项目时不必再担心IO口不够用的情况,同时主控板还集成锂电池充电管理功能,可以直接连接锂电池,不需要外围模块,同时保证应用体积和安全性。Beetle ESP32-C3配套的扩展板在未增加太大体积的情况下,引出了更多的电源,在制作项目时焊接更加方便,板载的GDI显示屏接口解决使用屏幕时的接线烦恼。实验使用的引脚为A0和D6。


17.2-06--.jpg
 楼主| 发表于 2022-7-8 16:44 | 显示全部楼层
8X32灯板采用独立电源供电,这里使用华为5V2A手机电源

17.2-20.jpg

 楼主| 发表于 2022-7-8 17:04 | 显示全部楼层
打开Arduino IDE——工具——管理库,搜索Adafruit NeoPixel,并安装驱动库

17.2-21.jpg




 楼主| 发表于 2022-7-8 19:00 | 显示全部楼层
  【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812灯板
    实验程序一:逐一点亮256个绿色LED灯

  1. /*
  2.   【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812灯板
  3.   实验程序一:逐一点亮256个绿色LED灯
  4. */

  5. #include <Adafruit_NeoPixel.h>

  6. #define PIN            6
  7. #define NUMPIXELS      256

  8. Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
  9. int delayval = 60;

  10. void setup() {
  11.   pixels.begin();
  12. }

  13. void loop() {
  14.   for (int i = 0; i < NUMPIXELS; i++) {
  15.     pixels.setPixelColor(i, pixels.Color(0, 30, 0));
  16.     pixels.show();
  17.     delay(delayval);
  18.   }
  19. }
复制代码


 楼主| 发表于 2022-7-8 19:03 | 显示全部楼层
实验场景图


17.2-22.jpg
 楼主| 发表于 2022-7-8 19:08 | 显示全部楼层
动态图

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:40 , Processed in 0.204284 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表