273浏览
查看: 273|回复: 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 10:50:33

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

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

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 10:52:05

【花雕学编程】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 10:55:01

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

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

实验开源代码

  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
  3.   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
  4.   {花雕动手做}项目之十三:ESP32-S3 UNO读取ADXL345的加速度数据并控制WS2812
  5.   LED灯板的颜色变化
  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 55  // 亮度范围为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.   int r = map(event.acceleration.x, -16, 16, 0, 255);
  41.   int g = map(event.acceleration.y, -16, 16, 0, 255);
  42.   int b = map(event.acceleration.z, -16, 16, 0, 255);
  43.   // 增加颜色变化的灵敏度
  44.   r = constrain( r, 0, 255);
  45.   g = constrain( g, 0, 255);
  46.   b = constrain( b, 0, 255);
  47.   // 设置LED颜色
  48.   for (int i = 0; i < LED_COUNT; i++) {
  49.     strip.setPixelColor(i, strip.Color(r, g, b));
  50.   }
  51.   strip.show();
  52.   // 串口输出红、绿、蓝和亮度值
  53.   Serial.print("红: ");
  54.   Serial.print(r);
  55.   Serial.print(" 绿: ");
  56.   Serial.print(g);
  57.   Serial.print(" 蓝: ");
  58.   Serial.print(b);
  59.   Serial.print(" 亮度: ");
  60.   Serial.println(BRIGHTNESS);
  61.   delay(1000); // 延迟1000毫秒
  62. }
复制代码


回复

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 10:56:42

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

实验串口返回情况

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

使用道具 举报

驴友花雕  中级技神
 楼主|

发表于 2024-10-6 10:59:25

【花雕学编程】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