【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程) 
  实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO 
  {花雕动手做}项目之十三:ESP32-S3 UNO读取ADXL345的加速度数据并控制WS2812 
  LED灯板的颜色变化 
 
实验开源代码 
 
			
			
			- /*
 -   【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
 -   实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
 -   {花雕动手做}项目之十三:ESP32-S3 UNO读取ADXL345的加速度数据并控制WS2812
 -   LED灯板的颜色变化
 - */
 - 
 - #include <Wire.h>
 - #include <Adafruit_Sensor.h>
 - #include <Adafruit_ADXL345_U.h>
 - #include <Adafruit_NeoPixel.h>
 - 
 - // 创建ADXL345对象
 - Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);
 - 
 - // 定义LED灯带
 - #define LED_PIN    2
 - #define LED_COUNT  64
 - Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
 - 
 - // 定义固定亮度值
 - #define BRIGHTNESS 55  // 亮度范围为0-255
 - 
 - void setup() {
 -   Serial.begin(115200);  // 初始化串口通信,波特率为115200
 -   Wire.begin(4, 5);  // 初始化I2C总线,设置SDA为GPIO4,SCL为GPIO5
 -   Serial.println(" ");
 -   Serial.println("ESP32-S3 UNO准备就绪");
 -   if (!accel.begin()) {
 -     Serial.println("无法找到ADXL345传感器");
 -     while (1);
 -   }
 -   Serial.println("ADXL345传感器初始化成功");
 -   // 设置测量范围
 -   accel.setRange(ADXL345_RANGE_16_G);
 -   // 初始化LED灯带
 -   strip.begin();
 -   strip.setBrightness(BRIGHTNESS);  // 设置固定亮度
 -   strip.show(); // 初始化所有像素为'关'
 - }
 - 
 - void loop() {
 -   sensors_event_t event;
 -   accel.getEvent(&event);
 - 
 -   // 根据加速度数据设置LED颜色
 -   int r = map(event.acceleration.x, -16, 16, 0, 255);
 -   int g = map(event.acceleration.y, -16, 16, 0, 255);
 -   int b = map(event.acceleration.z, -16, 16, 0, 255);
 - 
 -   // 增加颜色变化的灵敏度
 -   r = constrain( r, 0, 255);
 -   g = constrain( g, 0, 255);
 -   b = constrain( b, 0, 255);
 - 
 -   // 设置LED颜色
 -   for (int i = 0; i < LED_COUNT; i++) {
 -     strip.setPixelColor(i, strip.Color(r, g, b));
 -   }
 -   strip.show();
 - 
 -   // 串口输出红、绿、蓝和亮度值
 -   Serial.print("红: ");
 -   Serial.print(r);
 -   Serial.print(" 绿: ");
 -   Serial.print(g);
 -   Serial.print(" 蓝: ");
 -   Serial.print(b);
 -   Serial.print(" 亮度: ");
 -   Serial.println(BRIGHTNESS);
 - 
 -   delay(1000); // 延迟1000毫秒
 - }
 
  复制代码
  
 
 |