diff --git a/60LED_WS2812B_NTP_Clock.ino b/60LED_WS2812B_NTP_Clock.ino index bd85364..47f6efe 100644 --- a/60LED_WS2812B_NTP_Clock.ino +++ b/60LED_WS2812B_NTP_Clock.ino @@ -43,9 +43,9 @@ #define DATA_PIN 17 #endif /* useful preselection -* NO following hour -* NO three block hour marking -* quarter hour marking + NO following hour + NO three block hour marking + quarter hour marking */ #define NUM_LEDS 60 //24 #define SERIAL_BAUD 115200 @@ -56,9 +56,10 @@ volatile bool singleSecond = false; //show seconds volatile bool allDotsOn = true; //lighten up all leds #if NUM_LEDS == 60 volatile bool followingHour = true; //move hour like an analog one -#endif -#if NUM_LEDS == 24 -volatile bool followingHour = false; //move hour like an analog one +#else +//#endif +//#if NUM_LEDS == 24 +volatile bool followingHour = false; //disabled due limited resolution #endif volatile int hourOffset = 0; @@ -313,15 +314,13 @@ IotWebConfParameterGroup ledGroup = IotWebConfParameterGroup("LED", "LED setting IotWebConfNumberParameter maxBrightnessParam = IotWebConfNumberParameter("Max BRIGHTNESS", "max brightness", maxBrightnessParamValue, NUMBER_LEN, "200", "20..254", "min='20' max='254' step='1'"); #if NUM_LEDS == 60 IotWebConfCheckboxParameter singleSecondParam = IotWebConfCheckboxParameter("Show Seconds", "singleSecond", singleSecondParamValue, STRING_LEN, true); -#endif -#if NUM_LEDS == 24 +#else IotWebConfCheckboxParameter singleSecondParam = IotWebConfCheckboxParameter("Show Seconds", "singleSecond", singleSecondParamValue, STRING_LEN, false); #endif IotWebConfCheckboxParameter allDotsOnParam = IotWebConfCheckboxParameter("all Dots lighten on", "allDotsOn", allDotsOnParamValue, STRING_LEN, true); #if NUM_LEDS == 60 IotWebConfCheckboxParameter followingHourParam = IotWebConfCheckboxParameter("following Hour", "followingHour", followingHourParamValue, STRING_LEN, true); -#endif -#if NUM_LEDS == 24 +#else IotWebConfCheckboxParameter followingHourParam = IotWebConfCheckboxParameter("following Hour", "followingHour", followingHourParamValue, STRING_LEN, false); #endif ColorWithValueParameter hourColorParam = ColorWithValueParameter("Stundenfarbe", "hourColorParam", hourColorParamValue, COLOR_ATTR_LENGTH, "#FFD700"); @@ -605,7 +604,7 @@ void ledRefreshCallback() { strip.ClearTo(temp); for (int dot = 0; dot < NUM_LEDS; dot++) { #if NUM_LEDS == 60 - //1 dot hour marking + //1 dot hour marking if (MOD(dot, 5) == 0) { strip.SetPixelColor(dot, hourMarkingColor); } @@ -617,18 +616,19 @@ void ledRefreshCallback() { } #endif } -#if NUM_LEDS == 60 - //3 dots hour - strip.SetPixelColor(MOD((currentHour * 5 - 1 + hourOffset), NUM_LEDS), hourColor); - strip.SetPixelColor(MOD((currentHour * 5 + 0 + hourOffset), NUM_LEDS), hourColor); - strip.SetPixelColor(MOD((currentHour * 5 + 1 + hourOffset), NUM_LEDS), hourColor); -#endif strip.SetPixelColor(0, highnoonColor); //define high noon if (singleSecond) { strip.SetPixelColor(MOD(int(currentSec * NUM_LEDS / 60 + 0), NUM_LEDS), secondsColor); } - strip.SetPixelColor(MOD(int(currentHour * NUM_LEDS / 12 + 0), NUM_LEDS) , hourColor); +#if NUM_LEDS == 60 + //3 dots hour + strip.SetPixelColor(MOD(int(currentHour * NUM_LEDS / 12 - 1 + hourOffset), NUM_LEDS), hourColor); + strip.SetPixelColor(MOD(int(currentHour * NUM_LEDS / 12 + 0 + hourOffset), NUM_LEDS), hourColor); + strip.SetPixelColor(MOD(int(currentHour * NUM_LEDS / 12 + 1 + hourOffset), NUM_LEDS), hourColor); +#else + strip.SetPixelColor(MOD(int(currentHour * NUM_LEDS / 12 + 0 + hourOffset), NUM_LEDS) , hourColor); +#endif strip.SetPixelColor(MOD(int(currentMin * NUM_LEDS / 60 + 0), NUM_LEDS), minuteColor); strip.Show(); }