diff --git a/lib/treppe/treppe.cpp b/lib/treppe/treppe.cpp index ef5703f..8e08e38 100644 --- a/lib/treppe/treppe.cpp +++ b/lib/treppe/treppe.cpp @@ -69,13 +69,13 @@ void Treppe::start_animation() if (fsm_outputs.dimmrichtung == DR_AUFDIMMEN) { - start_pwm = idle_brightness; + start_pwm = idle_bright_internal; ziel_pwm = active_brightness; } else { start_pwm = active_brightness; - ziel_pwm = idle_brightness; + ziel_pwm = idle_bright_internal; } current_tick = 0; @@ -193,7 +193,7 @@ bool Treppe::check_ldr() active = 1; if (ldr > ldr_schwelle + LDR_HYS) active = 0; - + activate_idle_pwm(active); return active; } @@ -258,6 +258,17 @@ void Treppe::set_idle_pwm(uint16_t _idle_brightness) berechne_dimmer(); Serial.printf("Treppe: idle_brightness=%d\n", idle_brightness); } + +void Treppe::activate_idle_pwm(bool active){ + static uint8_t former_active = 0; + + if(active != former_active && fsm_outputs.status == ST_RUHEZUSTAND){ + idle_bright_internal = idle_brightness * active; + // Dimming Function for all LEDS ? + pwmController.setAllChannelsPWM(idle_bright_internal); + former_active = active; + } +} void Treppe::set_active_pwm(uint16_t _active_brightness) { active_brightness = _active_brightness; diff --git a/lib/treppe/treppe.h b/lib/treppe/treppe.h index a6ab33e..38cbf8f 100644 --- a/lib/treppe/treppe.h +++ b/lib/treppe/treppe.h @@ -7,7 +7,7 @@ #define LDR_HYS 5.0 // Hysteresis for switching off FSM [lux] -#define SENSOR_OBEN 2 +#define SENSOR_OBEN 16 #define SENSOR_UNTEN 12 #define OE 14 @@ -81,6 +81,7 @@ public: // Parameter section void set_idle_pwm(uint16_t _idle_brightness); + void activate_idle_pwm(bool active); void set_active_pwm(uint16_t _active_brightness); void set_time_per_stair(uint16_t _time_per_stair); }; \ No newline at end of file