Forum: Mikrocontroller und Digitale Elektronik Wunschfarbe über eine RGB-LED und PWM erzeugen


von Richard (Gast)


Lesenswert?

Hallo,

ich habe durch den ganzen Forum geschaut, leider nichts wirklich 
brauchbares gesehen.

Ich will eine bestimmte Farbe im Programm vorgeben z.B. RGB (255, 40, 
90), der Algorithmus soll mir dann das benötigte PWM-Signal (über 
Mikrocontroller) für jeden Farbkanal dementsprechend einstellen, so dass 
ich diese Farbe an der RGB-LED wahrnehmen kann.

Hat jemand versucht solch einen Algorithmus zu schreiben? Mit welcher 
Genauigkeit kann ich rechnen, dass wenn ich eine bestimmte Farbe 
einstelle, die auch bekommen werde?

Danke

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Hallo,

Algorithmus wäre dafür ein wenig übertrieben. Entweder dein 
Mikrocontroller kann Soft-PWM oder Hard-PWM (AVR PWM), dann 
schliesst du noch die RGB richtig an den Controller an und schreibst die 
3 RGB-Werte in die 3 PWM-Ausgaberegister.

Gruss

von Ralf (Gast)


Lesenswert?

> Mit welcher Genauigkeit kann ich rechnen, dass wenn ich eine bestimmte
> Farbe einstelle, die auch bekommen werde?
Du meinst die Farbechtheit? Du kannst nur mit der Genauigkeit rechnen, 
die deine LED hergibt. Alles weitere musst du in Software korrigieren. 
Deswegen gibt es ja für Monitore entsprechende Einstellungen für 
Farbschemata, sog.Farbprofile.

Ralf

von Richard (Gast)


Lesenswert?

Mixer S. schrieb:
> Hallo,
>
> Algorithmus wäre dafür ein wenig übertrieben. Entweder dein
> Mikrocontroller kann Soft-PWM oder Hard-PWM (AVR PWM), dann
> schliesst du noch die RGB richtig an den Controller an und schreibst die
> 3 RGB-Werte in die 3 PWM-Ausgaberegister.
>
> Gruss


Ich glaube nicht, dass es so einfach geht. Denn wenn ich ein 8-Bit PWM 
benutze und für R, G und B-Kanäle irgendeinen Wert einstelle, heißt es 
nicht unbedingt, dass es der gewollten RGB Farbe entspricht. Das würde 
nur dann der Fall sein, wenn das PWM-Signal bzw. der mittlere Strom 
(vorgegeben durch den Duty Cycle) linear mit der Lichtstärke einhergeht, 
was ich aber stark bezweifele.

von Richard (Gast)


Lesenswert?

Ralf schrieb:
>> Mit welcher Genauigkeit kann ich rechnen, dass wenn ich eine bestimmte
>> Farbe einstelle, die auch bekommen werde?
> Du meinst die Farbechtheit? Du kannst nur mit der Genauigkeit rechnen,
> die deine LED hergibt. Alles weitere musst du in Software korrigieren.
> Deswegen gibt es ja für Monitore entsprechende Einstellungen für
> Farbschemata, sog.Farbprofile.
>
> Ralf


Ich meine eher, dass wenn ich die Farbe RGB (234, 23, 9) haben will und 
diese durch das PWM-Signal im Programm einstelle, ich diese auch mit dem 
Spektrometer messen werde.

von Ralf (Gast)


Lesenswert?

> Ich meine eher, dass wenn ich die Farbe RGB (234, 23, 9) haben will und
> diese durch das PWM-Signal im Programm einstelle, ich diese auch mit dem
> Spektrometer messen werde.
Hm, ich bin kein Opto-Experte, kann mich also täuschen, aber ich glaube 
zumindest ohne eine Korrekturtabelle o.ä. wird's nicht gehen, weil man 
ja denke ich Streuungen in jeder LED hat.

Ich hab's noch nie probiert ne RGB mit PWMs anzusteuern, aber hier denke 
ich ergibt sich das Problem, dass ja dann die einzelnen Farben auch 
tatsächlich mal alleine leuchten, in deinem Beispiel oben wird Rot 
verglichen mit den anderen Farben sehr lange an sein. Ich könnte mir 
vorstellen, dass das dann echt nicht dem gewünschten Effekt entspricht.

Hm... Wäre das hier evtl. die Lösung:
Beitrag "Re: Konstantstrom mit PWM"

