Forum: Mikrocontroller und Digitale Elektronik Frage an die RGB-LED controller Erbauer


von Roman (Gast)


Lesenswert?

Nein nein nein ... nicht noch ein weiteres RGB Led Projekt...
Was mich viel mehr interessieren wuerde, die RGB Led leuchten 
verschieden hell. Leuchten alle drei Led 100% hell, ergibt es nie die 
weisse farbe. Manche LED hersteller geben die Weiss Werte an, andere 
nicht.
Macht Ihr bei Euren RGB Led Projekten eine Farb korrektur oder laesst 
Ihr es ganz aus ??
Oder hat jemand eine Mathematische Idee ?? Wie macht Ihr es Leute ??


lg roman

: Verschoben durch User
von Fabian B. (fabs)


Lesenswert?

Wenn du die Helligkeitswerte für R, G und B nicht über RGB sondern über 
einen HSV-Algorithmus berechnest, kannst du die Farbkorrektur recht 
einfach in Hardware machen.
In HSV lässt sich "Weiss" recht leicht einstellen. Jetzt brauchst du nur 
noch ne Möglichkeit die Ströme der einzelnen Farben so zu justieren, 
dass sich Weiss ergibt.
Anschliessend kannst dann passende Vorwiderstände für alle RGB-LEDs 
verwenden, oder Softwareseitig einen entsprechenden Korrekturfaktor 
einfügen.

Gruß
Fabian

von Roman (Gast)


Lesenswert?

Fabian,


Wie meinst du das ??
also .. zB. diese LED ( 
https://www.distrelec.com/distrelec/datasheets.nsf/WebAttachments/051232F928C84C99C12571A7004CDC25/$File/z_powerled_P5_RGB.pdf 
) Seoul Z Power 3.5 W ... jede farbe vertraegt 350mA.
Jedoch die mischfarbe fuer Weiss ist R 237mA G 370mA und B 120 mA.
Dh. (wenn ich es richtig verstanden habe...) Wuerdes du die Stroeme auf 
diesen wert einstellen fuer 100% RGB ??

lg roman

von Fabian B. (fabs)


Lesenswert?

Naja, ich hab immer nur "normale" 5mm RGB benutzt...da ist der Strom 
nicht angegeben. Aber die Verhältnisse sind doch schon da.
Demnach musste deine Stromquellen so auslegen, dass von der Ansteuerung 
bei Farbe Weiss diese Ströme fliessen.
Wie du die Ansteuerung für Weiss machst ist ja eine andere Sache.
Ich nehm halt immer gern HSV und rechne dann HSV nach RGB für die PWM 
der Ansteuerung um...ist halt leichter vorstelbar.

Gruß
Fabian

von Roman (Gast)


Lesenswert?

ok, ok ... habe es kapiert..

Wie sind die Verhaeltnisse fuer weiss, bei den von dir verwendeten 5mm 
rgb Led's ??



lg roman

von JojoS (Gast)


Lesenswert?

Weiss ist doch nicht gleich Weiss, es gibt ja verschiedene 
Farbtemperaturen. Mit mehr Blau hat man eben ein kälteres weiss als mit 
mehr Rot. Und die LEDs haben auch verschiedene Wirkungsgrade, gleicher 
Strom bei verschiedenen Farben heisst nicht gleiche Helligkeit. Die RGB 
LEDs werden sicher schon so ausgelegt sein das bei den typischen 
Betriebsdaten ein Weiss herauskommt, aber wenn man sowieso alle Kanäle 
getrennt ansteuert kann man sich auch eine Kalibrierung für das 
Lieblingsweiss einbauen.

von Fabian B. (fabs)


Lesenswert?

Um ehrlich zu sein: keine Ahnung ;-)
Bei kleineren Anwendungen stell ich den Strom der LEDs einfach über 
Potis als Vorwiderstände ein. Geht bei 350mA natürlich nicht, aber bei 
5-20mA schon.
Aber was was du an Strömen gepostet hast, klingt schon ganz realistisch.

Eine Abstimmungsanleitung findest du im Dateianhang der 
HSV-to-RGB-Routine von Fly: Beitrag "HSV RGB Led Dimmer, C Code & Video & Doku"

Gruß
Fabian

von Roman (Gast)


Lesenswert?

Ja jojoS,

Dessen bin ich mir bewusst. Es geht ja nur um Ca. werte .. ich meine 
soll ich wirklich die Grad Kelvin angeben ???
Was ich mich viel mehr frage... bei dem obigem beispiel von den seoul 
LED's, wenn ich den strom einstelle wie es Fabian vorgeschlagen hat, 
fliesst durch blau "nur" 120mA Strom. hmm... das ist ja nur 1/3 des 
moeglichen ?!

gibt es evtl. andere moeglichkeiten die Fabkorrektur vorzunehmen ??
zB. durch entsprechenden matrix multiplikation oder so ??


lg roman

von Fabian B. (fabs)


Lesenswert?

Der Punkt ist, dass du für "Weiss" weniger Blau- als Rotanteil brauchst. 
Jetzt ist das Auge zu allem Überfluss auch noch unterschiedlich 
empfindlich bei unterschiedlichen Wellenlängen und schon haste den 
Grund.
Kannst es ja einfach mal probieren: Jag duch alle Farben 350mA durch und 
schau wie's ausschaut...Weiss wirds aber nicht.

Du kannst natürlich softwareseitig dafür sorgen, dass bei Weiss z.B. Rot 
mit 100% Tastverhältnis angesteuert wird, und Blau nur mit 30%. Der 
Effekt ist der Gleiche, macht nur die Dimensionierung der Stromquelle 
leichter (alle drei gleich).

