#include <FastLED.h>
#define NUM_LEDS 250
#define DATA_PIN 3
#define BOUNCE_SWITCH 0
#define MAX_FRAMES 0
CRGB leds[NUM_LEDS];
int frameIndex = 0;
void shiftRight() {
CRGB tempColor = leds[NUM_LEDS - 1];
for(int ledIndex = NUM_LEDS - 1; ledIndex > 0; ledIndex -= 1) {
leds[ledIndex].setRGB(leds[ledIndex - 1].r, leds[ledIndex - 1].g, leds[ledIndex - 1].b);
}
leds[0] = tempColor;
}
void shiftLeft() {
CRGB tempColor = leds[0];
for(int ledIndex = 0; ledIndex < NUM_LEDS - 1; ledIndex += 1) {
leds[ledIndex].setRGB(leds[ledIndex + 1].r, leds[ledIndex + 1].g, leds[ledIndex + 1].b);
}
leds[NUM_LEDS - 1] = tempColor;
}
int nextFrameIndex() {
if (frameIndex < MAX_FRAMES) {
return frameIndex + 1;
} else {
return 0;
}
}
void bounceRight() {
if (frameIndex < BOUNCE_SWITCH) {
shiftRight();
} else {
shiftLeft();
}
frameIndex = nextFrameIndex();
}
void bounceLeft() {
if (frameIndex < BOUNCE_SWITCH) {
shiftLeft();
} else {
shiftRight();
}
frameIndex = nextFrameIndex();
}
void setup() {
FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
FastLED.setBrightness(255);
FastLED.clear();
// Frame 1
leds[0].setRGB(18, 243, 74);
leds[1].setRGB(243, 74, 18);
leds[2].setRGB(18, 243, 74);
leds[3].setRGB(243, 74, 18);
leds[4].setRGB(18, 243, 74);
leds[5].setRGB(243, 74, 18);
leds[6].setRGB(18, 243, 74);
leds[7].setRGB(243, 74, 18);
leds[8].setRGB(18, 243, 74);
leds[9].setRGB(243, 74, 18);
leds[10].setRGB(18, 243, 74);
leds[11].setRGB(243, 74, 18);
leds[12].setRGB(18, 243, 74);
leds[13].setRGB(243, 74, 18);
leds[14].setRGB(18, 243, 74);
leds[15].setRGB(243, 74, 18);
leds[16].setRGB(18, 243, 74);
leds[17].setRGB(243, 74, 18);
leds[18].setRGB(18, 243, 74);
leds[19].setRGB(243, 74, 18);
leds[20].setRGB(18, 243, 74);
leds[21].setRGB(243, 74, 18);
leds[22].setRGB(18, 243, 74);
leds[23].setRGB(243, 74, 18);
leds[24].setRGB(18, 243, 74);
leds[25].setRGB(243, 74, 18);
leds[26].setRGB(18, 243, 74);
leds[27].setRGB(243, 74, 18);
leds[28].setRGB(18, 243, 74);
leds[29].setRGB(243, 74, 18);
leds[30].setRGB(18, 243, 74);
leds[31].setRGB(243, 74, 18);
leds[32].setRGB(18, 243, 74);
leds[33].setRGB(243, 74, 18);
leds[34].setRGB(18, 243, 74);
leds[35].setRGB(243, 74, 18);
leds[36].setRGB(18, 243, 74);
leds[37].setRGB(243, 74, 18);
leds[38].setRGB(18, 243, 74);
leds[39].setRGB(243, 74, 18);
leds[40].setRGB(18, 243, 74);
leds[41].setRGB(243, 74, 18);
leds[42].setRGB(18, 243, 74);
leds[43].setRGB(243, 74, 18);
leds[44].setRGB(18, 243, 74);
leds[45].setRGB(243, 74, 18);
leds[46].setRGB(18, 243, 74);
leds[47].setRGB(243, 74, 18);
leds[48].setRGB(18, 243, 74);
leds[49].setRGB(243, 74, 18);
leds[50].setRGB(18, 243, 74);
leds[51].setRGB(243, 74, 18);
leds[52].setRGB(18, 243, 74);
leds[53].setRGB(243, 74, 18);
leds[54].setRGB(18, 243, 74);
leds[55].setRGB(243, 74, 18);
leds[56].setRGB(18, 243, 74);
leds[57].setRGB(243, 74, 18);
leds[58].setRGB(18, 243, 74);
leds[59].setRGB(243, 74, 18);
leds[60].setRGB(18, 243, 74);
leds[61].setRGB(243, 74, 18);
leds[62].setRGB(18, 243, 74);
leds[63].setRGB(243, 74, 18);
leds[64].setRGB(18, 243, 74);
leds[65].setRGB(243, 74, 18);
leds[66].setRGB(18, 243, 74);
leds[67].setRGB(243, 74, 18);
leds[68].setRGB(18, 243, 74);
leds[69].setRGB(243, 74, 18);
leds[70].setRGB(18, 243, 74);
leds[71].setRGB(243, 74, 18);
leds[72].setRGB(18, 243, 74);
leds[73].setRGB(243, 74, 18);
leds[74].setRGB(18, 243, 74);
leds[75].setRGB(243, 74, 18);
leds[76].setRGB(18, 243, 74);
leds[77].setRGB(243, 74, 18);
leds[78].setRGB(18, 243, 74);
leds[79].setRGB(243, 74, 18);
leds[80].setRGB(18, 243, 74);
leds[81].setRGB(243, 74, 18);
leds[82].setRGB(18, 243, 74);
leds[83].setRGB(243, 74, 18);
leds[84].setRGB(18, 243, 74);
leds[85].setRGB(243, 74, 18);
leds[86].setRGB(18, 243, 74);
leds[87].setRGB(243, 74, 18);
leds[88].setRGB(18, 243, 74);
leds[89].setRGB(243, 74, 18);
leds[90].setRGB(18, 243, 74);
leds[91].setRGB(243, 74, 18);
leds[92].setRGB(18, 243, 74);
leds[93].setRGB(243, 74, 18);
leds[94].setRGB(18, 243, 74);
leds[95].setRGB(243, 74, 18);
leds[96].setRGB(18, 243, 74);
leds[97].setRGB(243, 74, 18);
leds[98].setRGB(18, 243, 74);
leds[99].setRGB(243, 74, 18);
leds[100].setRGB(18, 243, 74);
leds[101].setRGB(243, 74, 18);
leds[102].setRGB(18, 243, 74);
leds[103].setRGB(243, 74, 18);
leds[104].setRGB(18, 243, 74);
leds[105].setRGB(243, 74, 18);
leds[106].setRGB(18, 243, 74);
leds[107].setRGB(243, 74, 18);
leds[108].setRGB(18, 243, 74);
leds[109].setRGB(243, 74, 18);
leds[110].setRGB(18, 243, 74);
leds[111].setRGB(243, 74, 18);
leds[112].setRGB(18, 243, 74);
leds[113].setRGB(243, 74, 18);
leds[114].setRGB(18, 243, 74);
leds[115].setRGB(243, 74, 18);
leds[116].setRGB(18, 243, 74);
leds[117].setRGB(243, 74, 18);
leds[118].setRGB(18, 243, 74);
leds[119].setRGB(243, 74, 18);
leds[120].setRGB(18, 243, 74);
leds[121].setRGB(243, 74, 18);
leds[122].setRGB(18, 243, 74);
leds[123].setRGB(243, 74, 18);
leds[124].setRGB(18, 243, 74);
leds[125].setRGB(243, 74, 18);
leds[126].setRGB(18, 243, 74);
leds[127].setRGB(243, 74, 18);
leds[128].setRGB(18, 243, 74);
leds[129].setRGB(243, 74, 18);
leds[130].setRGB(18, 243, 74);
leds[131].setRGB(243, 74, 18);
leds[132].setRGB(18, 243, 74);
leds[133].setRGB(243, 74, 18);
leds[134].setRGB(18, 243, 74);
leds[135].setRGB(243, 74, 18);
leds[136].setRGB(18, 243, 74);
leds[137].setRGB(243, 74, 18);
leds[138].setRGB(18, 243, 74);
leds[139].setRGB(243, 74, 18);
leds[140].setRGB(18, 243, 74);
leds[141].setRGB(243, 74, 18);
leds[142].setRGB(18, 243, 74);
leds[143].setRGB(243, 74, 18);
leds[144].setRGB(18, 243, 74);
leds[145].setRGB(243, 74, 18);
leds[146].setRGB(18, 243, 74);
leds[147].setRGB(243, 74, 18);
leds[148].setRGB(18, 243, 74);
leds[149].setRGB(243, 74, 18);
leds[150].setRGB(18, 243, 74);
leds[151].setRGB(243, 74, 18);
leds[152].setRGB(18, 243, 74);
leds[153].setRGB(243, 74, 18);
leds[154].setRGB(18, 243, 74);
leds[155].setRGB(243, 74, 18);
leds[156].setRGB(18, 243, 74);
leds[157].setRGB(243, 74, 18);
leds[158].setRGB(18, 243, 74);
leds[159].setRGB(243, 74, 18);
leds[160].setRGB(18, 243, 74);
leds[161].setRGB(243, 74, 18);
leds[162].setRGB(18, 243, 74);
leds[163].setRGB(243, 74, 18);
leds[164].setRGB(18, 243, 74);
leds[165].setRGB(243, 74, 18);
leds[166].setRGB(18, 243, 74);
leds[167].setRGB(243, 74, 18);
leds[168].setRGB(18, 243, 74);
leds[169].setRGB(243, 74, 18);
leds[170].setRGB(18, 243, 74);
leds[171].setRGB(243, 74, 18);
leds[172].setRGB(18, 243, 74);
leds[173].setRGB(243, 74, 18);
leds[174].setRGB(18, 243, 74);
leds[175].setRGB(243, 74, 18);
leds[176].setRGB(18, 243, 74);
leds[177].setRGB(243, 74, 18);
leds[178].setRGB(18, 243, 74);
leds[179].setRGB(243, 74, 18);
leds[180].setRGB(18, 243, 74);
leds[181].setRGB(243, 74, 18);
leds[182].setRGB(18, 243, 74);
leds[183].setRGB(243, 74, 18);
leds[184].setRGB(18, 243, 74);
leds[185].setRGB(243, 74, 18);
leds[186].setRGB(18, 243, 74);
leds[187].setRGB(243, 74, 18);
leds[188].setRGB(18, 243, 74);
leds[189].setRGB(243, 74, 18);
leds[190].setRGB(18, 243, 74);
leds[191].setRGB(243, 74, 18);
leds[192].setRGB(18, 243, 74);
leds[193].setRGB(243, 74, 18);
leds[194].setRGB(18, 243, 74);
leds[195].setRGB(243, 74, 18);
leds[196].setRGB(18, 243, 74);
leds[197].setRGB(243, 74, 18);
leds[198].setRGB(18, 243, 74);
leds[199].setRGB(243, 74, 18);
leds[200].setRGB(18, 243, 74);
leds[201].setRGB(243, 74, 18);
leds[202].setRGB(18, 243, 74);
leds[203].setRGB(243, 74, 18);
leds[204].setRGB(18, 243, 74);
leds[205].setRGB(243, 74, 18);
leds[206].setRGB(18, 243, 74);
leds[207].setRGB(243, 74, 18);
leds[208].setRGB(18, 243, 74);
leds[209].setRGB(243, 74, 18);
leds[210].setRGB(18, 243, 74);
leds[211].setRGB(243, 74, 18);
leds[212].setRGB(18, 243, 74);
leds[213].setRGB(243, 74, 18);
leds[214].setRGB(18, 243, 74);
leds[215].setRGB(243, 74, 18);
leds[216].setRGB(18, 243, 74);
leds[217].setRGB(243, 74, 18);
leds[218].setRGB(18, 243, 74);
leds[219].setRGB(243, 74, 18);
leds[220].setRGB(18, 243, 74);
leds[221].setRGB(243, 74, 18);
leds[222].setRGB(18, 243, 74);
leds[223].setRGB(243, 74, 18);
leds[224].setRGB(18, 243, 74);
leds[225].setRGB(243, 74, 18);
leds[226].setRGB(18, 243, 74);
leds[227].setRGB(243, 74, 18);
leds[228].setRGB(18, 243, 74);
leds[229].setRGB(243, 74, 18);
leds[230].setRGB(18, 243, 74);
leds[231].setRGB(243, 74, 18);
leds[232].setRGB(18, 243, 74);
leds[233].setRGB(243, 74, 18);
leds[234].setRGB(18, 243, 74);
leds[235].setRGB(243, 74, 18);
leds[236].setRGB(18, 243, 74);
leds[237].setRGB(243, 74, 18);
leds[238].setRGB(18, 243, 74);
leds[239].setRGB(243, 74, 18);
leds[240].setRGB(18, 243, 74);
leds[241].setRGB(243, 74, 18);
leds[242].setRGB(18, 243, 74);
leds[243].setRGB(243, 74, 18);
leds[244].setRGB(18, 243, 74);
leds[245].setRGB(243, 74, 18);
leds[246].setRGB(18, 243, 74);
leds[247].setRGB(243, 74, 18);
leds[248].setRGB(18, 243, 74);
leds[249].setRGB(243, 74, 18);
}
void loop() {
EVERY_N_MILLISECONDS(100) {
shiftLeft();
}
FastLED.show();
}