296浏览
查看: 296|回复: 5

[项目] 【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

[复制链接]
【花雕学编程】Arduino动手做(233)---ADXL345控制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)---ADXL345控制WS2812满屏图1

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 14:12:46

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图1

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图2
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 14:14:31

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

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

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图1

回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 14:16:34

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

  【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  {花雕动手做}项目之十五:ESP32-S3 UNO根据ADXL345的XY轴动态改变
  64位WS2812灯屏的颜色

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  4.   {花雕动手做}项目之十五:ESP32-S3 UNO根据ADXL345的XY轴动态改变
  5.   64位WS2812灯屏的颜色
  6. */
  7. #include <Wire.h>
  8. #include <Adafruit_Sensor.h>
  9. #include <Adafruit_ADXL345_U.h>
  10. #include <Adafruit_NeoPixel.h>
  11. // 创建ADXL345对象
  12. Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
  13. // 定义LED灯带
  14. #define LED_PIN    2
  15. #define LED_COUNT  64
  16. Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
  17. // 定义固定亮度值
  18. #define BRIGHTNESS 20  // 亮度范围为0-255
  19. void setup() {
  20.   Serial.begin(115200);  // 初始化串口通信,波特率为115200
  21.   Wire.begin(4, 5);  // 初始化I2C总线,设置SDA为GPIO4,SCL为GPIO5
  22.   Serial.println(" ");
  23.   Serial.println("ESP32-S3 UNO准备就绪");
  24.   if (!accel.begin()) {
  25.     Serial.println("无法找到ADXL345传感器");
  26.     while (1);
  27.   }
  28.   Serial.println("ADXL345传感器初始化成功");
  29.   // 设置测量范围
  30.   accel.setRange(ADXL345_RANGE_16_G);
  31.   // 初始化LED灯带
  32.   strip.begin();
  33.   strip.setBrightness(BRIGHTNESS);  // 设置固定亮度
  34.   strip.show(); // 初始化所有像素为'关'
  35. }
  36. void loop() {
  37.   sensors_event_t event;
  38.   accel.getEvent(&event);
  39.   // 根据加速度数据设置LED颜色
  40.   uint32_t color;
  41.   if (event.acceleration.x > 0) {
  42.     color = strip.Color(255, 0, 0); // 红色
  43.   } else {
  44.     color = strip.Color(0, 0, 255); // 蓝色
  45.   }
  46.   if (event.acceleration.y > 0) {
  47.     color = strip.Color(0, 255, 0); // 绿色
  48.   } else {
  49.     color = strip.Color(128, 0, 128); // 紫色
  50.   }
  51.   // 设置所有LED颜色
  52.   for (int i = 0; i < LED_COUNT; i++) {
  53.     strip.setPixelColor(i, color);
  54.   }
  55.   strip.show();
  56.   // 串口输出加速度和颜色信息
  57.   Serial.print("X: ");
  58.   Serial.print(event.acceleration.x);
  59.   Serial.print(" Y: ");
  60.   Serial.print(event.acceleration.y);
  61.   Serial.print(" 颜色: ");
  62.   Serial.println(color, HEX);
  63.   delay(500); // 延迟500毫秒
  64. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 14:18:19

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

实验串口返回情况

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图1
回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 14:21:35

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏

实验场景图

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图1

【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812满屏图2
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail