mikrocontroller.net

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


Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Pete K. (pete77)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die PWM wird unter die Mindestspannung der LEDs gehen.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht 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};

Autor: Ber (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Ingo Laabs (grobian)
Datum:

Bewertung
0 lesenswert
nicht 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  ;-)

Autor: Christian T. (shuzz)
Datum:

Bewertung
0 lesenswert
nicht 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... ;)

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Siehe LED-Fading

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.