不用第二个灯带,只用第一个灯带
时间: 2024-03-22 20:36:58 浏览: 59
mixy第三方自制库 FsatLED 2022.12.4更新
5星 · 资源好评率100%
好的,那么你可以尝试以下代码:
```
if (switch_state == LOW) {
// 开关按下
for (int i = 0; i < LED_COUNT_1; i++) {
leds_1[i] = CRGB::Red;
}
FastLED.show();
delay(500);
for (int i = 0; i < LED_COUNT_1; i++) {
leds_1[i] = CRGB::Black;
}
FastLED.show();
delay(500);
} else {
// 开关未按下,灯带状态为白色呼吸灯
bool breathing = true; // 定义一个变量用于记录呼吸灯状态
while (breathing) { // 当呼吸灯状态为true时,执行循环
int brightness = 0;
for (int i = 0; i < 7680; i++) {
brightness = (exp(sin(i / 50.0 * PI)) - 0.36787944) * 108.0;
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j].setRGB(brightness, brightness, brightness);
}
FastLED.show();
delay(10);
switch_state = digitalRead(pin_switch);
if (switch_state == LOW) { // 如果开关被按下,退出循环
breathing = false;
break;
}
}
}
}
```
这段代码和之前的代码不同之处在于,只用了一个灯带,而不是两个灯带。当开关被按下时,先将灯带所有灯珠设置为红色,显示出来,延时500毫秒,然后将所有灯珠设置为黑色,显示出来,延时500毫秒。当开关未按下时,执行呼吸灯效果。
阅读全文