#include <FastLED.h>
#define LED_PIN 2
#define NUM_LEDS 256 // Change this based on your LED count
#define LED_TYPE WS2812
#define COLOR_ORDER CRGB
CRGB leds[NUM_LEDS]; // Create an array of CRGB objects to hold LED colors
const uint32_t ledarray0[] PROGMEM = {
0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0,
};
const uint32_t ledarray1[] PROGMEM = {
0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0,
};
const uint32_t ledarray2[] PROGMEM = {
0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720,
};
const uint32_t ledarray3[] PROGMEM = {
89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424,
};
const uint32_t ledarray4[] PROGMEM = {
11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128,
};
const uint32_t ledarray5[] PROGMEM = {
19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000,
};
const uint32_t ledarray6[] PROGMEM = {
1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304,
};
const uint32_t ledarray7[] PROGMEM = {
21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600,
};
const uint32_t ledarray8[] PROGMEM = {
2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800,
};
const uint32_t ledarray9[] PROGMEM = {
4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328,
};
const uint32_t ledarray10[] PROGMEM = {
131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848,
};
const uint32_t ledarray11[] PROGMEM = {
22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000,
};
const uint32_t ledarray12[] PROGMEM = {
2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200,
};
const uint32_t ledarray13[] PROGMEM = {
4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656,
};
const uint32_t ledarray14[] PROGMEM = {
262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000,
};
const uint32_t ledarray15[] PROGMEM = {
5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312,
};
const uint32_t ledarray16[] PROGMEM = {
525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 0, 0, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624, 525312, 5248000, 262656, 4723200, 2624000, 22030848, 131328, 4460800, 2361600, 21506304, 1312000, 19408128, 11015424, 89150720, 0, 1050624,
};
void setup() {
FastLED.addLeds<LED_TYPE, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS);
}
void loop() {
// Example usage: Load colors from ledarray0
setLEDColorsFromArray(ledArray[0], NUM_LEDS);
// Show the current LED state and delay
FastLED.show();
delay(1000);
// Rotate through the arrays
for (int i = 0; i < 16; i++) {
setLEDColorsFromArray(ledArray[i], NUM_LEDS);
FastLED.show();
delay(1000);
}
}
void setLEDColorsFromArray(const uint32_t* array, int numLeds) {
for (int i = 0; i < numLeds; i++) {
uint32_t color = pgm_read_dword(&array[i]); // Read color from PROGMEM
byte r = (color >> 16) & 0xFF; // Red
byte g = (color >> 8) & 0xFF; // Green
byte b = color & 0xFF; // Blue
leds[i] = CRGB(r, g, b); // Set LED color
}
}