ESP8266 + ws2812 编写不定时的发射多个流水灯的代码
时间: 2024-03-09 07:50:02 浏览: 215
流水灯的编程
好的,这里是一个简单的 ESP8266 + WS2812 的流水灯代码示例,你可以在其中修改参数来实现不定时的发射多个流水灯效果。
```cpp
#include <Adafruit_NeoPixel.h>
#define PIN 2 // WS2812控制引脚
#define NUM_LEDS 16 // 灯珠数量
// 初始化一个 NeoPixel 对象
Adafruit_NeoPixel strip = Adafruit_NeoPixel(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin(); // 初始化 NeoPixel 对象
strip.show(); // 将所有 LED 灯珠关闭
}
void loop() {
// 随机生成一些流水灯效果
for (int i = 0; i < 5; i++) {
int r = random(0, 255);
int g = random(0, 255);
int b = random(0, 255);
// 从左往右流水灯效果
for (int j = 0; j < NUM_LEDS; j++) {
strip.setPixelColor(j, r, g, b); // 设置灯珠颜色
strip.show(); // 刷新灯珠
delay(50); // 等待时间
}
// 从右往左流水灯效果
for (int j = NUM_LEDS - 1; j >= 0; j--) {
strip.setPixelColor(j, r, g, b); // 设置灯珠颜色
strip.show(); // 刷新灯珠
delay(50); // 等待时间
}
}
// 停留一段时间后再次生成流水灯效果
delay(random(500, 3000)); // 等待时间
}
```
这个代码会随机生成 5 次流水灯效果,每次效果都会从左往右和从右往左交替显示,然后会停留一段时间后再次生成新的流水灯效果。你可以根据需要修改生成流水灯效果的次数、颜色以及等待时间等参数。
阅读全文