Ralf

von J. S. (Gast)


Lesenswert?

Und das lässt sich nicht schnell wechseln?

von Karl H. (kbuchegg)


Lesenswert?

Richard schrieb:
> Ich meine eher, dass wenn ich die Farbe RGB (234, 23, 9) haben will und
> diese durch das PWM-Signal im Programm einstelle, ich diese auch mit dem
> Spektrometer messen werde.

Das wirst du sowieso nie, egal wie du das machst.
Dazu bräuchtest du eine Lichtquelle, die du in der Frequenz steuern 
kannst. Die hast du aber nicht. Du hast nur 3 Lichtquellen, deren 
Einzelfrequenzen du zusammenmischen kannst, so dass sich optisch ein 
Farbeindruck ergibt. Und der entsteht für dich auch nur dadurch, dass 
dein Auge Farbrezeptoren hat, die sich jeweils einzelne Frequenzanteile 
heruaspicken und deren Verteilung dann im Gehirn zu einem Farbeindruck 
zusammengführt werden.
Ein Spektrometer würde dir aber immer sagen, dass Rot, Grün und Blau 
hast. Das ist aber etwas völlig anderes als eine einzelne Frequenzlinie 
aus einem kontinuierlichem Spektrum herauszuschneiden.

Farben sind etwas komplizierter als einfach nur: Wir haben da R, G, B 
und alles andere interessiert nicht.

von Maxx (Gast)


Lesenswert?

Deswegen schrieb er vom Spektrometer, dass die Intensitäten der drei 
Teil-Spektren auswerten kann. Danach kann er dann für die r,g und b LEDs 
seperat ausmessen.

In Oposition zu einem Spektroskop, dass dass lediglich die Anwesenheit 
von Frequenzen anzeigt.

von Richard (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Richard schrieb:
>> Ich meine eher, dass wenn ich die Farbe RGB (234, 23, 9) haben will und
>> diese durch das PWM-Signal im Programm einstelle, ich diese auch mit dem
>> Spektrometer messen werde.
>
> Das wirst du sowieso nie, egal wie du das machst.
> Dazu bräuchtest du eine Lichtquelle, die du in der Frequenz steuern
> kannst. Die hast du aber nicht. Du hast nur 3 Lichtquellen, deren
> Einzelfrequenzen du zusammenmischen kannst, so dass sich optisch ein
> Farbeindruck ergibt. Und der entsteht für dich auch nur dadurch, dass
> dein Auge Farbrezeptoren hat, die sich jeweils einzelne Frequenzanteile
> heruaspicken und deren Verteilung dann im Gehirn zu einem Farbeindruck
> zusammengführt werden.
> Ein Spektrometer würde dir aber immer sagen, dass Rot, Grün und Blau
> hast. Das ist aber etwas völlig anderes als eine einzelne Frequenzlinie
> aus einem kontinuierlichem Spektrum herauszuschneiden.
>
> Farben sind etwas komplizierter als einfach nur: Wir haben da R, G, B
> und alles andere interessiert nicht.


Also ein Spektrometer zeigt mir (bei einer Farbmessung) stets den 
Farbort (x,y) in einem CIE-Farbraum an:

http://de.wikipedia.org/wiki/CIE-Normvalenzsystem

und dieses repräsentiert die Farbwahrnehmung (also nicht nur 
physikalisch) des Menschen.

Ich hatte auch schon die Idee (auch wenn nicht sehr wissenschaftlich) 
mir durch Messung solch eine Tabelle zu erstellen:

Farbort (x,y) | i_R | i_G | i_B |
(x1,y1)       | 25  | 0   | 0   |
(x1,y2)       | 13  | 20 | 56   |
...           | ... | ... | ... |
(xn,yn)       | 22  | 7   | 0   |

damit würde ich den Zusammenhang zwischen den Strömen (bzw. mittlerem 
Strom durch PWM-Ansteuerung)) und dem Farbort herstellen. Allerdings bin 
ich mir nicht sicher ob ich diese LookUp-Tabelle auch fitten könnte in 
der Form:

(x,y) = (a_0*i_R + b_0*i_G + c_0*i_B, a_1*i_R + b_1*i_G + c1_*i_B) oder 
so ähnlich. Allerdings wüsste ich nicht wie man sowas fitten würde...

von klaus2 (Gast)


Lesenswert?

die umrechnung von x,y nach rgb ist nicht ganz ohne.

