#include "FastLED.h" // 此示例程序需要使用FastLED库
#define NUM_LEDS 8 // LED灯珠数量
#define DATA_PIN 6 // Arduino输出控制信号引脚
#define LED_TYPE WS2812 // LED灯带型号
#define COLOR_ORDER GRB // RGB灯珠中红色、绿色、蓝色LED的排列顺序
CHSV myHSVcolor(252, 255, 255); //HSV方法定义颜色 myHSVcolor(色调,饱和度,明亮度)
uint8_t max_bright = 238; // LED亮度控制变量,可使用数值为 0 ~ 255, 数值越大则光带亮度越高
CRGB leds[NUM_LEDS]; // 建立光带leds
long int previousMillis = 0;
long int Temp001 = 250;
long int currentLed = 0;
int delta = 4;
long int jia_su = 0;
int r = 30; //myRGBcolor(0, 0 ,50)
int g = 255; //myRGBcolor(0, 0 ,50)
int b = 155; //myRGBcolor(0, 0 ,0)
void setup() {
Serial.begin(9600); // 启动串行通讯
delay(100); // 稳定性等待
LEDS.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS); // 初始化光带
FastLED.setBrightness(max_bright); // 设置光带亮度
}
void loop() {
unsigned long currentMillis2 = millis();
if (currentMillis2 - previousMillis >= Temp001) {
previousMillis = currentMillis2;
FastLED.clear();
leds[currentLed] = CHSV(r, g, b);
leds[delta] = CHSV(r, g, b);
// leds[currentLed+8] = CHSV(252, 255, 255);
// leds[currentLed+12] = CHSV(252, 255, 255);
FastLED.show();
currentLed++;
delta++;
jia_su++;
int num = random(20); //产生随机数范围为:0~100
int num1 = random(10); //产生随机数范围为:0~100
Serial.println(Temp001);
// if (!(currentLed < (NUM_LEDS) && currentLed >= 0))
if (currentLed >= 8) {
currentLed = 0;
}
if (delta >= 8) {
delta = 0;
}
if (jia_su <= 250) {
// jia_su = 0;
Temp001--;
} else {
Temp001 = 30 - num;
}
if (jia_su == 150) {
r = 255; //myRGBcolor(0, 0 ,50)
g = 251; //myRGBcolor(0, 0 ,50)
b = 255;
}
if (Temp001 <= 22) {
r = 255-num1; //myRGBcolor(0, 0 ,50)
g = 251; //myRGBcolor(0, 0 ,50)
b = 255;
}
}
}