ESP8266 + ws2812 编写不定时的发射一个流水灯的代码
时间: 2024-03-09 20:49:36 浏览: 74
好的,以下是一个 ESP8266 + ws2812 发射一个流水灯的不定时代码:
```c++
#include <Adafruit_NeoPixel.h>
#define PIN 2 // ws2812 连接的引脚
// ws2812 灯珠数量
#define NUMPIXELS 16
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.begin();
}
void loop() {
// 随机生成一个颜色
uint32_t color = pixels.Color(random(0, 255), random(0, 255), random(0, 255));
// 循环移动灯光
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, color); // 设置当前灯光的颜色
pixels.show(); // 发送灯光数据到 ws2812
delay(random(50, 200)); // 延迟一定时间,控制灯光移动速度
pixels.setPixelColor(i, 0); // 关闭当前灯光
}
// 延迟一定时间后再次循环
delay(random(1000, 5000));
}
```
这个代码中,每隔不定时间会发射一个随机颜色的流水灯,每个灯光的停留时间和延迟时间也是随机的,可以通过修改 `delay()` 函数的参数来控制移动速度和发射频率。
阅读全文