zudem musst du die rgb die-s der led einzeln ausmessen und normieren, 
mit einem lookup table für jeden farb UND helligkeitsort oder dessen 
dynamischer korrektur.

die "gesehene" farbe passt dann, der farbwiedergabeindex ist dennoch für 
die füsse.

Klaus.

von ... .. (docean) Benutzerseite


Lesenswert?

-> http://www.mikrocontroller.net/articles/LED-Fading

demnach muß du die PWM Werte log. machen um eine gleichmäßig Verteilung 
zu erreichen

von Richard (Gast)


Lesenswert?

klaus2 schrieb:
> die umrechnung von x,y nach rgb ist nicht ganz ohne.
>
> zudem musst du die rgb die-s der led einzeln ausmessen und normieren,
> mit einem lookup table für jeden farb UND helligkeitsort oder dessen
> dynamischer korrektur.
>
> die "gesehene" farbe passt dann, der farbwiedergabeindex ist dennoch für
> die füsse.
>
> Klaus.

Ich wäre schon froh, wenn ich einen Zusammenhang zwischen dem Farbort 
und den Strömen herstellen könnte ...

@... ...: Danke für den Link!

von Robert N. (Gast)


Angehängte Dateien:

Lesenswert?

Wir haben so was mal angefangen...

Du brauchst in jedem Fall die Farborte und die Intensitäten der 
einzelnen LEDs. Danach dann von xy nach RGB umrechnen. Auf Grund der 
Fertigungstoleranzen von LED zu LED aber nicht praktikabel. Während die 
Physikfreaks daran geknobelt haben, haben wir Tekkies einfach eine 
"idealisierte" Umrechnung genutzt, die imho ausreichend genau ist. Kommt 
halt auf Deine Anforderungen an.

Im Bild siehst Du, dass die Werte für R, G und B im Unbuntpunkt 
(entsprechend der LEDs) stark abweichen.

robbse

von Richard (Gast)


Lesenswert?

Robert N. schrieb:
> Wir haben so was mal angefangen...
>
> Du brauchst in jedem Fall die Farborte und die Intensitäten der
> einzelnen LEDs. Danach dann von xy nach RGB umrechnen. Auf Grund der
> Fertigungstoleranzen von LED zu LED aber nicht praktikabel. Während die
> Physikfreaks daran geknobelt haben, haben wir Tekkies einfach eine
> "idealisierte" Umrechnung genutzt, die imho ausreichend genau ist. Kommt
> halt auf Deine Anforderungen an.
>
> Im Bild siehst Du, dass die Werte für R, G und B im Unbuntpunkt
> (entsprechend der LEDs) stark abweichen.
>
> robbse


Aber wie komme ich nun vom Strom der einzelnen LED-Kanäle für R, G und B 
zum Farbort (x,y) ?

von Karl H. (kbuchegg)


Lesenswert?

Richard schrieb:

> Aber wie komme ich nun vom Strom der einzelnen LED-Kanäle für R, G und B
> zum Farbort (x,y) ?

Wenn es ganz exakt sein soll hilft nur ausmessen.
Jede LED einzeln

Daher auch die Frage:
Was willst du eigentlich bauen und warum ist es so wichtig, dass der 
Farbort 100% exakt stimmt?

