Hallo, ich möchte folgendes realisieren. Ich habe mehrere Streifen mit RGB-LEDs. Diese möchte ich mit einem Mikrocontroller sowohl in der Helligkeit als auch in der Farbtemperatur automatisch steuern. Die LEDs sollen immer weiss leucteh, allerdings soll die Halligkeit und Farbtemperatur wie folgt verändert werden: Zu beginn leuchten die LEDs nur sehr schwacj und die Farbtemperatur ist ein warmes Weiss. Anschliessend soll die Helligkeit sehr langsam gleichmässig immer grösser werden, und auch die Farbtemperatur möchte ich stetig verändern, das Licht soll immer "kälter" werden. Habt ihr mir einen klugen Ansatz, wie ich das bewerkstelligen kann? Gerade bezüglich der Farbtemperatur finde ich wenig hilfreiches im Netz.
>Zu beginn leuchten die LEDs nur sehr schwacj und die Farbtemperatur ist >ein warmes Weiss. >Anschliessend soll die Helligkeit sehr langsam gleichmässig immer >grösser werden, und auch die Farbtemperatur möchte ich stetig verändern, >das Licht soll immer "kälter" werden. > >Habt ihr mir einen klugen Ansatz, wie ich das bewerkstelligen kann? Warmweiss hat einen höheren Gelbanteil. Den mischt man aus Rot und Grün, Blau eher wenig dazugeben. Bei Kaltweiss kommt dann ein höherer Blauanteil dazu.
Albert G. schrieb: > Danke. > Leider brauche ich das Ding bis Montag :-( Dann definiere, dass dein 'warmes' Weiß ein Weiß mit einem ganz leichten Stich ins Rote ist, dein 'kaltes' Weiß ein Weiß mit einem leichten Stich ins Blaue. Such dir eine HLS nach RGB Umrechnung und mach die Farbrampe im HLS Raum. Hue Farbton L Lightness (Helligkeit der 'Farbe') S Saturation (Farbsättigung: 1 .. reine Farbe, 0 .. Grauwerte) Hue ist bei dir eine Rampe von Rot nach Blau Lightness, bei dir von 0 bis 1 durchvariieren, während die Hue durchläuft Saturation, nur ganz schwach aufgedreht. Du lässt die Hue von Rot nach Blau verändern, lässt dir mit der Umrechnung aus den HLS Werten die RGB Werte bestimmen und gibst die auf die LED Du kannst natürlich auch ganz einfach sagen: Weiß ist, wenn alle Kanäle auf 1 sein. R = G = B = 1 für ein etwas rötlicheres Weiß nimmst du G und B etwas zurück. Einfach mal ausprobieren. R = 1, G = 0.9, B = 0.9 wird ein leichtes Rosa sein für ein etwas bläulicheres Weiß nimmst du R und G etwas zurück. Wieder ausprobieren. R = 0.9, G = 0.9, B = 1 wird ein leichtes Hellblau sein Mit den Werten kannst du spielen, bis du Farben hast, die deiner Vorstellung der gewünschten 'Farbtemperatur' nahe kommen. Und der Übergang von dem einen zum anderen ist einfach eine Interpolation, zwischen den soweit definierten RGB-Endpunkten. Für alle Zwischenwerte t von 0 bis 1 R_zu_setzen = t * R_rosa + ( 1 - t ) * R_hellblau G_zu_setzen = t * G_rosa + ( 1 - t ) * G_hellblau B_zu_setzen = t * B_rosa + ( 1 - t ) * B_hellblau Die Helligkeitsvariation ist dann einfach nur ein zusätzlicher Faktor der noch mit aufmultipliziert wird. Einfach mal ein wenig kreativ sein. Kaputt gehen kann ja nichts. Wo bleibt denn da der Spass beim Basteln, wenn man sich immer alles vorkauen lässt und nix selber ausprobiert und 'erfindet'.
Hallo Karl Heinz, vielen Dank für deinen Tipp. Ich habe mein Problem nun lösen können, indem ich gemäss Wikipedia eine HLS-nach-RGB Konvertierung durchgeführt habe und so die Duty Cycles meiner PWM berechnet habe. Das einzige unschöne war folgendes: Macht man eine Rampe von Rot nach Blau in HLS, dann kommt dazwischen leider noch Violett. Das passte nicht wirklich ins Konzept, dieses Dumme Violett, deshalb musste ich die Sättigung schon sehr weit nach unten setzen, damit man es nicht sieht - leider erkennt man dann auch kaum mehr einen Unterschied zwischen wärmerem und kälterem Licht. Wie könnte ich das noch beheben?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.