#define LED_MODE_OFF 0
#define LED_MODE_RGB 1
#define LED_MODE_FOLLOWING 2
#define LED_MODE_BLINK 3
#define LED_MODE_BREATHING 4
#define LED_MODE_RAINBOW 5
void setupRGBLED();
void setRGBLED(uint8_t mode, uint8_t r, uint8_t g, uint8_t b);
void task_showRGBLeds(void *pvParameters);
void task_RGBLeds(void *pvParameters);
#endif
#include "RGBLED_WS2812.h"
Freenove_ESP32_WS2812 strip = Freenove_ESP32_WS2812(LEDS_COUNT, LEDS_PIN, CHANNEL, TYPE_GRB);
struct LedConfig {
uint8_t mode;
uint8_t r;
uint8_t g;
uint8_t b;
} ledConfig_t;
int followingColorStep = 0;
int breathingStep = 2;
int rainbowStep = 2;
bool blinkStateUp = true;
bool breathingStateUp = true;
u32 lastStripUpdateTime = 0;
void setupRGBLED() {
strip.begin();
strip.setBrightness(255);
xTaskCreateUniversal(task_RGBLeds, "task_RGBLeds", 4096, NULL, 1, NULL, 1);
}
void setRGBLED(uint8_t mode, uint8_t r, uint8_t g, uint8_t b) {
ledConfig_t.mode = mode;
ledConfig_t.r = r;
ledConfig_t.g = g;