Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi LED Lichtmischung? (https://www.delphipraxis.net/182564-led-lichtmischung.html)

Mavarik 1. Nov 2014 08:35

LED Lichtmischung?
 
Hallo Zusammen...

Gegeben sei ein RGBWW Strahler. (WW bedeutet warm weiß als 4. LED Element)

Leuchtet nur das Weiße LED hat man Warmweißlicht ca. 3000K
Leuchten nur R+G+B mischt sich das Licht zu 4000-5000K

Mischt man ein bisschen B zu 100% W kann man gefühlt die Farbtemperatur von 3000K anheben (bis es zu blau wird)

Grundlage ist sicherlich das CIE-Normvalenzsysten.

Lassen wir mal die absoluten Werte weg. Ob jetzt 3000, 3500 oder 3800 raus kommt soll mal egal sein.
Nur die W LED mit ein bisschen R ist sicherlich die wärmste Einstellung. Und irgend etwas mit RGB 100% oder ggf. ein bisschen R weniger die kälteste.

Wie würde die Formel lauten für einen Weißverlauf für einen ausgewogene Mischung (R,G,B,W in 0..255) oder 0-100% um einen Lichtverlauf (Tageslichtverlauf)
von Kalt nach Warm zu simulieren?

Grüsse Mavarik

generic 1. Nov 2014 09:04

AW: LED Lichtmischung?
 
Moin Frank,

an dieser Problematik haben sich schon sehr große Hersteller versucht und noch keine gute Lösung gefunden.
Wenn du eine findest, mach da großes Geld raus!

In der Lichttechnik verbreiten sich derzeit immer mehr LED Varianten. Es sind auch sehr üblich RGBWA Lampen, welche dann einen Amber-Anteil mit einmischen.


Hintergrund-Links für Fachfremde:
Lichtpult Herstelle Ma-Lighting
Lampe Expolite TourStick 72 RGBWA

Mavarik 1. Nov 2014 09:49

AW: LED Lichtmischung?
 
Zitat:

Zitat von generic (Beitrag 1278313)

Ich suche jetzt ne Lösung für mein Eigenheim und nicht für die Bühne...

Es gibt da sicherlich ne tolle Formel... Ich kann natürlich "auf Sicht" ne Wertetabelle anlegen...

hathor 1. Nov 2014 11:27

AW: LED Lichtmischung?
 
Liste der Anhänge anzeigen (Anzahl: 2)
Deine Frage verstehe ich vermutlich nicht oder falsch.
Es ist doch ganz einfach herauszufinden, welche RGB-Anteile eine Farbe hat:
Nimm einen COLORPICKER:
http://delphi.about.com/od/fullcodep.../aa012704a.htm
http://www.soft-gems.net/index.php/c...picker-control

Mavarik 1. Nov 2014 12:53

AW: LED Lichtmischung?
 
Zitat:

Zitat von hathor (Beitrag 1278331)
Deine Frage verstehe ich vermutlich nicht oder falsch.

Ich brauche die RGBW-Werte für eine stufenlose Weißverlauf von 2000K bis 5000K

Mavarik

jfheins 1. Nov 2014 13:34

AW: LED Lichtmischung?
 
Kniffelig. Du müsstest entweder dein Farbausgabegerät kalibrieren, oder ein bisschen rechnen und hoffen :stupid:

Kalibrieren gibt es ja auch bei Monitoren, da wird dann ein Profil erstellt, dass die RGB-Werte vom PC in den sRGB Farbraum überführt. Du brauchst zwar nur die Black-Body-Kurve, aber ich vermute das wird dir nicht viel sparen.

Das Rechnen stelle ich mir ungefähr so vor: Du benötigst die Spektren deiner LEDs. Also das genau Spektrum der roten, grünen, blauen und ww LED über die Wellenlänge. Und die Empfindlichkeit der Farbrezeptoren im Menschlichen Auge. Dann kannst du ein Schwarzkörperspektrum für 3000K ausrechnen, und mit den Empfindlichkeiten multiplizieren. Es sollte dann für jeden Rezeptor ein "Sollreiz" herauskommen.
Jetzt muss du "nur noch" den gleichen Reiz mit deinen LEDs hinbekommen. Wenn du Die LED-Spektren mit den Empfindlichkeiten multiplizierst, sollte eine 4x3 Matrix herauskommen, die besagt wie stark welche LED welchen Rezeptor anspricht. Das resultierende lineare Gleichungssystem ist unterbestimmt, da die 4 LEDs hast. Als Randbedingung würde ich da noch "Maximiere die WW Komponente" hinzufügen. Damit sollte sich das LGS lösen lassen und du kannst den Spaß für weitere Farbtemperaturen wiederholen. Anschließend eine nette Kurve durch die Ergebnisse legen.
Du kannst diese Berechnung natürlich auch jedes mal wiederholen, wenn dir das lieber ist.

Aber keine Garantie, dass das alles so hinkommt. Das ist jetzt rein instinktiv beschrieben. Und vielleicht geht das ja auch einfacher :stupid:

hathor 1. Nov 2014 13:56

AW: LED Lichtmischung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
GOOGLE: ColorCorrectionforImageSensors.pdf
Seite 5

Ausserdem:
Convert HSI to RGB-WHITE
http://blog.saikoled.com/post/446777...i-to-rgb-white
http://en.wikipedia.org/wiki/HSL_and_HSV

mensch72 1. Nov 2014 15:51

AW: LED Lichtmischung?
 
das Problem der Lichtmischung splittet sich ja grundsätzlich in 2 Teile:

Farbmischung und dann die Helligkeit.

Wir lösen das per Microcontroler für RGBW Led's mit 4Hardware PWM's sehr einfach und pragmatisch:

- bis ca. 67% Helligkeit mischen(zeitmultiplexen) wir nur die RGB Farbanteile über deren Pulsweite, weil ab 2/3 Zeit bzw. Nennstrom sich durch das Nachleuchten kaum noch eine nutzbare Veränderung ergibt
- wenn dann also die "Helligkeit" der eingestellten Farbe nicht ausreicht, mischen wir noch bis zu 25..35% Weiß mit dazu, dies machen wir im Rundlauf jeweils zeitsyncron zu R oder G oder B, sodass wir keine extra Zeitscheibe für pures weiß benötigen, und wir jede Farbe ungefähr "optisch gleich aufhellen"
- da noch eine "Milchglasstreuscheibe" über die RGBW Led(s), fertig ist eine sehr schöne Lichtlösung die sich sowohl farblich als auch in der Helligkeit sehr fein einstellen lässt


Dynamische Konstantstromsteuerung zur permanenten Farbmischung ohne PWM & zeitmultiplex haben wir versucht, fanden aber keine Lösung die für eine beliebige gewählte Farbe ein vernünftige zumindest optisch quasi lineare Helligkeitsregelung erlaubte.

hathor 1. Nov 2014 17:42

AW: LED Lichtmischung?
 
Liste der Anhänge anzeigen (Anzahl: 4)
Zitat:

Zitat von Mavarik (Beitrag 1278336)
Zitat:

Zitat von hathor (Beitrag 1278331)
Deine Frage verstehe ich vermutlich nicht oder falsch.

Ich brauche die RGBW-Werte für eine stufenlose Weißverlauf von 2000K bis 5000K

Mavarik

2000K ist schon sehr rötlich, weiss geht mindestens bis 8000K.
EXE im Anhang, "Pick From Screen" anklicken

himitsu 2. Nov 2014 01:49

AW: LED Lichtmischung?
 
Vergiss nicht die Characteristic deiner elektronischen Komponenten mit einzurechnen.
z.B. http://www.elektroniknet.de/optoelek...rtikel/108487/

sx2008 2. Nov 2014 05:11

AW: LED Lichtmischung?
 
Wenn man von allen 4 LEDs das Leistungsspektrum hätte dann könnte man diese doch addieren.
Jedes Einzelspektrum nehmen und mit einem Faktor zwischen 0% bis 100% multiplizieren.
Die Einzelspektren sehen ungefähr so aus:
http://www.leds-com.de/Media/Shop/Sh...ngen_led_2.gif
Man nimmt ein
Delphi-Quellcode:
array[350..780] of double
um das Gesamtspektrum zwischenzuspeichern.

Dann braucht man das Empfindlichkeitsspektrum des menschlichen Auge:
http://de.wikipedia.org/wiki/Datei:Cone-response.svg
Für jedes der 3 Zäpfchenarten berechnet man die wahrgenommene Intensität.
Diese 3 Intensitäten entsprechen dem Farb- und Helligkeitseindruck den das Auge bekommt.

Dann nimmt man das Emissionsspektrum eines schwarzen Körper bei verschiedenen (Farb-)Temperaturen.
Das kann man auch über eine Formel erzeugen:
http://de.wikipedia.org/wiki/Plancks...rahlungsgesetz

Für jede Temperatur berechnet man die Intensität der 3 Zäpfchenarten und speichert diese als Referenzwerte.
Um mit den 4 LEDs eine Farbtemperatur von z.B. 4000K zu mischen muss man nur so lange an den 4 Leistungsparametern rumspielen und berechnen was die Zäpfchen sehen würden bis die abgespeicherten Referenzwerte getroffen werden.

Viel Spass beim Programmieren.

Mavarik 2. Nov 2014 10:11

AW: LED Lichtmischung?
 
hab das was gefunden...

Code:
void hsi2rgbw(float H, float S, float I, int* rgbw) {
  int r, g, b, w;
  float cos_h, cos_1047_h;
  H = fmod(H,360); // cycle H around to 0-360 degrees
  H = 3.14159*H/(float)180; // Convert to radians.
  S = S>0?(S<1?S:1):0; // clamp S and I to interval [0,1]
  I = I>0?(I<1?I:1):0;
 
  if(H < 2.09439) {
    cos_h = cos(H);
    cos_1047_h = cos(1.047196667-H);
    r = S*255*I/3*(1+cos_h/cos_1047_h);
    g = S*255*I/3*(1+(1-cos_h/cos_1047_h));
    b = 0;
    w = 255*(1-S)*I;
  } else if(H < 4.188787) {
    H = H - 2.09439;
    cos_h = cos(H);
    cos_1047_h = cos(1.047196667-H);
    g = S*255*I/3*(1+cos_h/cos_1047_h);
    b = S*255*I/3*(1+(1-cos_h/cos_1047_h));
    r = 0;
    w = 255*(1-S)*I;
  } else {
    H = H - 4.188787;
    cos_h = cos(H);
    cos_1047_h = cos(1.047196667-H);
    b = S*255*I/3*(1+cos_h/cos_1047_h);
    r = S*255*I/3*(1+(1-cos_h/cos_1047_h));
    g = 0;
    w = 255*(1-S)*I;
  }
 
  rgbw[0]=r;
  rgbw[1]=g;
  rgbw[2]=b;
  rgbw[3]=w;
Muss ich mal testen...

mensch72 2. Nov 2014 12:28

AW: LED Lichtmischung?
 
mathematisch, also in der Theorie habt ihr alle Recht... wenn man eine Großbildleinwand zur Bilddarstellung realisieren will, kann und sollte man auch so herangehen.

Ich vermute allerdings, das es um eine "simple" Beleuchtungslösung geht.
Da muss man nicht "jede" Farbe realisieren können, denn das menschliche Auge erkennt Farbunterschiede nur relativ grob, nicht lineare Helligkeitsunterschiede fallen den meisten Leuten aber sofort auf.

Ich kenne viele Beleuchtungssysteme die nur mit 16*16*16 = 4096 möglichen Farben arbeiten und diese jeweils auch nur in 16 Helligkeiten realisieren. "Zufällig" ist 16(R)*16(G)*16(B)*16 = 65536 = 2^16 = 16Bit (Hardware) PWM.

Die "Trimmung" solcher Systeme erfolgt simpel über die Stromstärke, denn LED's ind "Rot" & "Blau" leuchten nun mal gefühlt intensiver als grüne LED's. Per Stromreduzierung werden also Rot&Blau soweit zurückgenommen das man zusammen mit Grün ein brauchbares Weiß hat. Der Rest ist dann PWM&Software.

Wenn man es schnell genug macht, reichen 16Helligkeitsstufen völlig um dem Anwender noch ein gutes SoftDimmErlebnis vorzugaukeln, solange die Farbe gefühlt konstant bleibt und sich nur die Helligkeit merklich ändert.

Einfach und simpel funktioniert da wirklich besser wie 24Bit/16Mio Farben, wenn's dann mit dem purem Dimmen der Helligkeit nicht klappt.
Wer's nicht glaubt, der frage mal bei Innenarchitekten und Lichtdesignern: Die legen oft pro "Szene" nur die Farben der Leuchtmittel fest, der Nutzer/Anwender kann/will/darf dann aber "nur" noch die Helligkeit nach seinen Bedürfnissen selbst anpassen.
Eigene "freie Farbwahl im RGB Würfel" ist praktisch bei Beleuchtungslösungen nach der Inbetriebnahme völlig irrelevant.

Mavarik 3. Nov 2014 08:51

AW: LED Lichtmischung?
 
Da hast Du sicherlich Recht.

Bei mir geht es wie gesagt um RGBWW Spotts. Die sind per DALI pro Kanal 0..255 zu steuern.

Es gibt da so eine "Wohlfühltheorie"... Das die Farbtemperatur im Tagesverlauf dem Sonnenlicht nachgebildet werden sollte...

Zum Duschen nehme ich sowieso 100% ROT/BLAU. :lol:

Mavarik

hathor 3. Nov 2014 10:03

AW: LED Lichtmischung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Mavarik (Beitrag 1278455)
Es gibt da so eine "Wohlfühltheorie"... Das die Farbtemperatur im Tagesverlauf dem Sonnenlicht nachgebildet werden sollte...
Mavarik

Software gibt es fast nur für C# und C++:
http://developer.mbed.org/users/fran.../HSI2RGBW_PWM/

Hast Du eine Tabelle Farbtemperatur im Tagesverlauf des Sonnenlichtes?

Ausserdem:
http://de.wikipedia.org/wiki/Chronotyp
http://www.lumedo.de/balance-light-t...led-steuerung/

mikhal 3. Nov 2014 11:22

AW: LED Lichtmischung?
 
Aus unser Elektronikentwicklung / Messtechnik:

Zitat:

Hallo Micha,

wenn du ein nettes Mitglied sein möchtest, poste ihm einfach,
er solle zur Warmweißen LED einfach eine 6500K Kaltweiße LED gleicher Stärke dazu nehmen, dann gibt’s immer einen schönen WW-KW Verlauf…
Die Mischung von RGBW ist immer aufwendiger und komplizierter, zumal die rote LED deutliche Helligkeitsverluste bei Temperaturerhöhung hat… damit würde seine Farbe dann mit zunehmender Eigenerwärmung weglaufen….

Da kann man mal sehen, wie man es umständlich macht, wenn es auch einfach geht ;-)

Grüße
Tom
Grüße
Mikhal

Mavarik 3. Nov 2014 13:03

AW: LED Lichtmischung?
 
Zitat:

Zitat von mikhal (Beitrag 1278493)
Da kann man mal sehen, wie man es umständlich macht, wenn es auch einfach geht ;-)
Grüße
Mikhal

Danke, aber ich habe RGBW Spots, also stellst sich die Frage nicht!

Zitat:

Zitat von hathor (Beitrag 1278463)
Software gibt es fast nur für C# und C++:
http://developer.mbed.org/users/fran.../HSI2RGBW_PWM/

Das ist die Routine die ich oben gepostet habe, trotzdem Danke...


Die Ansteuerung ist super simpel...

Einfach per UDP ein Kommando an den Gira-Server senden. ("LICH1R 55%") und schon leitet die rote LED mit 55%.
Oder "LICH1RGBW 55%,66%,10%,80%" schaltet alle Werte...
(Ist auch deutlich einfacher als ein KNX-Telegramm ab zu setzen)

Zitat:

Zitat von hathor (Beitrag 1278463)
Hast Du eine Tabelle Farbtemperatur im Tagesverlauf des Sonnenlichtes?

Bisher nicht.

Zitat:

Zitat von hathor (Beitrag 1278463)

Genau das ist die Theorie...


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz