我试图在不使用延迟()的情况下闪烁我的 LED 灯条
到目前为止,我有这样的事情:
#include <FastLED.h>
#define NUM_LEDS 60
#define BRIGHTNESS 32
#define LED_TYPE WS2811
#define DATA_PIN 6
CRGB leds[NUM_LEDS];
unsigned long actTime = 0;
unsigned long remTime = 0;
const unsigned long period = 1000;
void setup() {
FastLED.setMaxPowerInVoltsAndMilliamps(5,1000);
FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
FastLED.setBrightness(BRIGHTNESS);
}
void loop() {
actTime = millis();
if (actTime - remTime >= period){
remTime = actTime;
fill_solid(leds, NUM_LEDS, CRGB::Red);
FastLED.show();
fill_solid(leds, NUM_LEDS, CRGB::Black);
FastLED.show();
}
}
但它不像我想要的那样工作。例如,如果我更改fill_solid(leds, NUM_LEDS, CRGB::Black);
为CRGB::Green
我只会看到绿色并且很难看到红色闪烁。例如,我想让它看起来像这样:绿色代表 1s -> 红色代表 1s -> 绿色等。
我的循环应该是什么样子?