mikrocontroller.net

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


Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 Moderator
Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fabian,


Wie meinst du das ??
also .. zB. diese LED ( 
https://www.distrelec.com/distrelec/datasheets.nsf... 
) 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

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, ok ... habe es kapiert..

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



lg roman

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian B. (fabs)
Datum:

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

Gruß
Fabian

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei 100% rgb input, kommt 66% Rot 100% Gruen und 30% Blau.

roman

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na dann ist ja alles in Butter ;-)

Gruß
Fabian

Autor: Roman (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.