313浏览
查看: 313|回复: 7

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

[复制链接]
【花雕学编程】Arduino动手做(233)---ADXL345控制WS2812灯珠图1

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灯珠图2

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 11:35:26

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

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 11:36:37

【花雕学编程】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 12:03:25

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

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

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  4.   {花雕动手做}项目之十四:ESP32-S3 UNO读取ADXL345的XY轴控制
  5.   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. void setup() {
  18.   Serial.begin(115200);  // 初始化串口通信,波特率为115200
  19.   Wire.begin(4, 5);  // 初始化I2C总线,设置SDA为GPIO4,SCL为GPIO5
  20.   Serial.println(" ");
  21.   Serial.println("ESP32-S3 UNO准备就绪");
  22.   if (!accel.begin()) {
  23.     Serial.println("无法找到ADXL345传感器");
  24.     while (1);
  25.   }
  26.   Serial.println("ADXL345传感器初始化成功");
  27.   // 设置测量范围
  28.   accel.setRange(ADXL345_RANGE_16_G);
  29.   // 初始化LED灯带
  30.   strip.begin();
  31.   strip.setBrightness(255);  // 设置固定亮度
  32.   strip.show(); // 初始化所有像素为'关'
  33. }
  34. void loop() {
  35.   sensors_event_t event;
  36.   accel.getEvent(&event);
  37.   // 根据加速度数据计算LED位置
  38.   int x = map(event.acceleration.x, -16, 16, 0, 7);
  39.   int y = map(event.acceleration.y, -16, 16, 0, 7);
  40.   // 计算LED在64位屏幕上的位置
  41.   int ledIndex = y * 8 + x;
  42.   // 清除所有LED
  43.   strip.clear();
  44.   // 设置目标LED颜色
  45.   strip.setPixelColor(ledIndex, strip.Color(0, 255, 0)); // 红色
  46.   // 显示LED
  47.   strip.show();
  48.   // 串口输出LED位置
  49.   Serial.print("X: ");
  50.   Serial.print(x);
  51.   Serial.print(" Y: ");
  52.   Serial.print(y);
  53.   Serial.print(" LED Index: ");
  54.   Serial.println(ledIndex);
  55.   delay(500); // 延迟100毫秒
  56. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 12:06:00

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

实验串口返回情况

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 12:07:21

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

实验场景图

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 12:52:25

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

实验记录视频

【【花雕学编程】Arduino动手做(233)---ESP32-S3 UNO读取ADXL345的XY轴控制WS2812灯屏的单个灯珠】

https://www.bilibili.com/video/BV11f1eY8E43/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987






回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 13:07:04

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

代码要点解读
  • 初始化ADXL345传感器:在setup()函数中,使用accel.begin()初始化ADXL345传感器,并设置测量范围为±16G。
  • 初始化LED灯带:使用strip.begin()初始化WS2812 LED灯带,并通过strip.setBrightness(128)设置固定亮度。
  • 读取加速度数据:在loop()函数中,通过accel.getEvent(&event)读取ADXL345传感器的加速度数据。
  • 映射加速度数据到LED位置:使用map()函数将加速度数据从-16到16映射到0到7的范围,以便用于计算LED在8x8矩阵中的位置。
  • 设置LED颜色:清除所有LED后,使用strip.setPixelColor(ledIndex, strip.Color(255, 0, 0))设置目标LED的颜色为红色。

回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail