#include <ArduinoJson.h>
// #define FASTLED_ALLOW_INTERRUPTS 1
// #define INTERRUPT_THRESHOLD 255
// #define FASTLED_ESP32_I2S
#include <FastLED.h>
#define NUM_LEDS 16
CRGB leds[NUM_LEDS];
CRGBPalette256 paletteCurrent;
void setup() {
Serial.begin(9600);
FastLED.addLeds<WS2812B, 2, GRB>(leds, NUM_LEDS);
Serial.println("OK");
}
void loop() {
static uint16_t size = 0;
const char json[] = "{\"paletteNew\":[0,255,0,0,32,171,85,0,64,171,171,0,96,0,255,0,128,0,171,85,160,0,0,255,192,85,0,171,224,171,0,85,255,255,0,0]}";
DynamicJsonDocument doc(2048);
deserializeJson(doc, json);
if (doc.containsKey("paletteNew")) {
size = doc["paletteNew"].size();
if (size <= 768) {
copyArray(doc["paletteNew"], reinterpret_cast<byte*>(&paletteCurrent), size);
}
size = size / 3;
}
static uint8_t offset = 0;
Serial.println(offset);
for (uint8_t i = 0; i < NUM_LEDS; i++) {
leds[i] = paletteCurrent[(i + offset) % size];
}
FastLED.show();
offset++;
Serial.println(offset);
Serial.println(offset);
Serial.println(offset);
Serial.println(offset);
}