From 9812e2a2e7d55b0207825088fd5b045b2d0c3f55 Mon Sep 17 00:00:00 2001 From: Fisch Date: Mon, 21 Oct 2019 19:06:17 +0200 Subject: [PATCH] improve brightness curve --- controllerHomie/controllerHomie.ino | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/controllerHomie/controllerHomie.ino b/controllerHomie/controllerHomie.ino index 5511834..647257e 100644 --- a/controllerHomie/controllerHomie.ino +++ b/controllerHomie/controllerHomie.ino @@ -66,6 +66,7 @@ float enable_fadevalue_change_per_loop=0.01; //fixed value. For manual calculato float set_brightness=2; //0 to 1 #define BRIGHTNESS_MIN 0.0 #define BRIGHTNESS_MAX 2.0 //if temperature is in between both strips brightness of 2 means both are at full power. otherwise brightness will be clipped +#define BRIGHTNESSCURVE 1.4 float brightness=set_brightness; float brightness_change_per_loop=0; //will be calculated by Handler @@ -324,8 +325,8 @@ void loopHandler() { uint16_t pwmCW; uint16_t pwmWW; float temp=mapFloat(temperature, TEMPERATURE_MIN, TEMPERATURE_MAX, 0.0,1.0); //0=warmwhite, 1=coldwhite - pwmCW=pow((brightness*enable_fadevalue)*temp/2.0, 2) *2.0 *PWM_MAX; //calculate brightness for led stripe, scale to 0-1, ^2, rescale to 0-2, scale for pwm - pwmWW=pow((brightness*enable_fadevalue)*(1-temp)/2.0, 2) *2.0 *PWM_MAX; + pwmCW=pow((brightness*enable_fadevalue)/2.0, BRIGHTNESSCURVE) *2.0 *temp *PWM_MAX; //calculate brightness for led stripe, scale to 0-1, ^2, rescale to 0-2, scale for pwm + pwmWW=pow((brightness*enable_fadevalue)/2.0, BRIGHTNESSCURVE) *2.0 *(1-temp) *PWM_MAX; if (pwmCW>PWM_MAX) { pwmCW=PWM_MAX; } //limit if (pwmWW>PWM_MAX) { pwmWW=PWM_MAX; } //limit