Forum: Mikrocontroller und Digitale Elektronik RGBW in RGB+Helligkeit umrechnen / ESP8266 oder AVR Mega


von Fragender (Gast)


Lesenswert?

Hallo,

Ich bastele an einer Lichtsteuerung mit WS2812B-LEDs.

Hierbei bekomme ich von einem externen Gerät die Werte im Bereich 
[0...1667[ für die jeweiligen Farbanteile von Rot, Grün, Blau und Weiß, 
also das bekannte RGBW. Zur Darstellung auf meinen Pixeln und der 
Anzeige auf Display und in meiner App brauche ich aber die jeweiligen 
Anteile für R, G und B (ohne W) sowie die globale (also gesamt-) 
Helligkeit.

Habt ihr Ideen, wie ich diese Werte für RGB und Helligkeit berechnen 
kann?

Zuerst dachte ich, ich nehme einfach die Farbanteile RGB, rechne jeweils 
1/3 Weiß dazu und skaliere dann alle drei Werte mit gleichem Faktor auf 
meinen Wertebereich [0...255]. Das sieht aber eigenartig aus und die 
Helligkeit fehlt mir auch noch komplett.

Google hat leider auch wenig ergeben, als einzige Idee gab es: einfach 
Weiß weglassen. Kann ja aber auch nicht die Lösung sein, da dann ja die 
Farbmischung nicht mehr passt.
Ich brauche keine mathematisch kalibrierten Werte, nur die Farben 
sollten schon in etwa passen.

Habt ihr Ideen?
Vielen Dank und Grüße!

von Joachim B. (jar)


Lesenswert?

Fragender schrieb:
> Hierbei bekomme ich von einem externen Gerät die Werte im Bereich

aha ein Gerät! interessant

> [0...1667[ für die jeweiligen Farbanteile von Rot, Grün, Blau und Weiß,
> also das bekannte RGBW. Zur Darstellung auf meinen Pixeln und der
> Anzeige auf Display und in meiner App brauche ich aber die jeweiligen
> Anteile für R, G und B (ohne W) sowie die globale (also gesamt-)
> Helligkeit.

also 0...1667 für RGBW war mir bis jetzt unbekannt, ich kannte bis dahin 
nur RGB und W war die Summe in der richtigen Mischung, aber die additive 
Farbmischung hat sich wohl seit damals weiter entwickelt.

> Zuerst dachte ich, ich nehme einfach die Farbanteile RGB, rechne jeweils
> 1/3 Weiß

definiere weiß, warmweiß, kaltweiß -> 2700K oder 6500K

> Habt ihr Ideen?

leider nein, das ist mir zu speziell

von egbert (Gast)


Lesenswert?


von Joachim B. (jar)


Lesenswert?

egbert schrieb:
> https://stackoverflow.com/questions/40312216/converting-rgb-to-rgbw

ich dachte er will es umgekehrt RGBW zu RGB?

CRI wäre für den Weißanteil noch interessant.

von Andre (Gast)


Lesenswert?

Joachim B. schrieb:
> die additive Farbmischung hat sich wohl seit damals weiter entwickelt.

Jain, man hat halt noch keine perfekten RGB LEDs erfunden. Deswegen muss 
man etwas weißes Licht dazu mischen um das Spektrum hin zu bekommen.
Theorie vs Praxis mal wieder

von Joachim B. (jar)


Lesenswert?

Andre schrieb:
> Jain, man hat halt noch keine perfekten RGB LEDs erfunden. Deswegen muss
> man etwas weißes Licht dazu mischen um das Spektrum hin zu bekommen.
> Theorie vs Praxis mal wieder

und das hilft dem TO wie?

nichtssagende Beiträge kann ich auch.....

von Andre (Gast)


Lesenswert?

Joachim B. schrieb:
> nichtssagende Beiträge kann ich auch.....

Das hast du ja weiter oben schon unter Beweis gestellt ;)
Wunderbar passiv-aggressive ihr-seid-alle-doof Beiträge kannst du auch 
verfassen, Kompliment.

von Joachim B. (jar)


Lesenswert?

Andre schrieb:
> Das hast du ja weiter oben schon unter Beweis gestellt ;)

nö ich habe gefragt, welches Messgerät, noch CRI und Farbtemperatur 
eingefügt, damit könnte der TO noch was anfangen um seine Frage zu 
spezifizieren, das war mehr als deine Ergänzung die nun niemanden 
weiterhilft :)

von Joachim B. (jar)


Lesenswert?

Fragender schrieb:
> Ich bastele an einer Lichtsteuerung mit WS2812B-LEDs.
>
> Hierbei bekomme ich von einem externen Gerät die Werte im Bereich
> [0...1667[ für die jeweiligen Farbanteile von Rot, Grün, Blau und Weiß,
> also das bekannte RGBW. Zur Darstellung auf meinen Pixeln und der
> Anzeige auf Display und in meiner App brauche ich aber die jeweiligen
> Anteile für R, G und B (ohne W) sowie die globale (also gesamt-)
> Helligkeit.
>
> Habt ihr Ideen, wie ich diese Werte für RGB und Helligkeit berechnen
> kann?

eine Idee wäre, du nimmst deinen RGBW Stripe und steuerst alle

RGBW von 0,0,0,0 bis 255,255,255,255

dann bekommst du Werte von deinem externen Gerät, zumindest dann kannst 
du die Werte wiederbekommen.

Helligkeit wird ja in LUX gemessen, aber was sagt dir das?

Ich hatte mich bei Hintergrundbeleuchtungen nur nach der LED Kennlinie 
gerichtet und das zu 0-100% "normiert"
LED Fading
https://www.mikrocontroller.net/articles/LED-Fading

Die Umrechnungen von RGB zu HUE findet man in fastLED Sourcen
https://github.com/FastLED/FastLED

: Bearbeitet durch User
von Fragender (Gast)


Lesenswert?

Joachim B. schrieb:
> aha ein Gerät! interessant
ja, ein Controller auf denen ich keinen Einfluss habe.
Dieser liefert für die 4 Farb-Komponenten Rot, Grün, Blau und Weiß je 
ein entsprechendes PWM-Signal, 600 Hz. Daher der Wertebereich von 0 bis 
1667.

FastLED ist leider keine Hilfe, das kann nicht mit RGBW umgehen. Das ist 
ja gerade der Punkt.

Die Normierung auf einen anderen Wertebereich (in meinem Fall 0 bis 255) 
sollte ja nicht das Problem sein. Nur eben die einzelnen Komponenten 
rausrechnen bereitet mir Probleme.

Un mein Stripe ist eben RGB, nicht RGBW...

Die Helligkeit brauche ich, da die vorhandene Software (sowohl für LEDs 
als auch für die Steuerungsanzeige in der App und auf dem Display) damit 
arbeitet.
Es hilft mir ja nicht viel, wenn ich irgendwelche Werte setze und diese 
dann nicht weiter verwenden kann, um zB die Helligkeit nachher über 
einen Drehgeber etc nachträglich anzupassen. Daher die Frage...

von Joachim B. (jar)


Lesenswert?

Fragender schrieb:
> ja, ein Controller auf denen ich keinen Einfluss habe.

und namenlos oder streng geheim, OK dann ist Hilfe ja fast nicht möglich

> Dieser liefert für die 4 Farb-Komponenten Rot, Grün, Blau und Weiß je
> ein entsprechendes PWM-Signal, 600 Hz. Daher der Wertebereich von 0 bis
> 1667.

war im Eröffnungsbeitrag nicht zu erkennen

> FastLED ist leider keine Hilfe, das kann nicht mit RGBW umgehen. Das ist
> ja gerade der Punkt.

und andere die mit RGBW Stripes umgehen können gibt es nicht?
Ich weiss das es mehr LIBs gibt, habe aber nicht alle angesehen.

> Die Normierung auf einen anderen Wertebereich (in meinem Fall 0 bis 255)
> sollte ja nicht das Problem sein. Nur eben die einzelnen Komponenten
> rausrechnen bereitet mir Probleme.

welche Probleme?
mal bei aditive Farbmischung gesucht?

> Un mein Stripe ist eben RGB, nicht RGBW...

OK ist klar, dann ignoriere doch aus deienm Gerät den W Anteil!
Ich verstehe immer noch nicht deine Fragen

Messgerät liefert RGBW, Stripe nur RGB, also W kann weg oder misst nur 
die Helligkeit, ggffs mit Gewichtung nach RGB -> additive Farbmischung.

> Die Helligkeit brauche ich, da die vorhandene Software (sowohl für LEDs
> als auch für die Steuerungsanzeige in der App und auf dem Display) damit
> arbeitet.
> Es hilft mir ja nicht viel, wenn ich irgendwelche Werte setze und diese
> dann nicht weiter verwenden kann, um zB die Helligkeit nachher über
> einen Drehgeber etc nachträglich anzupassen. Daher die Frage...

einem Drehgeber? ist mir unklar, ich bräuchte mindestens 2 wenn nicht 
sogar 3 ->
https://de.wikipedia.org/wiki/HSV-Farbraum

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Andre schrieb:
> Jain, man hat halt noch keine perfekten RGB LEDs erfunden. Deswegen muss
> man etwas weißes Licht dazu mischen um das Spektrum hin zu bekommen.
> Theorie vs Praxis mal wieder

Das Auge hat nur drei Typen von Farbsensoren also kann es auch nur drei 
Kanäle bei der Farbe des Lichtes auseinanderhalten.

CRI kommt erst bei Beleuchtungstechnik ins Spiel, weil ein farbiger 
Gegenstand die Spektralanteile des Lichtes anders behandelt, als das 
Auge.

von Wolfgang (Gast)


Lesenswert?

Joachim B. schrieb:
> OK ist klar, dann ignoriere doch aus deienm Gerät den W Anteil!
> Ich verstehe immer noch nicht deine Fragen

Ohne Berücksichtigung des W Anteils wird das wohl kaum etwas.
Einfaches Beispiel: Kaltweiß und Warmweiß besitzen den gleichen 
Weißanteil und dazu noch einen kleinen Schuss B bzw. R
Wenn du den W Anteil weg lässt, fehlt komplett das (dominante) weiße 
Licht und es bleibt nur funzeliges Blau oder Rot (und je nach LED evtl. 
etwas Grün).

GANZ SCHLECHTE Idee

> Messgerät liefert RGBW, Stripe nur RGB, also W kann weg oder misst nur
> die Helligkeit, ggffs mit Gewichtung nach RGB -> additive Farbmischung.

Du kannst weißes Licht aus R/G/B additiv zusammen mischen, weil das Auge 
auch nur drei Farbkanäle hat. Aber du kannst nicht aus einer 4 kanaligen 
Information (RGBW), die dann allerdings nicht orthogonal ist, einfach 
die Information eines Kanals wegschmeißen.

Setzte dich mal ein bisschen mit den Grundlagen auseinander, bevor du 
solchen Unfug verbreitest - sorry.

von Mob (Gast)


Lesenswert?

Ich habe mich schon eine ganze Weile damit beschäftigt, das W in RGB 
abzubilden.
Bei mir allerdings nur 256 W Werte.
Zum Schluss habe ich für alle W Werte eine lookup Tabelle erstellt.

Ich habe eine RGBW LED und eine RGB Led nebeneinander gelegt, jeden 
10ten Wert der RGBW nacheinander durchgegangen und solange mit den 
Werten der RGB Led gespielt, bis es ungefähr gleich aussah. Für die 
Werte dazwischen einfach linear interpoliert.
Das ganze mit Papier und Bleistift mitgeschrieben.

JE nach LED und möglichen Stufen bekommt man es nicht hin, zwei gleiche 
Farben herauszubekommen.

Wie gesagt, mir ging es dabei nur um 256 verschiedene Weisstöne. Wenn du 
all deine 1667^4 Möglichkeiten abbilden willst, müsstest du das 
irgendwie automatisieren.

von Joachim B. (jar)


Lesenswert?

Wolfgang schrieb:
> Setzte dich mal ein bisschen mit den Grundlagen auseinander, bevor du
> solchen Unfug verbreitest - sorry.

ach der Troll mal wieder, mittlerweile erkenne ich dich, viel sinnloses 
Geschreibsel was dem TO nichts bringt, nicht mal Suchworte und mich 
nicht mehr tangiert.

Mob schrieb:
> Ich habe mich schon eine ganze Weile damit beschäftigt, das W in RGB
> abzubilden.
> Bei mir allerdings nur 256 W Werte.
> Zum Schluss habe ich für alle W Werte eine lookup Tabelle erstellt.

so dachte ich ja auch und korrigiere

Joachim B. schrieb:
> eine Idee wäre, du nimmst deinen RGB Stripe und steuerst alle
>
> RGB von 0,0,0 bis 255,255,255
>
> dann bekommst du Werte von deinem externen Gerät, zumindest dann kannst
> du die Werte wiederbekommen.

maximale Helligkeit gibt es nur mit alle RGB auf 255, das wird natürlich 
nicht dein Wunschweiss sein, aber das liegt nun an dir dieses als Wert 
in deiner Tabelle gemäß deinem Messgerät festzulegen, es liefert dir ja 
alle Infos in RGBW

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.