// 设置第二条灯带的亮度 if (brightness2 > 0) { FastLED.setBrightness(BRIGHTNESS_2); } else { FastLED.setBrightness(0); }放在哪里
时间: 2024-03-17 22:45:27 浏览: 26
这段代码需要放在您想要设置灯带亮度的地方。通常,在更新LED灯带之前设置亮度是最好的。
您可以在更新LED灯带的代码之前添加这段代码,如下所示:
```
// 设置第二条灯带的亮度
if (brightness2 > 0) {
FastLED.setBrightness(BRIGHTNESS_2);
} else {
FastLED.setBrightness(0);
}
// 更新 LED 灯带
FastLED.show();
```
这样,每次更新LED灯带之前,都会检查brightness2的值,如果大于0,则设置第二条灯带的亮度为BRIGHTNESS_2,否则设置所有灯带的亮度为0。然后,更新所有的LED灯带。
相关问题
#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后,第一条灯带也不亮了,那可能是因为您在设置第二条灯带的亮度时没有考虑到第一条灯带的亮度。
您可以尝试修改代码,首先设置第一条灯带的亮度,然后再根据brightness2的值来设置第二条灯带的亮度。如下所示:
```
// 设置第一条灯带的亮度
FastLED.setBrightness(BRIGHTNESS);
// 设置第二条灯带的亮度
if (brightness2 > 0) {
FastLED.setBrightness(BRIGHTNESS_2);
} else {
FastLED.setBrightness(BRIGHTNESS);
}
// 更新 LED 灯带
FastLED.show();
```
这样,如果brightness2大于0,则设置第二条灯带的亮度为BRIGHTNESS_2,否则设置第二条灯带的亮度为第一条灯带的亮度。然后,更新所有的LED灯带。
#include <FastLED.h> #define LED_PIN_1 3 #define LED_PIN_2 6 #define LED_COUNT_1 53 #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); Serial.begin(9600);//设置串口波特率为9600kbps } void loop() { int brightness_2 = 0; int fadeAmount = 5; for (int i = 0; i < 128; 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(0, brightness_1, 0); } FastLED.show(); delay(10); } }加一个开关来控制灯带状态,开关按下呼吸灯熄灭,亮起白色流水灯,开关未按下,保持绿色呼吸灯状态
要添加一个开关来控制灯带状态,可以使用一个按钮或开关,通过数字输入口读取按钮或开关状态。以下是一个示例代码,其中使用数字输入口读取开关状态,并根据开关状态来控制灯带状态:
```
#include <FastLED.h>
#define LED_PIN_1 3
#define LED_PIN_2 6
#define LED_COUNT_1 53
#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];
int pin_switch = 10; // 定义数字输入口pin10接收开关状态
int switch_state = 0; // 定义开关状态变量
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);
Serial.begin(9600);//设置串口波特率为9600kbps
pinMode(pin_switch, INPUT); // 初始化数字输入口
}
void loop() {
switch_state = digitalRead(pin_switch); // 读取开关状态
if (switch_state == HIGH) { // 开关按下,灯带状态为白色流水灯
for (int i = 0; i < LED_COUNT_1; i++ ) {
leds_1[i] = CRGB::White;
}
FastLED.show();
delay(25);
} else { // 开关未按下,灯带状态为绿色呼吸灯
for (int i = 0; i < 128; 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(0, brightness_1, 0);
}
FastLED.show();
delay(10);
}
}
}
```
在上述代码中,开关状态通过 `digitalRead(pin_switch)` 读取,并赋值给 `switch_state` 变量。如果开关状态为高电平(按下),则点亮白色流水灯,否则点亮绿色呼吸灯。可以根据需要调整白色流水灯和绿色呼吸灯的颜色和亮度。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)