Vorschlag: nimm dir drei Stromquellen mit max 350mA (im Zweifel einfach 
dicke Vorwiderstände) und hänge die jeweils über einen FET an einen PWM 
Ausgang eines uCs. Dann noch drei Potis zum einstellen der drei PWMs und 
schon kannste mal probieren. Evtl. reichen auch schon 100mA damit du 
nicht erblindest ;-).

Gruß
Fabian

von Roman (Gast)


Lesenswert?

Fabian,


Das ist ja alles klar und sicherlich funktioniert es 100%.
Der punkt ist, ich verliere damit den dynamik bereich von Blau.
dh. mit deinem beispiel, ich betreibe blau mit max. 120mA. von max. 350 
mA moeglichen. Kann man es soweit korriegieren, ohne das ich auf die 
350mA von blau verzichten muss. verstehst du ??

Nur so als beispiel ... wenn ich mit matrixen arbeite und folgenden 
matrix verwende :

1.0   0.0  -0.33      <= input R
-.17  1.0  -0.33      <= input G
-.17  0.0   1.0       <= input B
====  ==== ====
o. R  o.G  o.B


ergibt bei 100% RGB Input, 66% Rot 100% Gruen 34 % Blau anteil.
Was in etwa Weiss ergeben sollte aus dem datenblatt.

jedoch ... 0% Rot, Gruen und 100% Blau ergibt 100% Blau!!

verstehst du ??

lg roman

von Fabian B. (fabs)


Lesenswert?

Ja klar.
Dann über Software-PWM. Du musst deine Farbberechnungs-Routinen dann 
"nur" so anpassen, dass bei Weiss das entsprechende Verhältnis 
rauskommt.
In RGB ist Weiss halt (100%,100%,100%). Damit du jetzt tatsächlich Weiss 
siehst musst du aber die Ströme wie im DB angegeben einstellen.

Du verlierst aber auch nicht wirklich Dynamik, sondern "nur" Helligkeit.

Was du natürlich machen könntest ist, zwei Modi einzusetzen:
 - Echtfarbenmodus
 - Einzelfarbenmodus

Im ersten rechnest du deine Farbe aus und korrigierst die PWM werte 
mittels der o.a. Verhältnisse, im zweiten gibst du die RGB-Werte direkt 
ohne Korrektur an.

Hierbei würdest du zwar schon Dynamik verlieren, da du ja mit 
Korrekturmodus deine PWM für Blau z.B. nur von 0-30% fährst, aber ob das 
ins Gewicht fällt liegt eher an deinem Empfinden und an der Auflösung 
deiner PWM ;-). Prinzipell (d.h. mit unendlich aufgelöster PWM :-P) 
könntest du ja dennoch alle Farben des Spektrums darstellen.

Gruß
Fabian

Guter Artikel zum Farben berechnen: 
http://de.wikipedia.org/wiki/HSV-Farbraum

von Roman (Gast)


Lesenswert?

Fabio,


das ist doch der Trick mit der Matrix. Ich muss keine zwei modis fahren.
Den bei die Matrix von 100% Blau ergibt 100 % Blau wenn alle anderen 
werte auf 0% sind, sieh mal :

Input (RGB):  0 0 100
Output (RGB): -17.000000 0.000000 100.000000

Du hast zwar recht was die dynamik angeht (mein fehler). Aber die 
maximale Helligkeit verliere ich nicht.
War nur als gedanken spiel gedacht ob dies gruendsaetzlich funzen wuerde 
:)

lg roman

von Fabian B. (fabs)


Lesenswert?

Ist ja im Endeffekt das Gleiche. Wie sehn denn deine Werte aus wenn du 
Weiss mit der Matrix darstellen willst?

Gruß
Fabian

von Roman (Gast)


Lesenswert?

Bei 100% rgb input, kommt 66% Rot 100% Gruen und 30% Blau.

roman

von Fabian B. (fabs)


Lesenswert?

Na dann ist ja alles in Butter ;-)

Gruß
Fabian

von Roman (Gast)


Angehängte Dateien:

Lesenswert?

Fabian,

hier ein paar beispiele :

./mat_mult 100 100 100     <= input RGB in %
66.000000 100.000000 34.000000  <= output in %
./mat_mult 100 0 0
100.000000 0.000000 -33.000000
./mat_mult 0 100 0
-17.000000 100.000000 -33.000000
./mat_mult 0 0 100
-17.000000 0.000000 100.000000
./mat_mult 100 100 0
83.000000 100.000000 -66.000000
./mat_mult 100 0 100
83.000000 0.000000 67.000000
./mat_mult 0 100 100
-34.000000 100.000000 67.000000

die matrix ist :
1.0 0.0 -0.33 0.0
-0.17 1.0 -0.33 0.0
-0.17 0.0 1.0 0.0
0.0 0.0 0.0 0.0


und der code dazu ist im anhang :)

roman

von Fabian B. (fabs)


Lesenswert?

Auch nicht schlecht.
Das Einzige ist mal wieder die "Inkompatibilität" der Realität mit der 
Mathematik: LEDs können nunmal nicht negativ leuchten ;-)
Kappt man die negativen Zahlen aber einfach zu 0 dürften die 
Verhältnisse auch nicht optimal stimmen.

Aber es gilt halt wie immer: Die Realität ist eine Approximation der 
zugrunde liegenden Mathematik. (oder wars anders herum ;-) )

Gruß
Fabian

von Roman (Gast)


Lesenswert?

Fabian,

Die Surreale Mathematik kann auch mein Problem sein.
Im notfalls kann ich es immer noch auf die Chaostheorie schieben :)

Nein, Spass bei Seite... Die Konstanten der Matrix, sind auch nur so 
...ehh.. so ala mal kucken ... dh. heisst die sind auch nicht 100% 
optimal.

lg roman

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.