ws2812b绿色呼吸灯代码
时间: 2023-07-09 12:41:43 浏览: 101
WS2812B全彩LED灯.7z
以下是一个基于Arduino的WS2812B呼吸灯代码的示例:
```
#include <Adafruit_NeoPixel.h>
#define PIN 6 // WS2812B数据线连接到Arduino的6号引脚
#define NUM_LEDS 1 // 只使用一个LED灯
Adafruit_NeoPixel strip(NUM_LEDS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // 初始化LED显示
}
void loop() {
breathe(0xFF0000); // 呼吸灯效果,红色
}
void breathe(uint32_t c) {
int i;
for (i = 0; i < 256; i++) {
uint8_t brightness = exp(sin(i / 25.0 * PI)) - 0.36787944; // 计算亮度
uint32_t color = strip.gamma32(strip.Color(brightness * ((c >> 16) & 0xFF), brightness * ((c >> 8) & 0xFF), brightness * (c & 0xFF))); // 应用亮度到颜色上
strip.setPixelColor(0, color);
strip.show();
delay(10);
}
}
```
在这个示例中,我们使用了Adafruit_NeoPixel库来控制WS2812B灯带,将LED数据线连接到Arduino的6号引脚。然后,我们定义了一个呼吸函数,它计算出每个时刻LED的亮度,并将其应用到颜色上,从而实现呼吸灯效果。最后,在Arduino的`loop()`函数中,我们调用了`breathe()`函数,并传入红色的颜色值。你可以通过更改颜色值来实现不同颜色的呼吸灯效果。
阅读全文