#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); } }加一个开关来控制灯带状态,开关按下呼吸灯熄灭,亮起白色流水灯,开关未按下,保持绿色呼吸灯状态
时间: 2024-03-21 12:44:35 浏览: 19
要添加一个开关来控制灯带状态,可以使用一个按钮或开关,通过数字输入口读取按钮或开关状态。以下是一个示例代码,其中使用数字输入口读取开关状态,并根据开关状态来控制灯带状态:
```
#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` 变量。如果开关状态为高电平(按下),则点亮白色流水灯,否则点亮绿色呼吸灯。可以根据需要调整白色流水灯和绿色呼吸灯的颜色和亮度。