von Richard (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Richard schrieb:
>
>> Aber wie komme ich nun vom Strom der einzelnen LED-Kanäle für R, G und B
>> zum Farbort (x,y) ?
>
> Wenn es ganz exakt sein soll hilft nur ausmessen.
> Jede LED einzeln
>
> Daher auch die Frage:
> Was willst du eigentlich bauen und warum ist es so wichtig, dass der
> Farbort 100% exakt stimmt?


Es geht um eine Diplomarbeit, ich hatte schon mal auch einen Post im 
OffTopic-Bereich gepostet, jedoch mit einer etwas anderen Frage, aber 
zum gleichen Thema. In der Diplomarbeit geht es um RGB-Backlight für LCD 
...

Also mir wäre es viel lieber, wenn ich irgendwie theoretisch von den 
Strömen zum Farbort kommen könnte. Aber im worst case muss ich einfach 
eine LookUp-Tabelle erstellen mit den Strömen und dem zugehörigen 
Farbort.
Nur das Problem mit der LookUp-Tabelle ist die, dass ich sehr sehr viele 
Messungen machen muss, um eine einigermaßen mäßige Genauigkeit zu 
erreichen. Und wenn ich jeden LED-Strom mit lausigen 3-Bit (!!!) 
abstufe, komme ich auf 2^3 * 2^3 * 2^3 = 512 Messungen!

Natürlich wird sich der Farbort von einer LED zur anderen etwas 
unterscheiden, aber in diesem Fall ist mir nicht die 100% 
Treffsicherheit des Farborts mit den Strömen wichtig, sondern eher die 
Theorie dahinter. Und diese Theorie könnte man z.B. eine LED Charge 
recht genau beschreiben (denke ich zumindest).

von Karl H. (kbuchegg)


Lesenswert?

Richard schrieb:

> Es geht um eine Diplomarbeit, ich hatte schon mal auch einen Post im
> OffTopic-Bereich gepostet, jedoch mit einer etwas anderen Frage, aber
> zum gleichen Thema. In der Diplomarbeit geht es um RGB-Backlight für LCD
> ...

Vergiss den ganzen Mumpitz.
Besorg dir im Web eine HLS to RGB Umrechnnungsfunktion und verwende die 
RGB Werte, die dort rauskommen direkt zur Ansteuerung des Backlights.

H   ... Hue         Farbort im Farbkreis
L   ... Lightness   Helligkeitswert der Farbe
S   ... Saturation  Farbsättigung

Mittels H kann man die Farben im Farbkreis schön durchspielen, so dass 
sich beim durchgehen des Wertes von 0 bis 360 eine saubere Abfolge der 
Farben von Rot über Gelb über Grün über Cyan über Blau über Magenta 
zurück nach Rot ergibt. Sozusagen ein Drehregler, mit dem man die Farbe 
einstellt.
Lightness ist die Helligkeit
und Saturation gibt die 'Buntheit' an. An einem Ende steht reines 
Schwarz/Weiß in Form von Grauwerten, am anderen Ende der Skala sind die 
Farben in ihrer ganzen Pracht.


Alles andere ist massiver Overkill für nichts und wieder nichts.

Kein Mensch setzt sich vor eine Anzeige und misst nach ob das angezeigte 
Rot tatsächlich eine Wellenlänge von (keine Ahnung) 440nm hat, oder ob 
du um 2 nm daneben bist. Optisch siehst du den Unterschied sowieso 
nicht.

Gehen in den Mediamarkt deines Vertrauens und sieh dir die Fernseherwand 
an, bei gleichem Bild auf allen Geräten. Keine 2 Geräte werden exakt 
dieselbe Farbwiedergabe haben, alle werden sich ganz leicht 
unterscheiden. Das macht aber nichts. Ein roter Apfel ist auf allen 
Geräten ein roter Apfel, auch wenn jedes rot ein klein wenig anders 
aussieht und der Himmel ist auch auf allen Geräten blau, auch wenn es 
nicht unbedingt beim genauen hinschauen überall dasselbe Blau ist. Ein 
Apfelbaum auf einer Sommerwiese bei blauem Himmel sieht auf allen 
Geräten gleich aus, selbst wenn man beim genauen Hinschauen durchaus 
Unterschiede in den Farben feststellen kann.


Exakte Farbwidergabe ist eine Wissenschaft für sich. Generationen von 
Druckern (die in den Druckereien), Filmherstellern, Monitorhersteller, 
Druckerhersteller und sonstige Farbenmischer haben sich damit 
beschäftigt. Und was ist dabei herausgekommen? Wenn du eine bestimmte 
Wandfarbe haben willst, gehst du in den Baumarkt deines Vertrauens und 
wählst dir aus einem Farbfächer eine aus. Für diese spezielle Farbe hat 
die Mischmaschine das Rezept parat und mischt die Farbe (aus mehr als 
nur 3 Grundfarben!). Und ob die dann an deiner Wand exakt gleich 
aussieht wie auf dem Farbfächer, kann dir kein Mensch garantieren.

von Robert N. (Gast)


Lesenswert?

> Also mir wäre es viel lieber, wenn ich irgendwie theoretisch von den
> Strömen zum Farbort kommen könnte. Aber im worst case muss ich einfach
> eine LookUp-Tabelle erstellen mit den Strömen und dem zugehörigen
> Farbort.
> Nur das Problem mit der LookUp-Tabelle ist die, dass ich sehr sehr viele
> Messungen machen muss, um eine einigermaßen mäßige Genauigkeit zu
> erreichen. Und wenn ich jeden LED-Strom mit lausigen 3-Bit (!!!)
> abstufe, komme ich auf 2^3 * 2^3 * 2^3 = 512 Messungen!
>
> Natürlich wird sich der Farbort von einer LED zur anderen etwas
> unterscheiden, aber in diesem Fall ist mir nicht die 100%
> Treffsicherheit des Farborts mit den Strömen wichtig, sondern eher die
> Theorie dahinter. Und diese Theorie könnte man z.B. eine LED Charge
> recht genau beschreiben (denke ich zumindest).

Dann lass die Finger von der Fuscherei, die ich eingeworfen habe!

Nur zur Vollständigkeit: Wir haben aus den RGB-Werten die HSV-Werte 
berechnet, und diese dann auf das darstellbare Farbdreieck übertragen; 
also beim Farbort von Rot = 0°, Farbort Grün = 120°, Farbort Blau = 
240°, Unbuntpunkt = Weisspunkt.
Dann noch die Intensitäten der LEDs zum Unbuntpunkt hin immer mehr mit 
einrechnen und schon passt es. Beim Nachmessen eines Farbverlaufs 
konnten wir einigermaßen genaue Übereinstimmungen feststellen.

Aber wie gesagt: Das war eine Bastellösung, die in einer Diplomarbeit 
nichts verloren hat; es sei denn Du weisst nach warum das so nicht 
funktioniert ;)

