Forum: Mikrocontroller und Digitale Elektronik Algorithmus zum Farbwechsel bei RGB Led


von Dan M. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.
Ich habe auch mal die Beliebte Idee "Moodlight" aufgegriffen, allerding 
selbstgemacht und nicht nachgebaut. Funktioniert alles soweit sogut, 
auch mit ein paar Extras (z.B. Steuerung der Farbe per TV-FB und Display 
zum Anzeigen der Farbwerte (kommt dann später weg ;))).

Was jetzt noch Fehlt ist, dass bei einem Knopfdruck auf der 
Fernbedienung, die Farben automatisch wechseln. Das ist ja eigentlich 
die Grundfunktion.

Hier ist mein Problem. Ich weiss nicht wie ich einen schönen, 
harmonischen Farbwechsel machen soll. Zwei Farben gleichzeitg dimmen 
kann man ja leider nicht. Ich möchte hier auch nicht den Code hören, 
sondern eher was in der Art: Erst alle Farben auf Maximum, dann R 
runter......

Code hab ich mal angehänt, auch wenn er zu meiner Frage nix bringt.

Viele Dank für die Antworten ;)

von Philipp F. (nerdture)


Lesenswert?

Musst nur mal in Microsoft Paint unter "Palette bearbeiten" in diesem 
Farbwähler dir das ganze anschauen.

Ich nehme an du willst so einen Übergang wie er in der obersten Zeile 
diese Farbwählquadrats zu sehen ist.

Du fängst also mit Rot voll aufgedreht an, Grün und Blau auf 0.
Dann fadest du zu Grün rüber und von da zu blau.
Also:
1
[R,G,B]
2
[255,000,000]
3
[254,001,000]
4
[253,002,000]
5
...
6
[002,253,000]
7
[001,254,000]
8
[000,255,000]
9
...
10
[000,127,127]
11
...
12
[002,000,255]
13
...
14
[127,000,127]
15
...
16
[255,000,000]

Und so immer im Kreis...

Wieso solltest du nicht zwei Farben gleichzeitig dimmen koennen?

von Thomas B. (detritus)


Lesenswert?

> Wieso solltest du nicht zwei Farben gleichzeitig dimmen koennen?

Das ergibt während dem Faden Weiss in unterschiedlicher Schattierung. 
Sieht langweilig aus.

von Philipp F. (nerdture)


Lesenswert?

Ich sagte zwei Farben nicht drei ;)  Und ich meinte auch in 
gegensetzlicher Richtung faden. Also Rot runter und gleichzeitig Gruen 
rauf.
Genau das braucht er naemlich.

von Thomas B. (detritus)


Lesenswert?

Dann hast du in der Mitte des Fadingvorganges 100%Blau, 50%Grün und 50% 
Rot -->bläuliches Weiss, mehr oder weniger.

von Sven P. (Gast)


Lesenswert?

> Dann hast du in der Mitte des Fadingvorganges 100%Blau, 50%Grün und 50%Rot

Wie fadest du denn? Alle Farben an und dann nacheinander runterdimmen?!

Du hast allerhöchstens mal 0%Blau, 50%Grün und 50%Rot. Dann isses doch 
in Ordnung.

von Karl H. (kbuchegg)


Lesenswert?

Der Fehler besteht darin, zu glauben, dass eine
Farbe nur dadurch dunkler gemacht werden kann, indem
man einfach die RGB Werte linear skaliert.

Dem ist nicht so. Unter anderem aus diesem Grund gibt die
Farbräume HLS bzw. HSV. Solche Fading Operationen führt
man sinnvollerweise im HLS oder HSV Farbraum aus und wandelt
dann das Ergebnis nach RGB.

von Thomas B. (detritus)


Lesenswert?

Sven Pauli wrote:
>> Dann hast du in der Mitte des Fadingvorganges 100%Blau, 50%Grün und 50%Rot
>
> Wie fadest du denn? Alle Farben an und dann nacheinander runterdimmen?!
>
> Du hast allerhöchstens mal 0%Blau, 50%Grün und 50%Rot. Dann isses doch
> in Ordnung.

Verstanden habe ich obiges Beispiel so, dass direkt von Lila auf Türkis 
gefadet werden soll. D.h. [RGB] 100, 0, 100 --> 100, 100, 0

Hatte meine Lösung im Kopf, in der ich 6 "Endstellungen" hatte (RGB und 
Lila, Türkis und Gelb). Bei Philipp hats aber nur RGB, dann habt ihr 
recht. Sorry.

von Dan M. (Gast)


Lesenswert?

Also langsam ;)

Ich habe 3 PWM werte von 0 bis 255 bzw. von 255 bis 0.

Natürlich ist mir klar dass dies nicht die RGB Farbwerte sind.
Aber ich denke es steht dem nichts im Wege, sich an ihnen zu 
Orientieren.
Wenn ich Rot hochdimme, dann habe ich Rot. RGB:255/0/0
Dann dimme ich Grün hoch, und gelange bei Gelb an RGB: 255/255/0
Jeztt kann ich Rot wieder runterdimme und komme Bei grün an RGB:0/255/0
usw.
Oder?

Auch wenn die Helligkeit logarithmisch ansteigt, am Ende sollte ich doch 
trotzdem mehr oder weniger saubere Farben haben oder?

von Dan M. (Gast)


Lesenswert?

Wie ich gerade sehe ist das Quatsch.
Rot und Grün geben bei meiner RGB Led Grün weil Grün um ein vielfaches 
stärker ist als Rot.

Ich denke ich muss die schönen Farben optisch rausfinden und dann 
zwischen diesen Werten herumdimmen.

von Dan M. (Gast)


Lesenswert?

Ich spamme hier jetzt zwar, aber das war ein voreiliger Post.
Es war der Programmierstecker drann, der sich den MOSI Pin mit der LED 
teilt.

Wenn man Rot und Grün voll aufdreht gibt es mehr oder weniger Gelb.

von Spess53 (Gast)


Lesenswert?

Hi

Auf folgender Adresse findest du einen Algorithmus zur Berechnung eines 
RGB-Wertes aus der Wellenlänge. Ist wahrscheinlich nicht genau das was 
du suchst, aber vielleicht hilft es trotzdem.

>http://www.koders.com/java/fid9DD1F1155855D7CE3F48B05C8372131C944FB867.aspx

MfG Spess

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.