AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

LED Lichtmischung?

Ein Thema von Mavarik · begonnen am 1. Nov 2014 · letzter Beitrag vom 3. Nov 2014
Antwort Antwort
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 09:49
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...
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 11:27
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
Angehängte Grafiken
Dateityp: jpg RGB-CP.jpg (28,0 KB, 33x aufgerufen)
Dateityp: jpg COLORPICKER_erweitert.jpg (59,4 KB, 26x aufgerufen)

Geändert von hathor ( 1. Nov 2014 um 17:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 12:53
Deine Frage verstehe ich vermutlich nicht oder falsch.
Ich brauche die RGBW-Werte für eine stufenlose Weißverlauf von 2000K bis 5000K

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 13:34
Kniffelig. Du müsstest entweder dein Farbausgabegerät kalibrieren, oder ein bisschen rechnen und hoffen

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
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#5

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 13:56
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
Angehängte Grafiken
Dateityp: jpg ColorConversion.jpg (25,0 KB, 26x aufgerufen)

Geändert von hathor ( 1. Nov 2014 um 14:20 Uhr)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#6

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 15:51
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.
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#7

AW: LED Lichtmischung?

  Alt 1. Nov 2014, 17:42
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
Angehängte Grafiken
Dateityp: jpg COLORPICKER_erweitert.jpg (59,4 KB, 27x aufgerufen)
Dateityp: jpg COLORPICKER_20141101.jpg (154,5 KB, 23x aufgerufen)
Angehängte Dateien
Dateityp: zip COLORPICKERupdate.zip (589,3 KB, 17x aufgerufen)
Dateityp: zip RGBPick_20141101.zip (1,10 MB, 18x aufgerufen)

Geändert von hathor ( 1. Nov 2014 um 19:51 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.360 Beiträge
 
Delphi 12 Athens
 
#8

AW: LED Lichtmischung?

  Alt 2. Nov 2014, 01:49
Vergiss nicht die Characteristic deiner elektronischen Komponenten mit einzurechnen.
z.B. http://www.elektroniknet.de/optoelek...rtikel/108487/
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#9

AW: LED Lichtmischung?

  Alt 2. Nov 2014, 05:11
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 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.
fork me on Github

Geändert von sx2008 ( 2. Nov 2014 um 05:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#10

AW: LED Lichtmischung?

  Alt 2. Nov 2014, 10:11
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...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz