这么设置会导致第一条灯带不亮
时间: 2024-03-17 15:45:16 浏览: 92
非常抱歉,我犯了一个错误。由于我们只是想控制第二条灯带的亮度,所以在设置第二条灯带亮度时,应该使用 `FastLED.setBrightness(BRIGHTNESS_2);` 而不是 `FastLED.setBrightness(brightness2);`。
所以正确的代码如下:
```
void loop() {
// 将第二条灯带的所有 LED 设置为黄色
for (int i = 0; i < LED_COUNT_2; i++) {
leds_2[i] = CRGB(255, 255, 0);
}
// 每隔5秒增加亮度
static unsigned long lastUpdateTime = 0;
unsigned long currentTime = millis();
if (currentTime - lastUpdateTime >= 5000) {
lastUpdateTime = currentTime;
brightness2 += 10;
if (brightness2 > 255) {
brightness2 = 0;
}
}
// 设置第二条灯带的亮度
FastLED.setBrightness(BRIGHTNESS_2);
// 更新 LED 灯带
FastLED.show();
delay(100); // 延迟一段时间,避免频繁更新亮度
}
```
非常抱歉给您带来困扰,希望这次的回答能够解决问题。
相关问题
#include <FastLED.h> #define LED_PIN 3 #define LED_PIN_2 6 // 定义第二条灯带的引脚 #define LED_COUNT 42 #define LED_COUNT_2 7 // 定义第二条灯带的 LED 数量 #define BRIGHTNESS 255 #define BRIGHTNESS_2 0 #define LED_TYPE WS2812B #define COLOR_ORDER GRB为什么调整了BRIGHTNESS_2为0后,第一条灯带也不亮了
如果将BRIGHTNESS_2调整为0后,第一条灯带也不亮了,这可能是由于FastLED.setBrightness()函数被用于设置所有灯带的亮度。这导致第一条灯带的亮度也被设置为0,因此它不再亮起来。
为了解决这个问题,您可以使用if else语句来分别设置每个灯带的亮度。例如,您可以使用以下代码来设置第二条灯带的亮度为0,同时保持第一条灯带的亮度为255:
```
// 设置第一条灯带的亮度
FastLED.setBrightness(BRIGHTNESS);
// 设置第二条灯带的亮度
if (brightness2 > 0) {
FastLED.setBrightness(BRIGHTNESS_2);
} else {
FastLED.setBrightness(0);
}
// 更新 LED 灯带
FastLED.show();
```
这样,只有在brightness2大于0时才会设置第二条灯带的亮度,否则将设置所有灯带的亮度为0。
#include <FastLED.h> #define LED_PIN 3 #define LED_PIN_2 6 // 定义第二条灯带的引脚 #define LED_COUNT 42 #define LED_COUNT_2 7 // 定义第二条灯带的 LED 数量 #define BRIGHTNESS 255 #define BRIGHTNESS_2 0 #define LED_TYPE WS2812B #define COLOR_ORDER GRB为什么调整了BRIGHTNESS_2为0后,所有的灯带都不亮了
根据您提供的代码,将BRIGHTNESS_2调整为0后,第二条灯带的亮度将变为0,而第一条灯带的亮度仍为255。这可能会导致第二条灯带的LED灯没有亮起来,而第一条灯带仍然亮着。如果您想让所有的灯带都亮起来,可以将BRIGHTNESS_2的值调整为255,或者将第二条灯带的引脚设置为另一个引脚并再次测试代码。
阅读全文