// 闪烁两次黄光 for (int i = 0; i < 3; i++) { // 点亮所有灯珠,颜色为黄色 for (int j = 0; j < LED_COUNT_1; j++) { leds_1[j] = CRGB::Yellow; } FastLED.show(); delay(200); // 熄灭所有灯珠 for (int j = 0; j < LED_COUNT_1; j++) { leds_1[j] = CRGB::Black; } FastLED.show(); delay(200); }灯光颜色改为橘色
时间: 2024-03-22 09:39:00 浏览: 59
要将上述代码中的灯光颜色改为橘色,只需要在第6行将CRGB::Yellow改为CRGB::Orange即可。修改后的代码如下:
```
// 闪烁两次橘光
for (int i = 0; i < 3; i++) {
// 点亮所有灯珠,颜色为橘色
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Orange;
}
FastLED.show();
delay(200);
// 熄灭所有灯珠
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Black;
}
FastLED.show();
delay(200);
}
```
相关问题
#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 == LOW) { // 闪烁两次黄光 for (int i = 0; i < 3; i++) { // 点亮所有灯珠,颜色为黄色 for (int j = 0; j < LED_COUNT_1; j++) { leds_1[j] = CRGB::Orange; } FastLED.show(); delay(200); // 熄灭所有灯珠 for (int j = 0; j < LED_COUNT_1; j++) { leds_1[j] = CRGB::Black; } FastLED.show(); delay(200); }第一条灯带所有灯珠在闪烁完熄灭之后,慢慢亮为绿色
要在第一条灯带所有灯珠在闪烁完熄灭之后,慢慢亮为绿色,可以在第13行闪烁完熄灭之后,添加一个循环逐渐将所有灯珠从黑色变为绿色,代码如下:
```
// 闪烁两次黄光
for (int i = 0; i < 3; i++) {
// 点亮所有灯珠,颜色为橘色
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Orange;
}
FastLED.show();
delay(200);
// 熄灭所有灯珠
for (int j = 0; j < LED_COUNT_1; j++) {
leds_1[j] = CRGB::Black;
}
FastLED.show();
delay(200);
// 逐渐将所有灯珠从黑色变为绿色
for (int k = 0; k < LED_COUNT_1; k++) {
leds_1[k] = CRGB::Green;
FastLED.show();
delay(20);
}
}
```
#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 == LOW) {开关按下之后闪烁两次黄光
好的,您可以使用下面这段代码实现开关按下之后闪烁两次黄光的功能,其中第一组灯珠闪烁黄光 2 次,第二组灯珠闪烁黄光 1 次:
```
// 读取开关状态
switch_state = digitalRead(pin_switch);
// 开关按下
if (switch_state == LOW) {
// 第一组灯珠闪烁黄光 2 次
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);
}
// 第二组灯珠闪烁黄光 1 次
// 点亮第二组灯珠,颜色为黄色
for (int j = 0; j < LED_COUNT_2; j++) {
leds_2[j] = CRGB::Yellow;
}
FastLED.show();
delay(500);
// 熄灭第二组灯珠
for (int j = 0; j < LED_COUNT_2; j++) {
leds_2[j] = CRGB::Black;
}
FastLED.show();
}
```
其中,`leds_1` 和 `leds_2` 分别表示第一组和第二组灯珠的数组。`leds_1[j] = CRGB::Yellow` 用于点亮第 j 个灯珠,颜色为黄色;`leds_1[j] = CRGB::Black` 用于熄灭第 j 个灯珠。同样,您可以根据实际需要调整延时时间和颜色。
阅读全文