/* * Binary Clock With ESP8266 and * WS2812b RGB Leds * Code By - Soumojit Ash * soumojitash@gmail.com * buymeacoffee.com/technatorium * https://github.com/Soumojit28/binaryclock_esp8266/blob/master/code/Esp8266_code.ino */ /* Edits done for this project: https://hackaday.io/project/186195-berlin-uhr-nano By: https://hackaday.io/jjoeff - July 2022 */ #include //https://github.com/FastLED/FastLED #include //https://github.com/arduino-libraries/NTPClient #include #include #include #include #define BRIGHTNESS 8 #define NUM_LEDS 39 #define DATA_PIN 5 #define OFFSET 7200 //Change this value according to your time zone CRGB leds[NUM_LEDS]; WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "de.pool.ntp.org", OFFSET, 600000); const char *ssid = "WIFIs_SSID"; //Your WiFi SSID const char *password = "PASSWORD"; //Your WiFi PASSWORD static uint8_t hue = 75; int h,h1,h2; int m,m1,m2; int s,s1,s2; int l0,l1,l2,l3; void allledsoff() { for(int i=0 ; i(leds, NUM_LEDS); WiFi.begin(ssid, password); FastLED.setBrightness(BRIGHTNESS); while ( WiFi.status() != WL_CONNECTED ) { delay ( 1 ); Serial.print ( "." ); fadeToBlackBy( leds, NUM_LEDS, 20); int pos = beatsin16( 13, 0, NUM_LEDS-1 ); leds[pos] += CHSV( gHue, 255, 192); gHue++; FastLED.show(); } timeClient.begin(); // Port defaults to 8266 // ArduinoOTA.setPort(8266); // Hostname defaults to esp8266-[ChipID] ArduinoOTA.setHostname("BerlinUhr-nano"); // No authentication by default // ArduinoOTA.setPassword("admin"); // Password can be set with it's md5 value as well // MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 // ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); ArduinoOTA.onStart([]() { String type; if (ArduinoOTA.getCommand() == U_FLASH) { type = "sketch"; } else { // U_FS type = "filesystem"; } // NOTE: if updating FS this would be the place to unmount FS using FS.end() Serial.println("Start updating " + type); }); ArduinoOTA.onEnd([]() { Serial.println("\nEnd"); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { Serial.printf("Progress: %u%%\r", (progress / (total / 100))); }); ArduinoOTA.onError([](ota_error_t error) { Serial.printf("Error[%u]: ", error); if (error == OTA_AUTH_ERROR) { Serial.println("Auth Failed"); } else if (error == OTA_BEGIN_ERROR) { Serial.println("Begin Failed"); } else if (error == OTA_CONNECT_ERROR) { Serial.println("Connect Failed"); } else if (error == OTA_RECEIVE_ERROR) { Serial.println("Receive Failed"); } else if (error == OTA_END_ERROR) { Serial.println("End Failed"); } }); ArduinoOTA.begin(); Serial.print("IP address: "); Serial.println(WiFi.localIP()); } void loop () { ArduinoOTA.handle(); hue = map(m,0,59,0,255); if(hue==255-75) { hue=0; } timeClient.update(); h= timeClient.getHours(); m= timeClient.getMinutes(); s= timeClient.getSeconds(); Serial.print(h); Serial.print(" : "); Serial.print(m); Serial.print(" : "); Serial.println(s); /* if(h>12) { h=h-12; } h1=h/10; h2=h%10; m1=m/10; m2=m%10; s1=s/10; s2=s%10; */ setled(0,s2,0); // setled(4,s1,0); // setled(7,m2,85); // setled(11,m1,85); // setled(14,h2,170); // setled(18,h1,170); FastLED.show(); // hue++; delay(20); } void setled(int i,int d, int col) //Function to set leds { l0=0+i; l1=1+i; l2=2+i; l3=3+i; col=col+hue; // h,m,s if((s%2)==0) {leds[38] = CHSV(col, 255, 255);} // Sekunden Takt else {leds[38] = CRGB::Black;} int offset=30; //-------- Seconds switch (s) //------------ 4 x seconds ^ { case 0: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 1 : leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 2: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 3: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 4: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 5: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 6: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 7: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 8: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 9: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 10: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 11 : leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 12: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 13: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 14: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 15: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 16: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 17: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 18: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 19: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 20: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 21 : leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 22: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 23: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 24: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 25: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 26: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 27: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 28: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 29: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 30: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 31: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 32: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 33: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 34: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 35: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 36: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 37: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 38: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 39: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 40: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 41: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 42: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 43: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 44: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 45: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 46: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 47: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 48: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 49: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 50: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 51: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 52: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 53: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 54: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; case 55: leds[0] = CRGB::Black; leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 56: leds[0] = CHSV(col, 255, 255); leds[1] = CRGB::Black; leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 57: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CRGB::Black; leds[3] = CRGB::Black; break; case 58: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CRGB::Black; break; case 59: leds[0] = CHSV(col, 255, 255); leds[1] = CHSV(col, 255, 255); leds[2] = CHSV(col, 255, 255); leds[3] = CHSV(col, 255, 255); break; } if ( s >= 5) { leds[4] = CHSV(col, 255, 255); } /// Full mitnute in Seconds if ( s < 5) { leds[4] = CRGB::Black; } if ( s >= 10) { leds[5] = CHSV(col, 255, 255); } if ( s < 10) { leds[5] = CRGB::Black; } if ( s >= 15) { leds[6] = CHSV(col+offset, 255, 255); } if ( s < 15) { leds[6] = CRGB::Black; } if ( s >= 20) { leds[7] = CHSV(col, 255, 255); } if ( s < 20) { leds[7] = CRGB::Black; } if ( s >= 25) { leds[8] = CHSV(col, 255, 255); } if ( s < 25) { leds[8] = CRGB::Black; } if ( s >= 30) { leds[9] = CHSV(col+offset, 255, 255); } if ( s < 30) { leds[9] = CRGB::Black; } if ( s >= 35) { leds[10] = CHSV(col, 255, 255); } if ( s < 35) { leds[10] = CRGB::Black; } if ( s >= 40) { leds[11] = CHSV(col, 255, 255); } if ( s < 40) { leds[11] = CRGB::Black; } if ( s >= 45) { leds[12] = CHSV(col+offset, 255, 255); } if ( s < 45) { leds[12] = CRGB::Black; } if ( s >= 50) { leds[13] = CHSV(col, 255, 255); } if ( s < 50) { leds[13] = CRGB::Black; } if ( s >= 55) { leds[14] = CHSV(col, 255, 255); } if ( s < 55) { leds[14] = CRGB::Black; } switch (m) //------------ like 4 x minutes ^ { case 0: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 1 : leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 2: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 3: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 4: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 5: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 6: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 7: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 8: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 9: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 10: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 11 : leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 12: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 13: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 14: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 15: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 16: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 17: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 18: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 19: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 20: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 21 : leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 22: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 23: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 24: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 25: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 26: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 27: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 28: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 29: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 30: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 31: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 32: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 33: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 34: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 35: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 36: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 37: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 38: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 39: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 40: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 41: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 42: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 43: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 44: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 45: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 46: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 47: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 48: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 49: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 50: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 51: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 52: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 53: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 54: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; case 55: leds[15] = CRGB::Black; leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 56: leds[15] = CHSV(col, 255, 255); leds[16] = CRGB::Black; leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 57: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CRGB::Black; leds[18] = CRGB::Black; break; case 58: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CRGB::Black; break; case 59: leds[15] = CHSV(col, 255, 255); leds[16] = CHSV(col, 255, 255); leds[17] = CHSV(col, 255, 255); leds[18] = CHSV(col, 255, 255); break; } if ( m >= 5) { leds[19] = CHSV(col, 255, 255); } /// Full hour in mins if ( m < 5) { leds[19] = CRGB::Black; } if ( m >= 10) { leds[20] = CHSV(col, 255, 255); } if ( m < 10) { leds[20] = CRGB::Black; } if ( m >= 15) { leds[21] = CHSV(col+offset, 255, 255); } if ( m < 15) { leds[21] = CRGB::Black; } if ( m >= 20) { leds[22] = CHSV(col, 255, 255); } if ( m < 20) { leds[22] = CRGB::Black; } if ( m >= 25) { leds[23] = CHSV(col, 255, 255); } if ( m < 25) { leds[23] = CRGB::Black; } if ( m >= 30) { leds[24] = CHSV(col+offset, 255, 255); } if ( m < 30) { leds[24] = CRGB::Black; } if ( m >= 35) { leds[25] = CHSV(col, 255, 255); } if ( m < 35) { leds[25] = CRGB::Black; } if ( m >= 40) { leds[26] = CHSV(col, 255, 255); } if ( m < 40) { leds[26] = CRGB::Black; } if ( m >= 45) { leds[27] = CHSV(col+offset, 255, 255); } if ( m < 45) { leds[27] = CRGB::Black; } if ( m >= 50) { leds[28] = CHSV(col, 255, 255); } if ( m < 50) { leds[28] = CRGB::Black; } if ( m >= 55) { leds[29] = CHSV(col, 255, 255); } if ( m < 55) { leds[29] = CRGB::Black; } switch (h) //------------ like 4 x minutes ^ { case 0: leds[30] = CRGB::Black; leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 1 : leds[30] = CHSV(col+offset, 255, 255); leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 2: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 3: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CRGB::Black; break; case 4: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CHSV(col+offset, 255, 255); break; case 5: leds[30] = CRGB::Black; leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 6: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 7: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 8: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CRGB::Black; break; case 9: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CHSV(col+offset, 255, 255); break; case 10: leds[30] = CRGB::Black; leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 11 : leds[30] = CHSV(col+offset, 255, 255); leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 12: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 13: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CRGB::Black; break; case 14: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CHSV(col+offset, 255, 255); break; case 15: leds[30] = CRGB::Black; leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 16: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 17: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 18: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CRGB::Black; break; case 19: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CHSV(col+offset, 255, 255); break; case 20: leds[30] = CRGB::Black; leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 21 : leds[30] = CHSV(col+offset, 255, 255); leds[31] = CRGB::Black; leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 22: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CRGB::Black; leds[33] = CRGB::Black; break; case 23: leds[30] = CHSV(col+offset, 255, 255); leds[31] = CHSV(col+offset, 255, 255); leds[32] = CHSV(col+offset, 255, 255); leds[33] = CRGB::Black; break; } if(h>19) {leds[37] = CHSV(col+offset, 255, 255);} // 5,10,15,20 Std else {leds[37] = CRGB::Black;} if(h>14) {leds[36] = CHSV(col+offset, 255, 255);} else {leds[36] = CRGB::Black;} if(h>9) {leds[35] = CHSV(col+offset, 255, 255);} else {leds[35] = CRGB::Black;} if(h>4) {leds[34] = CHSV(col+offset, 255, 255);} else {leds[34] = CRGB::Black;} /* switch(d) { case 0: leds[l3] = CRGB::Black; leds[l2] = CRGB::Black; leds[l1] = CRGB::Black; leds[l0] = CRGB::Black; break; case 1: leds[l3] = CRGB::Black; leds[l2] = CRGB::Black; leds[l1] = CRGB::Black; leds[l0] = CHSV(col, 255, 255); break; case 2: leds[l3] = CRGB::Black; leds[l1] = CRGB::Black; leds[l1] = CHSV(col, 255, 255); leds[l0] = CRGB::Black; break; case 3: leds[l3] = CRGB::Black; leds[l2] = CRGB::Black; leds[l1] = CHSV(col, 255, 255); leds[l0] = CHSV(col, 255, 255); break; case 4: leds[l3] = CRGB::Black; leds[l2] = CHSV(col, 255, 255); leds[l1] = CRGB::Black; leds[l0] = CRGB::Black; break; case 5: leds[l3] = CRGB::Black; leds[l2] = CHSV(col, 255, 255); leds[l1] = CRGB::Black; leds[l0] = CHSV(col, 255, 255); break; case 6: leds[l3] = CRGB::Black; leds[l2] = CHSV(col, 255, 255); leds[l1] = CHSV(col, 255, 255); leds[l0] = CRGB::Black; break; case 7: leds[l3] = CRGB::Black; leds[l2] = CHSV(col, 255, 255); leds[l1] = CHSV(col, 255, 255); leds[l0] = CHSV(col, 255, 255); break; case 8: leds[l3] = CHSV(col, 255, 255); leds[l2] = CRGB::Black; leds[l1] = CRGB::Black; leds[l0] = CRGB::Black; break; case 9: leds[l3] = CHSV(col, 255, 255); leds[l2] = CRGB::Black; leds[l1] = CRGB::Black; leds[l0] = CHSV(col, 255, 255); break; } */ }