Forum: Mikrocontroller und Digitale Elektronik gleichmäßiger Farbverlauf bei RGB-LED mit PWM


von Ingo L. (grobian)


Lesenswert?

Ich möchte die Farben  rot, gelb, grün, cyan ,blau, magenta bei einer 
RGB-LED durchlaufen
dazu gehe ich wie folgt vor ich beginne mit rot bei PWM =255 fade dann 
immer in einer Schritten:

G von 0-255
R von 255-0
B von 0-255
G von 255-0
R von 0-255
B von 255-0
 und wieder von vorne

aber irgendwie ist das Ergebnis nicht so zu frieden stellend. Habe das 
Gefühl, dass die LED´s gerade im niedrigen PWM bereich mehr schalten als 
faden. Sind etwa andere PWM-Werte notwendich um einen gleichmäßigen 
Farbverlauf zu bekommen anstelle des linearen Anstieges der Werte ??

Gruß aus Berlin
Ingo

von Pete K. (pete77)


Lesenswert?

Die PWM wird unter die Mindestspannung der LEDs gehen.

von ... .. (docean) Benutzerseite


Lesenswert?


von Ingo L. (grobian)


Lesenswert?

Pete K. schrieb:
> Die PWM wird unter die Mindestspannung der LEDs gehen.

Wie das ?? Der Impuls hat doch immer 5 Volt. Es ändert sich doch nur das 
Tastverhältnis..oder ?

Also auf deutsch, anstatt des linearen Anstiegs folgende Werte benutzen

uint16_t pwmtable_8D[32]  PROGMEM = {0, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 
10, 11,13,16, 19, 23, 27, 32, 38, 45, 54, 64, 76, 91, 108, 128, 152, 
181, 215, 255};

von Ber (Gast)


Lesenswert?

Morgen,

eine LED die mittels 8bit PWM angesteuert wird, wird im unteren Bereich 
IMMER stufig sein.
Selbst mit 16 bit und ohne entsprechende Kennlinie (Regelung) sieht man 
noch die unteren ca. 3% (kommt auf die LED an und ob Strom oder 
Spannungsgeregelt).
BTW: schau dir mal den Link von docean genauer an...

ciao,
Ber

von Mike (Gast)


Lesenswert?


von Ingo L. (grobian)


Lesenswert?

Mike schrieb:
> http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM
> http://www.mikrocontroller.net/articles/Pulsweitenmodulation

Hallo Mike,

wie das mit der PWM funktioniert ist mir schon klar, ansonsten hätte ich 
wohl das Programm nicht hin bekommen. Es ist nur so, dass ich keinen 
gleichmäßigen Farbverlauf hinbekomme.
Denke mal das docean mich auf den richtigen Weg gebracht hat.

von micha (Gast)


Lesenswert?

Ich denke, dasss Du eventuell eine Umrechnung des RGB-Frabraums in den 
HSV-Farbraum suchst, bzw. in diesem Fall umgekehrt: Du gibst den 
HSV-Farbraum vor und musst dass auf deine RGB-LED umrechnen. Dazu kommt 
die nichtlinieare Kennlinie des menschlichen Auges :-)

von Ingo L. (grobian)


Lesenswert?

micha schrieb:
> Ich denke, dasss Du eventuell eine Umrechnung des RGB-Frabraums in den
> HSV-Farbraum suchst, bzw. in diesem Fall umgekehrt: Du gibst den
> HSV-Farbraum vor und musst dass auf deine RGB-LED umrechnen. Dazu kommt
> die nichtlinieare Kennlinie des menschlichen Auges :-)


ähhhh Bahnhof....??..hab ich mit fast gedacht..ja so wird es gehen  ;-)

von Christian T. (shuzz)


Lesenswert?

Such mal in der Codesammlung nach "HSV", gibt's nen ausführlichen Thread 
drüber incl. Codebeispielen.

Auch hilfreich: "HSV Farbraum" googlen, Wikipedia-Artikel anklicken, 
lesen, verstehen, Formeln zur Umrechnung HSV -> RGB programmieren und 
fertig. ;)

Die nicht-lineare Kennlinie des Auges spielt da auch mit rein, kann man 
aber auch wunderbar einbauen... ;)

von Falk B. (falk)


Lesenswert?

Siehe LED-Fading

von Karl H. (kbuchegg)


Lesenswert?

Ingo Laabs schrieb:
> micha schrieb:
>> Ich denke, dasss Du eventuell eine Umrechnung des RGB-Frabraums in den
>> HSV-Farbraum suchst, bzw. in diesem Fall umgekehrt: Du gibst den
>> HSV-Farbraum vor und musst dass auf deine RGB-LED umrechnen. Dazu kommt
>> die nichtlinieare Kennlinie des menschlichen Auges :-)
>
>
> ähhhh Bahnhof....??

HSV ist einfach nur ein anderer Farbraum.
Was'n das?

Stell dir einfach mal vor, du müsstest Farben irgendwie sinnvoll 
anordnen. Bei RGB würde es sich zb. anbieten einen Würfel zu nehmen und 
auf eine Achse Rot, auf eine Grün und auf eine Blau zu legen. Alle 
Farben, die mit RGB darstellbar sind, wären dann innerhalb dieses 
Würfels. Nun ist es aber so, dass in diesem Würfel beanchbarte 
'Kooridnaten' physioligisch recht wenig miteinander zu tun haben. Zb. 
sind dann die Grauwerte von Schwarz bis Weiß entlang der Raumdiagonalen 
des Würfels angeordnet aber ansonsten kann man nur sehr wenig aus dem 
Würfel ableiten.

Jetzt hast du aber zb sicherlich auch schon mal so ein Farbrad gesehen, 
bei dem die Farben von Rot nach Grün nach Blau nach Rot entlang eines 
360° Kreises angeordnet sind. Sowas ist super, wenn man einen Farbton 
aufuchen will. Nur in einem RGB Würfel findet sich dieser Kreis 
nirgends.

Aber mann muss ja nicht einen RGB Würfel nehmen. Man kann zb einen 
Kegel/Doppelkegel aufbauen, bei dem entlang des Kreisumfangs genau jener 
Farbkreis sitzt und die Höhenachse zb die Farbsättigung angibt. An der 
Spitze des Kegels wäre dann weiß/schwarz.

Und ganau das macht zb HSV. Das ist ein Farbschema, bei dem eine Farbe 
eben nicht durch RGB sondern durch andere Kennzahlen beschrieben ist. H, 
oder ausgeschrieben Hue, ist dabei zb die Position im 360° Farbkreis. 
Variiert man in diesem Farbschema Hue von 0 bis 360, so geht man dadurch 
ganz einfach alle Farben von Rot nach Grün nach Blau nach Rot durch.

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.