robbse

von Qertz (Gast)


Lesenswert?

So sieht es aus. Wenn die Hersteller jedes einzelne TV exakt 
Farbkalibrieren würden, müsste man an den Verkaufspreis wohl noch ein 
Paar Nullen dranhängen.

von Osche R. (Gast)


Lesenswert?

Richard schrieb:

> Also mir wäre es viel lieber, wenn ich irgendwie theoretisch von den
> Strömen zum Farbort kommen könnte.

Wenn das eine Diplomarbeit wird, dann darf da ruhig Mathematik mit bei 
sein...

* LED-Strom gibt Lichttrom in Lumen (siehe LED-Datenblatt)
* Lichtstrom gibt spektrale Energie
* Energieverteilung gibt Farbort


Gruß
Patrick

von Karl H. (kbuchegg)


Lesenswert?

Qertz schrieb:
> So sieht es aus. Wenn die Hersteller jedes einzelne TV exakt
> Farbkalibrieren würden, müsste man an den Verkaufspreis wohl noch ein
> Paar Nullen dranhängen.

Genauso siehts aus.
Und wehe der Kunde dreht am Helligkeits- oder Kontrastregler!


Solange es nur um den optischen Eindruck geht, ist HSV-RGB bzw. HLS-RGB 
gut genug, denn seien wir uns ehrlich: mit RGB einen bestimmten 
Farbeindruck zu erzeugen ist, ähm mühsam.
Den Weißpunkt sollte man noch abgleichen, denn speziell beim Weiß und 
noch ein wenig beim Gelb fällt ein Farbstich sofort auf. Aber alles 
andere ist relativ unkritisch.

Anders sieht die Sache natürlich aus, wenn es sich um ein Messgerät 
handelt. Dann ist auch ein hoher Aufwand gerechtfertig, den ein Kunde 
selbstverständlich zahlen muss.

Aber wenn du eine Druckerei zum rotieren bringen willst, dann gehst du 
mit einem Photo auf CD hin und verlangst davon einen professionellen 
Abzug. Aber er muss exakt farbident sein mit dem Ausdruck, den du auf 
deinem Tintenpisser produziert hast (Ausdruck liegt bei). Da kannst du 
dann mal unerfahrene Drucker so richtig fluchen hören.

von Richard (Gast)


Angehängte Dateien:

Lesenswert?

Patrick S. schrieb:
> Richard schrieb:
>
>> Also mir wäre es viel lieber, wenn ich irgendwie theoretisch von den
>> Strömen zum Farbort kommen könnte.
>
> Wenn das eine Diplomarbeit wird, dann darf da ruhig Mathematik mit bei
> sein...
>
> * LED-Strom gibt Lichttrom in Lumen (siehe LED-Datenblatt)
> * Lichtstrom gibt spektrale Energie
> * Energieverteilung gibt Farbort
>
>
> Gruß
> Patrick

@Danke an alle für die bereits zahlreichen Antworten, die haben mich auf 
die Idee gebracht, wie ich den Zusammenhang zwischen dem Farbort und dem 
Strom herstellen könnte (siehe Anhang).

