/*************************************************************************************** All of the functions below are called from the loop ***************************************************************************************/ void setPixel(int Pixel, byte Red, byte Green, byte Blue) // Sets RGB colors to one LED from the strip { leds[Pixel].r = Red; leds[Pixel].g = Green; leds[Pixel].b = Blue; } void setAll(byte Red, byte Green, byte Blue) // This function sets all LEDs in the strip to their RGB colors { for(int i = 0; i < NUM_LEDS; i++ ) { setPixel(i, Red, Green, Blue); } FastLED.show(); } void startLighting(byte Red, byte Green, byte Blue) { float r, g, b, brightness; for(float k = 1.5*PI; k < 2.3*PI; k=k+increment) { r = (sin(k)*127.5+127.5)/256.0*Red; g = (sin(k)*127.5+127.5)/256.0*Green; b = (sin(k)*127.5+127.5)/256.0*Blue; setAll(r, g, b); FastLED.show(); } delay(20*speedDelay); // 1s delay if (connectedNAS == false) { brightness = 1.5*PI; } else { brightness = steadyBrightness; } for(float k = 2.3*PI; k >= brightness; k=k-2*increment) { r = (sin(k)*127.5+127.5)/256.0*Red; g = (sin(k)*127.5+127.5)/256.0*Green; b = (sin(k)*127.5+127.5)/256.0*Blue; setAll(r, g, b); FastLED.show(); } } void colorWipeLighting(byte Red, byte Green, byte Blue) { int k = steadyBrightness; for(uint16_t i = 0; i < NUM_LEDS; i++) { setPixel(i, k*Red, k*Green, k*Blue); FastLED.show(); delay(speedDelay); } } void theaterChaseLighting(byte Red, byte Green, byte Blue) { int k = steadyBrightness; for (int j=0; j<10; j++) { for (int q=0; q < 3; q++) { for (int i=0; i < NUM_LEDS; i=i+3) { setPixel(i+q, k*Red, k*Green, k*Blue); } FastLED.show(); delay(speedDelay); for (int i=0; i < NUM_LEDS; i=i+3) { setPixel(i+q, 0x00, 0x00, 0x00); } } } } void runningLightsLighting(byte Red, byte Green, byte Blue) { int Position = 0; for(int i = 0; i < NUM_LEDS*2; i++) { Position++; // = 0; //Position + Rate; for(int i = 0; i < NUM_LEDS; i++) { setPixel(i, (sin(i + Position)*127.5+127.5)/256.0*Red, (sin(i + Position)*127.5+127.5)/256.0*Green, (sin(i + Position)*127.5+127.5)/256.0*Blue); } FastLED.show(); delay(speedDelay); } } void cylonLighting(byte Red, byte Green, byte Blue, int EyeSize) { int k = steadyBrightness; for(int i = 0; i < NUM_LEDS-EyeSize-2; i++) { setAll(0x00, 0x00, 0x00); setPixel(i, k/10.0*Red, k/10.0*Green, k/10.0*Blue); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, k*Red, k*Green, k*Blue); } setPixel(i+EyeSize+1, k/10.0*Red, k/10.0*Green, k/10.0*Blue); FastLED.show(); delay(speedDelay); } delay(speedDelay); for(int i = NUM_LEDS-EyeSize-2; i > 0; i--) { setAll(0x00, 0x00, 0x00); setPixel(i, k/10.0*Red, k/10.0*Green, k/10.0*Blue); for(int j = 1; j <= EyeSize; j++) { setPixel(i+j, k*Red, k*Green, k*Blue); } setPixel(i+EyeSize+1, k/10.0*Red, k/10.0*Green, k/10.0*Blue); FastLED.show(); delay(speedDelay); } delay(speedDelay); } void twinkleLighting(byte Red, byte Green, byte Blue, int Count, boolean OnlyOne) { int k = steadyBrightness; for(int i = 0; i < NUM_LEDS-3; i++) { setAll(0x00, 0x00, 0x00); for (int i = 0; i < Count; i++) { setPixel(random(NUM_LEDS), k*Red, k*Green, k*Blue); FastLED.show(); delay(1.5*speedDelay); if(OnlyOne) { setAll(0x00, 0x00, 0x00); } } } } void steadyLighting(byte Red, byte Green, byte Blue) { float r, g, b; float k = steadyBrightness; r = (sin(k)*127.5+127.5)/256.0*Red; g = (sin(k)*127.5+127.5)/256.0*Green; b = (sin(k)*127.5+127.5)/256.0*Blue; setAll(r, g, b); FastLED.show(); } void stopLighting(byte Red, byte Green, byte Blue) { float r, g, b; for(float k = steadyBrightness; k >= 1.5*PI; k=k-2*increment) { r = (sin(k)*127.5+127.5)/256.0*Red; g = (sin(k)*127.5+127.5)/256.0*Green; b = (sin(k)*127.5+127.5)/256.0*Blue; setAll(r, g, b); FastLED.show(); } }