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
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};
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
http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM http://www.mikrocontroller.net/articles/Pulsweitenmodulation
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.
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 :-)
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 ;-)
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... ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.