Dabei setze ich voraus, dass das Spektrum jedes R, G bzw. B-Kanals der 
LED gaußförmig ist. Die fehlenden Größen lambda(i) und C1(i) kann ich ja 
aus dem Datenblatt bzw. aus der Messung relativ leicht bestimmen.

Ich meine es würde so funktionieren, was meint ihr dazu?

von Richard (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

noch ein letzter Nachtrag für meine Nachfolger, die auf der Suche nach 
dem gleichen Thema waren wie ich ...

Das mit Gauß hat nicht hingehaut, da die Form der spektralen Verteilung 
der LED nicht dem Gauß entsprach, der Fehler wäre einfach zu groß. Die 
Verteilung der LED ist auch unsymmetrisch, deshalb muss man mindestens 
zwei Funktionen Betrachten einmal für die linke Seite bis zu lambda_max 
und eine für die rechte Seite.

Als Funktion eignet sich gut die zweite Ableitung der Cauchy 
Distribution, mit

f(x) = A / (1 + ((x-x_0)/W)^2)^2

es kann sicherlich eine andere Funktion gefunden werden, die sich besser 
eignet, aber der Vorteil dieser ist der, dass sich die Parameter sehr 
gut interpretieren lassen.

A = P_max bei lambda_max
x_0 = lambda_max
W = Stromabhängige Breite der Kurve (denn diese wird etwas verzehrt).

A, x_0 und W lassen sich sehr leicht mit ein paar Messungen in Matlab 
fitten.

Ich habe vergeblich versucht, die Kurvenschar für verschiedene Ströme 
durch Matlab fitten zu lassen um P(lambda, i_R) rauszubekommen. Aber mit 
diesem Ergebnis bin auch zufrieden ...

von Simon B. (nomis)


Lesenswert?

Richard schrieb:
> Die Verteilung der LED ist auch unsymmetrisch, deshalb muss man mindestens
> zwei Funktionen Betrachten einmal für die linke Seite bis zu lambda_max
> und eine für die rechte Seite.

Pardon, aber ich muss doch nochmal nachfragen: Die xy-Farbkoordinaten 
von den LEDs stehen doch im Datenblatt und sind hoffentlich unabhänig 
von dem Strom. Die Intensität pro Strom ist doch vermutlich auch 
bekannt.

Damit ist die resultierende Farbe eine lineare Kombination (mit 
positiven Gewichten) aus den drei Farborten, wie man das von den 
typischen Dreiecken zu RGB-Farbräumen her kennt. Das kann (und sollte) 
man in einer Diplomarbeit natürlich mit den Integralen über die Spektren 
rechtfertigen, man sieht da aber sehr direkt, dass sich die Integrale 
natürlich additiv verhalten und das direkt auf die Farborte 
durchschlägt.

Ohne das jetzt nachgerechnet zu haben wird man letztlich bei sowas hier 
landen:
1
x = (Rx * Ir + Gx * Ig + Bx * Ib) / (Ir + Ig + Ib)

wobei Rx, Gx, Bx der x-anteil des Farborts ist und Ir, Ig, Ib die 
Intensität des Lichts ist (ggf. muss man also noch Strom nach Intensität 
umrechnen). Analog für y.

Ok, eventuell muss man nochmal gucken, wie sehr sich der Farbort der 
LEDs mit dem Strom verändert, das Diagramm von dir sieht ja so aus, als 
würde sich das mit mehr Strom nach oben verlagern. Aber das ist das 
schwierigere Problem gegenüber der Kombination der drei LEDs.

Viele Grüße,
        Simon

von Frank B. (f-baer)


Lesenswert?

Richard: Das sieht mir auf den ersten Blick wie eine Weibull-Verteilung 
aus.

F(x) = 1 - e^(a * x^beta)

Vielleicht hilft dir das Stichwort weiter um ein genaueres 
mathematisches Modell zu finden. Der Weg über die Ableitung der 
Cauchy-Verteilung erscheint mir doch recht umständlich.

von Richard (Gast)


Angehängte Dateien:

Lesenswert?

Danke nochmal für die Anregungen! Ich poste mal auch das Datenblatt ...

@Simon:

Im Datenblatt ist lediglich die relative Lichtstärke (Luminous 
intensity) angegeben.

Hmm, ich kann nicht ganz nachvollziehen wie der Zählerterm zustande kam, 
denn der Farbort ist über die Tristimuluswerte X,Y,Z folgendermaßen 
definiert:

x = X/(X+Y+Z), y = Y/(X+Y+Z)      (1)

und

X = int(P(lambda)*x(lambda))d_lambda, analog
Y = int(P(lambda)*y(lambda))d_lambda

wobei x(lambda) und y(lambda) Empfindlichkeitskurven des Auges sind.

Es gilt aber auch für Lichtstärke (Luminous intensity):

I = d_X(lambda)/d_omega, mit omega als Winkel.

Also sind Lichtstärke und spektrale Verteilung über Ableitung des 
Integralls miteinander verbunden. Also könntest du die Gleichung nach X 
in Abhängigkeit der Lichtstärke auflösen und in (1) einsetzen.

Dann hätte man sowas ähnliches wie in deiner Gleichung ... Es könnte gut 
sein, dass es zur groben Einschätzung gut dienen kann. Aber die Profs 
sind da sehr pingelig und wollen alles hergeleitet haben.



@Frank Bär:

Die Funktion sieht tatsächlich aus wie meine spektrale Verteilung, 
allerdings habe ich Matlab jetzt probiert den Datensatz mit lambdas und 
Intensitäten zu geben, damit er mir mit dem Weibull-Ansatz den Datensatz 
fittet. Aber der weigerte sich und gab nur eine Flache Linie raus, mit 
dem Hinweis, dass es die beste Approximation wäre ... :)

