#include <FastLED.h>
#define LED_PIN 13
// Information about the LED strip itself
#define NUM_LEDS 16
#define CHIPSET WS2811_400
#define COLOR_ORDER GRB
#define BRIGHTNESS 65
CRGB leds[NUM_LEDS];
uint8_t blendRate = 50; // How fast to blend. Higher is slower. [milliseconds]
//ZONE1
CHSV colorStart = CHSV(0,255,255); // Red
CHSV colorTarget = CHSV(64,255,255); // Yellow
CHSV colorCurrent = colorStart;
//ZONE2
CHSV colorStart2 = CHSV(64,255,255); // YELLOW
CHSV colorTarget2 = CHSV(96,255,255); // GREEN
CHSV colorCurrent2 = colorStart2;
//ZONE3
CHSV colorStart3 = CHSV(96,255,255); // GREEN
CHSV colorTarget3 = CHSV(128,255,255); // CYAN
CHSV colorCurrent3 = colorStart3;
//ZONE4
CHSV colorStart4 = CHSV(128,255,255); // CYAN
CHSV colorTarget4 = CHSV(160,255,255); // BLUE
CHSV colorCurrent4 = colorStart4;
//ZONE5
CHSV colorStart5 = CHSV(160,255,255); // BLUE
CHSV colorTarget5 = CHSV(192,255,255); // PURPLE
CHSV colorCurrent5 = colorStart5;
//ZONE6
CHSV colorStart6 = CHSV(192,255,255); // PURPLE
CHSV colorTarget6 = CHSV(0,255,255); // RED
CHSV colorCurrent6 = colorStart6;
//THESE ARE MY LED ARRAYS
int myLEDs0[ ] = {0,1,2,3,4,5,6,7,56,57,58,59,60,61,62,63,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,
133,134,135,184,185,186,187,189,190,191};
uint8_t Zone0=sizeof(myLEDs0)/sizeof(myLEDs0[0]);
int myLEDs1[ ] = {8,9,10,11,12,13,14,15, 104,105,106,107,108,109,110,111, 176,177,178,179,180,181,182,183, 192,193,194,195,196,197,198,199};
uint8_t Zone1=sizeof(myLEDs1)/sizeof(myLEDs1[0]);
int myLEDs2[ ] = {16,17,18,19,20,21,22,23, 96,97,98,99,100,101,102,103, 168,169,170,171,172,173,174,175, 200,201,202,203,204,205,206,207};
uint8_t Zone2=sizeof(myLEDs2)/sizeof(myLEDs2[0]);
int myLEDs3[ ] = {24,25,26,27,28,29,30,31, 88,89,90,91,92,93,94,95, 160,161,162,163,164,165,166,167, 208,209,210,211,212,213,214,215};
uint8_t Zone3=sizeof(myLEDs3)/sizeof(myLEDs3[0]);
int myLEDs4[ ] = {32,33,34,35,36,37,38,39, 80,81,82,83,84,85,86,87, 152,153,154,155,156,157,158,159, 216,217,218,219,220,221,222,223};
uint8_t Zone4=sizeof(myLEDs4)/sizeof(myLEDs4[0]);
int myLEDs5[ ] = {40,41,42,43,44,45,46,47, 72,73,74,75,76,77,78,79, 144,145,146,147,148,149,150,151, 224,225,226,227,228,229,230,231};
uint8_t Zone5=sizeof(myLEDs5)/sizeof(myLEDs5[0]);
int myLEDs6[ ] = {48,49,50,51,52,53,54,55, 64,65,66,67,68,69,70,71, 136,137,138,139,140,141,142,143, 232,233,234,235,236,237,238,239};
uint8_t Zone6=sizeof(myLEDs6)/sizeof(myLEDs6[0]);
int i; // counting variable
void setup() {
delay(3000);
FastLED.addLeds<WS2811_400,LED_PIN,COLOR_ORDER>(leds,NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(BRIGHTNESS);
//FastLED.setDither( 0 ); // helps with dimming jitters
}
void loop()
{
//ZONE0 //these LEDs stay off permanently
for(uint8_t i=0; i<Zone0; i++){
leds[myLEDs0[i] ] = CHSV(0,0,0);
}
//ZONE1
for(uint8_t i=0; i<Zone1; i++)
fill_solid( myLEDs1[i], 32, CHSV(50,255,255)); //intial RED
FastLED.show();
//ZONE2
for(uint8_t i=0; i<Zone2; i++){
leds[myLEDs2[i] ] = CHSV(64,255,255); //intial YELLOW
}
//ZONE3
for(uint8_t i=0; i<Zone3; i++){
leds[myLEDs3[i] ] = CHSV(96,255,255); //intial GREEN
}
//ZONE4
for(uint8_t i=0; i<Zone4; i++){
leds[myLEDs4[i] ] = CHSV(128,255,255); //intial AQUA
}
//ZONE5
for(uint8_t i=0; i<Zone5; i++){
leds[myLEDs5[i] ] = CHSV(160,255,255); //intial BLUE
}
//ZONE6
for(uint8_t i=0; i<Zone6; i++){
leds[myLEDs6[i] ] = CHSV(192,255,255); //intial PURPLE
}
FastLED.show();
}