#include <FastLED.h> #define LED_PIN 3 #define LED_COUNT 42 #define BRIGHTNESS 255 #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leds[LED_COUNT]; void setup() { FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, LED_COUNT); FastLED.setBrightness(BRIGHTNESS); } void loop() { int center = LED_COUNT / 2; // 计算中心位置 int brightness = 0; int fadeAmount = 5; int delayTime = 25; // 初始化延时时间为50毫秒 //红色从两端开始亮起 /*for (int i = 0; i <= center; i++) { leds[i].setRGB(0, 255, 0); // 从第一个灯开始向中间亮起,设置红色 leds[LED_COUNT - 1 - i].setRGB(255, 0, 0); // 从最后一个灯开始向中间亮起,设置红色 FastLED.show(); delay(delayTime); // 延时 delayTime -= 1; // 延时时间逐渐减少 } delayTime = 25; // 重置延时时间为50毫秒 for (int i = 0; i <= center; i++) { leds[i].setRGB(0,0, 0); // 从第一个灯开始向中间熄灭 leds[LED_COUNT - 1 - i].setRGB(0, 0, 0); // 从最后一个灯开始向中间熄灭 FastLED.show(); delay(delayTime); // 延时 delayTime += 1; // 延时时间逐渐增加 } */ // 从中心位置开始向两端亮起 for (int i = center; i >= 0; i--) { leds[i].setRGB(0, 255, 0); // 从中心位置开始向两端亮起,设置红色 leds[LED_COUNT - 1 - i].setRGB(0, 255, 0); // 从中心位置开始向两端亮起,设置红色 FastLED.show(); delay(delayTime); // 延时 delayTime += 1; // 延时时间逐渐减少 } delayTime = 25; // 重置延时时间为50毫秒 for (int i = center; i >= 0; i--) { leds[i].setRGB(0, 0, 0); // 从中心位置开始向两端熄灭 leds[LED_COUNT - 1 - i].setRGB(0, 0, 0); // 从中心位置开始向两端熄灭 FastLED.show(); delay(delayTime); // 延时 delayTime -= 1; // 延时时间逐渐增加 } }另外增加一条灯带
时间: 2024-03-17 09:43:27 浏览: 52
如果你需要增加一条灯带,需要先确定新灯带的引脚和LED数量。假设新灯带的引脚为6,LED数量为20,那么你需要在代码中添加以下内容:
```
#define LED_PIN_2 6
#define LED_COUNT_2 20
CRGB leds_2[LED_COUNT_2];
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, LED_COUNT);
FastLED.addLeds<LED_TYPE, LED_PIN_2, COLOR_ORDER>(leds_2, LED_COUNT_2);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
// 程序的其他部分不变
// 在需要控制新灯带的地方,使用leds_2数组代替leds数组即可
}
```
这样,在setup函数中,你需要添加一行代码来初始化新灯带的设置。在loop函数中,如果需要控制新灯带的亮灭,就使用新的leds_2数组。
相关问题
#include <FastLED.h> #define LED_PIN 3 #define LED_COUNT 42 #define BRIGHTNESS 255 #define LED_TYPE WS2812B #define COLOR_ORDER GRB CRGB leds[LED_COUNT]; void setup() { FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, LED_COUNT); FastLED.setBrightness(BRIGHTNESS); }增加另一条灯带
您可以使用以下步骤来添加另一条灯带:
1.确定您将使用的灯带的数量和类型,以及它们所需的引脚。
2.在您的代码中定义第二个灯带的LED数量和引脚,以及要用于该灯带的FastLED控制器。例如:
```
#define LED_PIN_1 3
#define LED_COUNT_1 42
#define LED_PIN_2 5
#define LED_COUNT_2 30
CRGB leds_1[LED_COUNT_1];
CRGB leds_2[LED_COUNT_2];
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);
```
3.编写代码以控制两个灯带。您可以使用类似以下代码的函数来控制每个灯带:
```
void setLeds1Color(CRGB color) {
// Set the color of the LEDs in the first strip
for (int i = 0; i < LED_COUNT_1; i++) {
leds_1[i] = color;
}
// Show the updated colors on the LEDs
FastLED.show();
}
void setLeds2Color(CRGB color) {
// Set the color of the LEDs in the second strip
for (int i = 0; i < LED_COUNT_2; i++) {
leds_2[i] = color;
}
// Show the updated colors on the LEDs
FastLED.show();
}
```
4.在您的主循环中,调用这些函数以更改灯带的颜色:
```
void loop() {
// Set the color of the first strip to red
setLeds1Color(CRGB::Red);
// Wait for 1 second
delay(1000);
// Set the color of the second strip to blue
setLeds2Color(CRGB::Blue);
// Wait for 1 second
delay(1000);
}
```
这将使第一条灯带变为红色,第二条灯带变为蓝色,然后重复此过程。您可以根据需要更改颜色和时间间隔。
#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后,第二条灯带的亮度将变为0,而第一条灯带的亮度仍为255。这可能会导致第二条灯带的LED灯没有亮起来,而第一条灯带仍然亮着。如果您想让所有的灯带都亮起来,可以将BRIGHTNESS_2的值调整为255,或者将第二条灯带的引脚设置为另一个引脚并再次测试代码。
阅读全文