Forum: Mikrocontroller und Digitale Elektronik WS2812 -> Farbkorrektur


von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

ich spiele gerade ein wenig mit WS2812-LED-Streifen rum. Dabei habe ich 
Probleme die richtigen Farben für meine eigentlich geplante Anwendung zu 
finden. Die RGB-Fabcodes, wie man sie aus den gängigen HTML-Fabcodes 
kennt, bringen nicht unbedingt zufriedenstellende Ergebnisse.

Mit Sicherheit hängt das Ergebnis auch von der Bauform und der 
Funktionsweise der jeweiligen LEDs ab. Und zum anderen spielen da auch 
subjektive Faktoren eine Rolle (Vielleicht liegt es aber auch daran, 
dass ich eine Rot/Grün-Schwäche habe...:-)).

Frage: gibt es irgendwelche Farbkorrektur-Algorithmen, die man anwenden 
kann, um die Farben zu beeinflussen? Hat jemand dazu ein paar ergiebige 
Quellen (bei denen man sogar auch aussagekräftige C-Code-Schnipsel 
findet).

Grüße & Danke Uwe

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Hi Uwe,

erstmal solltest Du die Helligkeiten an die Kennlinie des Auges 
anpassen.

LED-Fading kennst Du?

von rkramer (Gast)


Lesenswert?

Es gibt inzwischen auch eine RGBW - Version. Vielleicht hilft das.

Bei eBay "SK6812 RGBW LED Stripe", auch Adafruit hat inzwischen welche.

Grüße, RK

von Helmuth (Gast)


Lesenswert?

Weiß anzeigen lassen und dann nacheinander die Farben rausnehmen 
(runterskalieren), bis die Farbtemperatur gefällt.

WS2812 sind meist massiv grünstichig.

Oder FastLED nehmen, das bringt gängige Korrekturkurven mit.

von Joachim B. (jar)


Lesenswert?

Helmuth schrieb:
> WS2812 sind meist massiv grünstichig.

meine kommen mir blaulastig vor

> Oder FastLED nehmen, das bringt gängige Korrekturkurven mit.

ab einer gewissen Dimmung scheint das nicht mehr zu funktionieren

aber man kann ja manuell in R oder G oder B eingreifen nach belieben

: Bearbeitet durch User
von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

Frank M. schrieb:
> erstmal solltest Du die Helligkeiten an die Kennlinie des Auges
> anpassen.
>
> LED-Fading kennst Du?
ja kenne ich, hab mal vor Jahren damit rumgespielt, als es noch nicht 
die "neumodischen" RGB-LED-Streifen gab.

Helligkeit ist auch vordergründig nicht mein Problem, zumal ich gestern 
abend auch ein wenig mit HSV-Farbräumen rumgespielt habe, bei denen ja 
eine Komponente die Helligkeit ist.

rkramer schrieb:
> Es gibt inzwischen auch eine RGBW - Version. Vielleicht hilft das.
>
> Bei eBay "SK6812 RGBW LED Stripe", auch Adafruit hat inzwischen welch
naja, ich habe jetzt schon die LED-Streifen, die ich verbauen möchte, 
gekauft. Nochmal einkaufen ist nicht im vorgesehenen "Projekt-Budget" 
drin ;-)

Helmuth schrieb:
> WS2812 sind meist massiv grünstichig.

Joachim B. schrieb:
> meine kommen mir blaulastig vor
genau das meine ich! Ich denke mir, dass diese Unterschiede durch die 
unterschiedlichen Bauformen, Wellenlängen/Leuchtstärken etc. und Physik 
der LEDs zustande kommen (oder?). Gibt es da nicht Ansatzpunkte für 
Algorithmen die diese Unterschiede der LEDs, an Hand ihrer tatsächlichen 
Parameter, kompensieren? Quasi so, wir ich u.U. erst mal einen Sensor 
kalibrieren muss, um brauchbare/standardisierte/reproduzierbare 
Ergebnisse zu erhalten. Also, im Bezug auf RGB-LEDs, z.B. für das 
"standardisierte" HTML-Braun, auch wirklich ein Braun zu erhalten.

Helmuth schrieb:
> Oder FastLED nehmen, das bringt gängige Korrekturkurven mit.
Habe ich mir schon angesehen und versucht zu verstehen. Aber das ist 
nicht so ganz, was ich meine und haben möchte....

Kennt jemand noch etwas dazu?

Grüße & Danke Uwe

von Strubi (Gast)


Lesenswert?

Uwe B. schrieb:
> genau das meine ich! Ich denke mir, dass diese Unterschiede durch die
> unterschiedlichen Bauformen, Wellenlängen/Leuchtstärken etc. und Physik
> der LEDs zustande kommen (oder?). Gibt es da nicht Ansatzpunkte für
> Algorithmen die diese Unterschiede der LEDs, an Hand ihrer tatsächlichen
> Parameter, kompensieren? Quasi so, wir ich u.U. erst mal einen Sensor
> kalibrieren muss, um brauchbare/standardisierte/reproduzierbare
> Ergebnisse zu erhalten. Also, im Bezug auf RGB-LEDs, z.B. für das
> "standardisierte" HTML-Braun, auch wirklich ein Braun zu erhalten.

Hi,

schon mal gar nicht so schlecht kommt es, wenn du die einzelnen 
Grundfarben-Intensitäten gegenüber den Werten 0-255 erfasst und die 
inverse Kurve per Grundfarbe (R, G, B) zur Korrektur nutzt. Allerdings 
musst du dazu erst auch einen Phototransistor einsetzen, der entweder im 
linearen Bereich arbeitet, oder die Kennlinie abermals linearisieren. Es 
geht auch mit einigen wenigen guten Kamerasensoren.
Leider ist von Natur aus eine PWM-Steuerung für LEDs fürs Auge nie 
linear, d.h. die 0-255 reichen eigentlich nicht wirklich hin von der 
Auflösung, besser ist da eine annähernd logarithmische Kurve. Die 
scheint teils in einigen LEDs mit integriertem Controller schon 
verwurstet zu sein.
In dem WD2812B-Streifen, den ich hier in den Fingern habe, ist offenbar 
auch eine vernünftige Weisskalibration vorgenommen worden.
So eine eigengestrickte Farbkalibration ist aber - je nach Anforderungen 
- recht aufwendig, und die Algos kriegt man ergo kaum geschenkt.
Das einfachste (ohne Sensorik) für Einzelstücke ist wohl Helmuts 
Vorschlag...

Grüsse,

- Strubi

von Siggi (Gast)


Lesenswert?

Wahrscheinlich liegt der gewünschte Farbton nicht im darstellbaren 
Farbraum.

Siehe z.B.:
http://print24.com/de/blog/2014/03/wo-liegen-die-unterschiede-zwischen-cie-rgb-und-cmyk/

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.