Anscheinend lässt sich die Funktion für Wellenlängen (Bereich ~nm) nicht 
annähern und die einzelnen Parameter lassen sich nicht so schön und 
nachvollziehbar interpretieren.

von Simon B. (nomis)


Lesenswert?

Oh fsck, ich habe mir gerade einen schon ziemlich länglichen Text 
weggelöscht.

Ich gehe mal gepflegt eine Runde Foren-und-Webbrowser-hassen, sorry.

Viele Grüße,
        Simon

vim öffnend

von Simon B. (nomis)


Lesenswert?

Ok, neuer Versuch...

Ich glaube Du machst Dir ein Problem wo gar keins ist.

Du willst PWM verwenden. Das heißt insbesonders, dass durch
die LED immer der gleiche Strom fließt (solange sie eben
eingeschaltet ist). Insbesonders kannst Du damit das
Diagramm auf Seite 9 oben links gepflegt ignorieren.

Genauso kannst Du die Diagramme auf Seite 10 ignorieren -
der Strom im eingeschalteten Zustand ist immer der gleiche.
Du musst nicht mit dem langfristigen Durchschnittsstrom
rechnen, sondern mit dem Strom, der im eingeschalteten
Zustand durchfließt.

Nehmen wir mal 20mA an, weil das ganze Datenblatt damit
arbeitet.

Bei der Herstellung wurden die LEDs in verschiedene
Farbortgruppen einsortiert, je nachdem, welche Farbe sie bei
20mA haben. Die Einteilung der Gruppen siehst Du auf Seite
5. Es gibt für Rot nur eine Farbortgruppe, die unten links
mit den Eckpunkten eines Vierecks im Chromatizitätsdiagramm
spezifiziert ist. Für Grün und Blau gibt es je 4 Gruppen,
welcher Gruppe Deine LED angehört, kannst Du der
Bauteilbezeichnung entnehmen.

Ich mache mir hier mal das Leben noch ein bischen einfacher,
indem ich statt dem Viereck z.B. den Mittelpunkt nehme. Die
roten LED chips betrachte ich im folgenden also so, als
hätten sie Rx = 0.6938 und Ry = 0.3013 (Mittelwert der
vier Eckpunkte), bei Grün und Blau dann natürlich für die
verschiedenen Gruppen unterschiedlich, aber welcher Gruppe
deine LED angehört, weißt Du ja.

So, jetzt habe ich einen Hänger, wo ich sehr relevante Daten
dem Datenblatt nicht entnehmen kann.

Es geht um die Helligkeit der LEDs zueinander: Wenn ich
jeden LED-Chip mit 20mA kontinuierlich einschalte, bekomme
ich ja einen (ungefähr) weißen Farbeindruck. Das hängt
offensichtlich davon ab, wie das Verhältnis der (absoluten)
Helligkeiten zueinander ist.

