#include <FastLED.h>
#define MATRIX_SIZE 16
#define NUM_LEDS (MATRIX_SIZE * MATRIX_SIZE)
#define MATRIX_PIN 0
#define BRIGHTNESS 255
CRGB leds[NUM_LEDS];
#define MATRIX_SIZE_SMALL 8
#define NUM_LEDS_SMALL (MATRIX_SIZE_SMALL * MATRIX_SIZE_SMALL)
#define LEFT_SMALL_MATRIX_PIN 5
CRGB left_small_leds_matrix[NUM_LEDS_SMALL];
#define RIGTH_SMALL_MATRIX_PIN 6
CRGB right_small_leds_matrix[NUM_LEDS_SMALL];
#define BIG_RING_SIZE 32
#define RING_PIN 4
CRGB big_ring_leds[BIG_RING_SIZE];
#define SMALL_RING_SIZE 8
#define LEFT_RING_PIN 2
CRGB left_ring_leds[SMALL_RING_SIZE];
#define RIGHT_RING_PIN 3
CRGB right_ring_leds[SMALL_RING_SIZE];
#define STRIP_SIZE 256
#define STRIP_PIN 9
CRGB strip_leds[STRIP_SIZE];
#define STRIP_SIZE 256
#define INNER_STRIP_PIN 10
CRGB inner_strip_leds[STRIP_SIZE];
const uint8_t matrix_16_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
};
const uint8_t left_matrix_8_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}
};
const uint8_t right_matrix_8_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}
};
const uint8_t big_ring_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}
};
const uint8_t left_small_ring_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}
};
const uint8_t right_small_ring_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}
};
const uint8_t strip_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
};
const uint8_t inner_strip_data[][4] PROGMEM = {
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},{0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100}, {0, 176, 240,100},
};
void setup() {
FastLED.addLeds<WS2812B, MATRIX_PIN, GRB>(leds, NUM_LEDS);
FastLED.addLeds<WS2812B, LEFT_SMALL_MATRIX_PIN, GRB>(left_small_leds_matrix, NUM_LEDS_SMALL);
FastLED.addLeds<WS2812B, RIGTH_SMALL_MATRIX_PIN, GRB>(right_small_leds_matrix, NUM_LEDS_SMALL);
FastLED.addLeds<WS2812B, RING_PIN, GRB>(big_ring_leds, BIG_RING_SIZE);
FastLED.addLeds<WS2812B, LEFT_RING_PIN, GRB>(left_ring_leds, SMALL_RING_SIZE);
FastLED.addLeds<WS2812B, RIGHT_RING_PIN, GRB>(right_ring_leds, SMALL_RING_SIZE);
FastLED.addLeds<WS2812, STRIP_PIN, GRB>(strip_leds, STRIP_SIZE);
FastLED.addLeds<WS2812, INNER_STRIP_PIN, GRB>(inner_strip_leds, STRIP_SIZE);
FastLED.setBrightness(BRIGHTNESS); // Adjust the brightness value as needed
FastLED.clear();
FastLED.show();
}
void loop() {
matrix_256();
left_matrix_64();
right_matrix_64();
big_ring();
left_small_ring();
right_small_ring();
strip_256();
inner_strip_256();
// FastLED.show();
}
void matrix_256() {
for (int i = 0; i < sizeof(matrix_16_data) / sizeof(matrix_16_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &matrix_16_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void left_matrix_64() {
for (int i = 0; i < sizeof(left_matrix_8_data) / sizeof(left_matrix_8_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &left_matrix_8_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
left_small_leds_matrix[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
left_small_leds_matrix[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void right_matrix_64() {
for (int i = 0; i < sizeof(right_matrix_8_data) / sizeof(right_matrix_8_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &right_matrix_8_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
right_small_leds_matrix[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
right_small_leds_matrix[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void big_ring() {
for (int i = 0; i < sizeof(big_ring_data) / sizeof(big_ring_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &big_ring_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
big_ring_leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
big_ring_leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void left_small_ring() {
for (int i = 0; i < sizeof(left_small_ring_data) / sizeof(left_small_ring_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &left_small_ring_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
left_ring_leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
left_ring_leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void right_small_ring() {
for (int i = 0; i < sizeof(right_small_ring_data) / sizeof(right_small_ring_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &right_small_ring_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
right_ring_leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
right_ring_leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void strip_256() {
for (int i = 0; i < sizeof(strip_data) / sizeof(strip_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &strip_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
strip_leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
strip_leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}
void inner_strip_256() {
for (int i = 0; i < sizeof(inner_strip_data) / sizeof(inner_strip_data[0]); i++) {
uint8_t buffer[4];
memcpy_P(buffer, &inner_strip_data[i], sizeof(buffer));
if (buffer[3] == '-') {
// Turn off the LED by setting its color to black (off)
inner_strip_leds[i] = CRGB::Black;
} else {
CRGB color(buffer[0], buffer[1], buffer[2]);
CRGB scaledColor = color.scale8(buffer[3]);
inner_strip_leds[i] = scaledColor;
}
}
FastLED.show();
// delay(100);
}