implement proper white channel calculation
This commit is contained in:
parent
b5886f0919
commit
30cfb7ffe7
22
src/main.cpp
22
src/main.cpp
|
@ -36,7 +36,7 @@
|
||||||
const uint16_t
|
const uint16_t
|
||||||
Num_Leds = 264; // strip length
|
Num_Leds = 264; // strip length
|
||||||
const uint8_t
|
const uint8_t
|
||||||
Brightness = 100; // maximum brightness
|
Brightness = 127; // maximum brightness
|
||||||
|
|
||||||
// --- FastLED Setings
|
// --- FastLED Setings
|
||||||
#if defined(SK6812RGBW)
|
#if defined(SK6812RGBW)
|
||||||
|
@ -273,10 +273,30 @@ void dataMode(){
|
||||||
uint8_t r=leds[i].r;
|
uint8_t r=leds[i].r;
|
||||||
uint8_t g=leds[i].g;
|
uint8_t g=leds[i].g;
|
||||||
uint8_t b=leds[i].b;
|
uint8_t b=leds[i].b;
|
||||||
|
|
||||||
|
/* Simple 255,255,255 = White approach
|
||||||
uint8_t w=min(r,min(g,b)); //get white content and use for white
|
uint8_t w=min(r,min(g,b)); //get white content and use for white
|
||||||
r-=w; //subtract white content
|
r-=w; //subtract white content
|
||||||
g-=w;
|
g-=w;
|
||||||
b-=w;
|
b-=w;
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Calibration 20201207. These RGB values match the Neutral White color with calibW brightness.
|
||||||
|
uint8_t calibR=255;
|
||||||
|
uint8_t calibG=175;
|
||||||
|
uint8_t calibB=90;
|
||||||
|
uint8_t calibW=135;
|
||||||
|
|
||||||
|
//one of calibR,calibG or calibB should be 255.
|
||||||
|
int minval=min(r-calibR,min(g-calibG,b-calibB)); //0 if rgb contains full white. <0 if not full white. -1*(max(calibR,calibG,calibB)) if no white content
|
||||||
|
float whitecontent=1.0 + (minval/255.0); //scale to: 0=no white, 1=full white content
|
||||||
|
//subtract white contents from rgb
|
||||||
|
r-=calibR*whitecontent;
|
||||||
|
g-=calibG*whitecontent;
|
||||||
|
b-=calibB*whitecontent;
|
||||||
|
|
||||||
|
uint8_t w=calibW*whitecontent;
|
||||||
|
|
||||||
|
|
||||||
send_leds[i] = CRGBW(r, g, b, w); //transfer to rgbw struct
|
send_leds[i] = CRGBW(r, g, b, w); //transfer to rgbw struct
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue