使用这个库让第1个LED到第20个LED亮绿色
时间: 2023-08-31 09:06:11 浏览: 39
可以使用以下代码实现:
```C++
#include <Adafruit_NeoPixel.h>
#define LED_PIN 6
#define LED_COUNT 20
Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
strip.begin();
strip.show(); // 初始化时,需要调用一次 show 函数
}
void loop() {
for (int i = 0; i < LED_COUNT; i++) {
strip.setPixelColor(i, 0, 255, 0); // 设置第 i 个像素为绿色
}
strip.show(); // 发送颜色值到 NeoPixel 灯带
delay(1000); // 延迟 1 秒
}
```
在上面的代码中,我们首先定义了 LED 灯带的引脚和 LED 的数量。然后在 `setup()` 函数中初始化了 `strip` 对象,并调用了 `show()` 函数。在 `loop()` 函数中,我们使用一个循环将第 1 到第 20 个像素设置为绿色,并调用 `show()` 函数将颜色值发送到 NeoPixel 灯带。最后使用 `delay()` 函数延迟 1 秒。这样就可以让前 20 个 LED 灯亮绿色了。
相关问题
ws2812b从第一个LED灯和最后一个LED灯同时向中间亮起
要实现从第一个LED灯和最后一个LED灯同时向中间亮起的效果,可以使用如下代码:
```
#include <FastLED.h>
#define LED_PIN 3
#define LED_COUNT 42
#define BRIGHTNESS 255
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[LED_COUNT];
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, LED_COUNT);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
int center = LED_COUNT / 2; // 计算中心位置
int brightness = 0;
int fadeAmount = 5;
while (brightness <= 255) {
for (int i = 0; i <= center; i++) {
leds[i].setRGB(brightness, 0, 0); // 从第一个灯开始向中间亮起,设置红色
leds[LED_COUNT - 1 - i].setRGB(brightness, 0, 0); // 从最后一个灯开始向中间亮起,设置红色
}
FastLED.show();
brightness += fadeAmount;
delay(25);
}
while (brightness >= 0) {
for (int i = 0; i <= center; i++) {
leds[i].setRGB(brightness, 0, 0); // 从第一个灯开始向中间熄灭,设置红色
leds[LED_COUNT - 1 - i].setRGB(brightness, 0, 0); // 从最后一个灯开始向中间熄灭,设置红色
}
FastLED.show();
brightness -= fadeAmount;
delay(25);
}
}
```
这里使用了 `center` 变量来计算中心位置,然后在循环中使用 `for` 循环从第一个灯和最后一个灯开始向中间亮起或熄灭。注意,这里使用了红色,你可以根据需要将颜色改为其他颜色。
ws2812b从第一个LED灯和最后一个LED灯同时向中间流水亮起
要实现从第一个LED灯和最后一个LED灯同时向中间流水亮起的效果,可以使用如下代码:
```
#include <FastLED.h>
#define LED_PIN 3
#define LED_COUNT 42
#define BRIGHTNESS 255
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds[LED_COUNT];
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, LED_COUNT);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
int center = LED_COUNT / 2; // 计算中心位置
int brightness = 0;
int fadeAmount = 5;
for (int i = 0; i <= center; i++) {
leds[i].setRGB(255, 0, 0); // 从第一个灯开始向中间亮起,设置红色
leds[LED_COUNT - 1 - i].setRGB(255, 0, 0); // 从最后一个灯开始向中间亮起,设置红色
FastLED.show();
delay(25);
}
for (int i = 0; i <= center; i++) {
leds[i].setRGB(0, 0, 0); // 从第一个灯开始向中间熄灭
leds[LED_COUNT - 1 - i].setRGB(0, 0, 0); // 从最后一个灯开始向中间熄灭
FastLED.show();
delay(25);
}
for (int i = center; i >= 0; i--) {
leds[i].setRGB(255, 0, 0); // 从中心位置开始向两端亮起,设置红色
leds[LED_COUNT - 1 - i].setRGB(255, 0, 0); // 从中心位置开始向两端亮起,设置红色
FastLED.show();
delay(25);
}
for (int i = center; i >= 0; i--) {
leds[i].setRGB(0, 0, 0); // 从中心位置开始向两端熄灭
leds[LED_COUNT - 1 - i].setRGB(0, 0, 0); // 从中心位置开始向两端熄灭
FastLED.show();
delay(25);
}
}
```
这里使用了 `center` 变量来计算中心位置,然后使用了 `for` 循环从第一个灯和最后一个灯开始向中间流水亮起或熄灭。在第一个循环中,从第一个灯和最后一个灯开始向中间亮起,然后在第二个循环中向中间熄灭;在第三个循环中,从中心位置开始向两端亮起,然后在第四个循环中向两端熄灭。注意,这里使用了红色,你可以根据需要将颜色改为其他颜色。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![-](https://csdnimg.cn/download_wenku/file_type_lunwen.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)