#include"FastLED.h" #define NUM_LEDS 42 #define DATA_PIN 3 #define LED_TYPE WS2812 #define COLOR_ORDER GRB int value = 5; //起始亮度 int deltaHue = 230; //相邻灯珠色差 //uint8_t max_bright = value; CRGB leds[NUM_LEDS]; void setup(){ pinMode(DATA_PIN,OUTPUT); LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS); //FastLED.setBrightness(max_bright); Serial.begin(115200); } void loop(){ for(; value < 50; value++){ FastLED.setBrightness(value); fill_rainbow(leds, 42, 10, deltaHue); FastLED.show(); Serial.println(value); delay(50); } for(; value > 5; value--){ FastLED.setBrightness(value); fill_rainbow(leds, 42, 10, deltaHue); FastLED.show(); Serial.println(value); delay(50); } delay(100); }
时间: 2024-04-06 07:33:10 浏览: 47
06-smartLED_灯带_单片机_arduino.ws2812_avr_smartLED_
这段代码使用FastLED库控制一个WS2812类型的LED灯带。它定义了一些常量,如LED数量、数据引脚、颜色类型和颜色顺序。它还定义了一些变量,如起始亮度和相邻灯珠色差,以及一个CRGB数组`leds`,用于存储颜色数据。
在`setup()`函数中,它设置了数据引脚为输出模式,并将`leds`数组作为参数传递给`LEDS.addLeds()`函数,以告诉FastLED库如何控制LED灯带。此外,它还启动了串口通信,以便我们可以在串口监视器中查看调试信息。
在`loop()`函数中,它使用`for`循环逐渐增加亮度,然后逐渐减小亮度,以模拟呼吸灯效果。在每个循环中,它使用`FastLED.setBrightness()`函数设置LED灯带的亮度,使用`fill_rainbow()`函数填充颜色,然后使用`FastLED.show()`函数将颜色数据发送到LED灯带。它还使用`Serial.println()`函数将当前亮度值打印到串口监视器中,以便我们可以检查它是否按预期工作。最后,它使用`delay()`函数暂停一段时间,以控制呼吸灯效果的速度。
阅读全文