248浏览
查看: 248|回复: 6

[项目] 【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

[复制链接]
【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图2

ESP32-S3 UNO 开发板是基于 ESP32-S3-WROOM-1-N16R8 微控制器的扩展板,基于 Arduino 开发板架构。凭借 2.4GHz Wi-Fi 和集成蓝牙 5.0 等高级功能,它为开发各种项目提供了一个强大的平台。ESP32-S3 UNO 配备 16MB 闪存和 8MB RAM,特别适用于物联网 (IoT)、机器人和其他工程项目的复杂应用。该开发板支持 Python 和 C 等流行的编程语言,可以在 Arduino IDE 开发环境中轻松编程和使用。该板的高级功能,包括对多种通信协议的支持和高处理能力,使其成为专业工程师和开发人员的理想工具。

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:30:52

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

64位屏是一种由WS2812B LED灯珠组成的矩阵屏幕,每个灯珠都可以独立控制颜色和亮度。
1、结构与组成:
该屏幕由8行8列共64个WS2812B LED灯珠组成,每个灯珠都是一个独立的像素点。每个像素点内部集成了控制电路和RGB芯片,能够显示16777216种颜色。

2、控制方式:
WS2812B采用单线串行通信协议,通过一个数据线即可控制所有LED。每个像素点接收到数据后,会将数据传递给下一个像素点,形成级联结构。常用的控制器包括Arduino、ESP32等,配合相应的库文件(如Adafruit_NeoPixel或FastLED)可以轻松实现控制。

3、应用场景:
这种64位屏幕广泛应用于LED显示屏、广告牌、装饰照明、电子产品原型设计等领域。由于其高亮度和丰富的颜色显示能力,非常适合用于动态显示和视觉效果。

4、优点:
WS2812B LED具有低电压驱动、环保节能、亮度高、散射角度大、一致性好、超低功耗和超长寿命等优点。其控制电路集成在LED内部,使得电路设计更加简单,安装更加方便。

5、编程与控制:
使用Arduino或ESP32等微控制器,可以通过编程实现各种动态效果和动画。例如,可以使用setPixelColor函数设置每个像素的颜色,通过循环和延迟函数实现流水灯、彩虹效果等。

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:33:44

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

安装必要的库:
1、在Arduino IDE中安装Adafruit_Sensor和Adafruit_ADXL345_U库,用于ADXL345加速度计。
2、安装Adafruit_NeoPixel库,用于控制WS2812 LED灯带。

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:35:09

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  {花雕动手做}项目之十二:ESP32-S3 UNO串口输入三个角度值(红、绿、蓝)来
  控制WS2812 LED颜色

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  4.   {花雕动手做}项目之十二:ESP32-S3 UNO串口输入三个角度值(红、绿、蓝)来
  5.   控制WS2812 LED颜色
  6. */
  7. #include <Adafruit_NeoPixel.h>
  8. // 定义LED灯带
  9. #define LED_PIN    2
  10. #define LED_COUNT  64
  11. Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
  12. void setup() {
  13.   Serial.begin(115200);  // 初始化串口通信,波特率为115200
  14.   // 初始化LED灯带
  15.   strip.begin();
  16.   strip.show(); // 初始化所有像素为'关'
  17.   Serial.println("请输入三个角度值(0-255),分别对应红、绿、蓝三种颜色的强度:");
  18. }
  19. void loop() {
  20.   if (Serial.available() > 0) {
  21.     // 读取串口输入的三个角度值
  22.     int r = Serial.parseInt();
  23.     int g = Serial.parseInt();
  24.     int b = Serial.parseInt();
  25.     // 确保输入值在0到255之间
  26.     r = constrain(r, 0, 255);
  27.     g = constrain(g, 0, 255);
  28.     b = constrain(b, 0, 255);
  29.     // 设置LED颜色
  30.     for (int i = 0; i < LED_COUNT; i++) {
  31.       strip.setPixelColor(i, strip.Color(r, g, b));
  32.     }
  33.     strip.show();
  34.     Serial.print("设置颜色 - 红: ");
  35.     Serial.print(r);
  36.     Serial.print(" 绿: ");
  37.     Serial.print(g);
  38.     Serial.print(" 蓝: ");
  39.     Serial.println(b);
  40.   }
  41. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:41:28

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

实验串口返回情况

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:44:29

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

实验场景图

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 09:46:51

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图1

【花雕学编程】Arduino动手做(233)---串口控制WS2812颜色图2
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail