这么设置会导致第一条灯带不亮
时间: 2024-03-17 16:45:16 浏览: 27
非常抱歉,我犯了一个错误。由于我们只是想控制第二条灯带的亮度,所以在设置第二条灯带亮度时,应该使用 `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_1 3
#define LED_PIN_2 5
#define LED_COUNT_1 42
#define LED_COUNT_2 42
#define BRIGHTNESS 255
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
CRGB leds_1[LED_COUNT_1];
CRGB leds_2[LED_COUNT_2];
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN_1, COLOR_ORDER>(leds_1, LED_COUNT_1);
FastLED.addLeds<LED_TYPE, LED_PIN_2, COLOR_ORDER>(leds_2, LED_COUNT_2);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
int brightness_2 = 0;
int fadeAmount = 5;
for (int i = 0; i < 256; i++) {
int brightness_1 = (exp(sin(i / 50.0 * PI)) - 0.36787944) * 108.0;
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j].setRGB(brightness_1, brightness_1, brightness_1);
}
FastLED.show();
delay(25);
}
while (brightness_2 <= 255) {
for (int i = 0; i < LED_COUNT_2; i++) {
leds_2[i].setRGB(255, 255, 0);
leds_2[i].fadeLightBy(brightness_2);
}
FastLED.show();
brightness_2 += fadeAmount;
delay(25);
}
while (brightness_2 >= 0) {
for (int i = 0; i < LED_COUNT_2; i++) {
leds_2[i].setRGB(255, 255, 0);
leds_2[i].fadeLightBy(brightness_2);
}
FastLED.show();
brightness_2 -= fadeAmount;
delay(25);
}
}
```
这个代码会让第一条灯带保持呼吸灯的状态,然后第二条灯带从灭的状态开始,一点一点变成黄色并且变亮,最后第二条灯带再一点一点变暗。你可以调整 `delay()` 函数的参数来改变呼吸灯的速度。
要第一条灯带所有的灯珠都闪烁黄色
好的,如果要第一条灯带所有的灯珠都闪烁黄色,可以使用下面这段代码:
```
// 读取开关状态
switch_state = digitalRead(pin_switch);
// 开关按下
if (switch_state == LOW) {
// 闪烁两次黄光
for (int i = 0; i < 2; i++) {
// 点亮所有灯珠,颜色为黄色
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Yellow;
}
FastLED.show();
delay(500);
// 熄灭所有灯珠
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Black;
}
FastLED.show();
delay(500);
}
}
```
其中,`leds_1[j] = CRGB::Yellow` 用于点亮第 j 个灯珠,颜色为黄色;`leds_1[j] = CRGB::Black` 用于熄灭第 j 个灯珠。同样,您可以根据实际需要调整延时时间和颜色。
相关推荐
![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_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)
![](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)