Auch hier findet eine Gruppierung der LEDs nach Helligkeit
statt, siehe S. 6. Allerdings kommen mir diese Gruppen sehr
breit vor. Eventuell muss man hier mit der tatsächlichen LED
einmal das 100%-Weiß nachmessen und so rückwärts auf die
relativen Gewichte der verschiedenen Farben zueinander
schließen. Gleich nochmal mehr dazu.

Es ist anhand der CIE-Integrale für X, Y, Z sehr leicht
einzusehen, dass sich die (x,y)-Farben additiv verhalten.
Angenommen, die drei LED-Chips wären "gleich hell" (wir
ignorieren also erstmal das eben angesprochene Problem),
dann könnte man den Farbort der Mischfarben folgendermaßen
bestimmen:

Seien pr, pg, pb die PWM-Prozentwerte für Rot/Grün/Blau und
gelte pr + pg + pb = 100%. Dann gilt:

x = (Rx * pr + Gx * pg + Bx * pb)
y = (Ry * pr + Gy * pg + By * pb)

Das brauchen wir nur minimal anzupassen, wenn wir
pr + pg + pb  != 100% zulassen wollen:

x = (Rx * pr + Gx * pg + Bx * pb) / (pr + pg + pb)
y = (Ry * pr + Gy * pg + By * pb) / (pr + pg + pb)

Mit pr = pg = pb = 100% ergibt sich für unser Mischweiß:

Wx = (Rx + Gx + Bx) / 3
Wy = (Ry + Gy + By) / 3

Aber hier kommt jetzt die reale Welt ins Spiel. Wenn wir das
Mischweiß nachmessen, kommen wir vermutlich auf einen
anderen Farbort, nennen wir ihn (Wx', Wy'). Wir müssen jetzt
einen Weißabgleich durchführen. Das kann man - wieder das
gleiche Argument mit der Linearität der Integrale - mit
fixen Korrekturkonstanten kr, kg, kb erreichen, die man mit
folgendem Gleichungssystem bestimmen kann:

Wx' = (Rx * kr + Gx * kg + Bx * kb)
Wy' = (Ry * kr + Gy * kg + By * kb)
kr + kg + kb = 1

Das ist ein Gleichungssystem mit drei Gleichungen und drei
Unbekannten: lösbar. Dafür muss man natürlich Wx' und Wy'
entweder gemessen haben, oder doch noch irgendwie im
Datenblatt gefunden habe...

Kennt man diese Konstanten, kann man die allgemeine
Farbmischung so formulieren:

x = (Rx*kr*pr + Gx*kg*pg + Bx*kb*pb) / (pr + pg + pb)
y = (Ry*kr*pr + Gy*kg*pg + By*kb*pb) / (pr + pg + pb)

Analog zum Weißabgleich kannst Du natürlich umgekehrt ein
Gleichungssystem lösen um von gegebenen (x,y) auf deine
gewünschten Prozentwerte zu kommen.

So. Ich finde das eigentlich vergleichsweise überschaubar,
insbesonders weil hier die ganzen Frequenzspektren nur sehr
indirekt ins Spiel kommen (nämlich um zu rechtfertigen, dass
man so rechnen darf, wie ich es oben getan habe).

Ich hoffe, das hilft Dir weiter.

Viele Grüße,
        Simon

von Richard (Gast)


Lesenswert?

Simon Budig schrieb:
> Ok, neuer Versuch...


Ok, jetzt verstehe ich Deine Rechnung.

Ja, es kling sehr nachvollziehbar. Auch wenn der Strom verändert wird 
kann man sich die Abhängigkeit der Lichtstärke vom Strom (S. 9, oben) 
berechnen lassen.

Allerdings hast du recht mit der Angabe über die Streuung der 
Lichtstärke von der jeweiligen Charge (S.6), sehr sehr hilfreich wäre 
die Angabe im Datenblatt (wie Du es bereits erwähnt hast) die Angabe 
über die Lichtstärkeanteile der einzelnen Farben (R,G,B) für z.B. 20mA.

Also ein riesen Danke für den ausführlichen Bericht, der hat mir einen 
Denkstoß in die andere Richtung gegeben!

Ich werde auf jeden Fall mit dem Spektrometer Deine Vorschläge 
überprüfen!
Und mir nochmal Gedanken über Optische Effizienz [lm/W], Lichtstärke, 
etc. machen, vielleicht kann ich diese Größen noch konstruktiv in 
Verbindung bringen ...

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.