Forum: Mikrocontroller und Digitale Elektronik RGB-LEDs steuern


von Albert G. (Gast)


Lesenswert?

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.

von M. W. (hobbyloet)


Lesenswert?

Schau dir das mal an:

http://www.ledstyles.de/ftopic7112.html

Die haben dort schon Ahnung.

von Albert G. (Gast)


Lesenswert?

Danke.
Leider brauche ich das Ding bis Montag :-(

von holger (Gast)


Lesenswert?

>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.

von Karl H. (kbuchegg)


Lesenswert?

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'.

von Albert G. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.