【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
{花雕动手做}项目之十五:ESP32-S3 UNO根据ADXL345的XY轴动态改变
64位WS2812灯屏的颜色
实验开源代码
- /*
- 【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
- 实验二百三十三:ESP32-S3 UNO开发板 双核16M+8M+Wi-Fi+蓝牙5.0+45个GPIO
- {花雕动手做}项目之十五:ESP32-S3 UNO根据ADXL345的XY轴动态改变
- 64位WS2812灯屏的颜色
- */
-
- #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 20 // 亮度范围为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颜色
- uint32_t color;
- if (event.acceleration.x > 0) {
- color = strip.Color(255, 0, 0); // 红色
- } else {
- color = strip.Color(0, 0, 255); // 蓝色
- }
-
- if (event.acceleration.y > 0) {
- color = strip.Color(0, 255, 0); // 绿色
- } else {
- color = strip.Color(128, 0, 128); // 紫色
- }
-
- // 设置所有LED颜色
- for (int i = 0; i < LED_COUNT; i++) {
- strip.setPixelColor(i, color);
- }
- strip.show();
-
- // 串口输出加速度和颜色信息
- Serial.print("X: ");
- Serial.print(event.acceleration.x);
- Serial.print(" Y: ");
- Serial.print(event.acceleration.y);
- Serial.print(" 颜色: ");
- Serial.println(color, HEX);
-
- delay(500); // 延迟500毫秒
- }
复制代码
|