第二个灯带不要跟随第一个灯带变化,只是在第一个灯带呼吸闪烁的同时,第二个灯带慢慢亮起
时间: 2024-03-18 08:38:31 浏览: 174
好的,那么可以将第二个灯带的控制从第一个灯带的循环中移除,并在循环外部控制第二个灯带的亮度逐渐增加。具体代码如下:
```
#include <FastLED.h>
#define LED_PIN_1 3
#define LED_PIN_2 6
#define LED_COUNT_1 42
#define LED_COUNT_2 7
#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 < 7680; 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(20);
}
// 循环外部逐渐增加第二个灯带的亮度
for (int k = 0; k < 255; k++) {
for (int l = 0; l < LED_COUNT_2; l++) {
leds_2[l].setRGB(k, k, k);
}
FastLED.show();
delay(20);
}
}
```
这段代码中,第二个灯带的亮度在循环外部逐渐增加,循环次数为255次,每次循环将第二个灯带的亮度增加1,并将RGB值设置为k。可以根据需要调整循环次数和延迟时间,以达到理想的效果。
阅读全文