Hallo liebe leute! Ich hab ein Problem, das für viele von euch bestimmt ein klax ist. in weit entfernter zukunft möchte ich einen rgb led würfel basteln. zuerst liegt mein problem jedoch darin, die 3 leds der rgb led einzeln per pwm zu dimmen. ich möchte 3 potis an einen atmega8 anschließen und damit die rgb led dimmen, um mir selbst farben mischen zu können. entweder bin ich zu blöd (danke jetzt schon für die kommentare, die mir das bestätigen) oder ich check da irgendwas nicht. im endeffekt soll einfach der ad gewandelte wert als timer reloadwert übernommen werden und damit die helligkeit (farbe) bestimmen. geht das überhaupt? kann ich mit dem mega8 überhaupt mehrere ad-werte von potis übernehmen? danke schon mal ps: ich programmier im assembler (C sagt mir abgesehn von den schulkenntnissen nix)
hm, selber hab ich das noch nicht gemacht, aber ich halte es fuer nicht besonders sinnvollen. Wenn du eh 3 potis zum einstellen der farben nehmen willst dann kannst du die postis doch auch gleich als vorwiderstaende fuer die leds direkt nehmen. Da kommst du doch auf das gleiche hinaus ohne programmieren zu koennen. Ich wuerde es mit nur einem poti am AD eingang versuchen und den rest per software machen. Wenn der atmega allerdings nur die aufgabe hat leds zu dimmen koenntest du ja auch ein drehrad als impulsgeber am interrup eingang, dann brauchst du den AD eingang nicht pollen und koenntest theoretisch auch in nen schlafmodus gehn mit deinem RGB ding. Was ist die richtige bezeichnung eines "drehrad impulsgebers"? falls jemand nicht weis was ich mein, z.b. die drehknoepfen in einigen autoradios die man ewig drehen kann um die lautstaerke einzustellen C brauchst du nicht wenn du nur ein paar leds ansteuern willst. Ich hab erfahrung sowohl mit C als auch mit assembler und ich muss sagen das ich sachen wie lauflichter lieber mit assembler als mit C programmiert hab.
@Roland, klar kannst Du das so machen. Um erst einmal ein Gefühl für die Farbmischung zu bekommen, bin ich früher einmal ebenso vorgegangen. Also: 3 Potis mit den Endabgriffen zwischen Masse und Vcc, Mittelabgriff an je einen ADC, dann die ADC-Werte so skalieren, dass sie als Eingabe für je einen der Timer/Counter zur PWM-Erzeugung geeignet sind. Die PWM-Signale (über Vorwiderstand!) mit R, G, B verbinden - fertig! Was klappt bei Dir denn daran nicht?
hi danke schon mal für die infos! ich denke, bei mir fehlt der background in punkto ADC... da sollt ich mich nochmal einlesen, wie man das macht, dass man 3 verschiedene kanäle wandelt. bisher hab ich immer nur 1 poti an 1 pin gewandelt. wenns was geworden ist, meld ich mich, wenn nicht, werd ich mich wahrscheinlich auch nochmal melden G danke nochmal lg
Roland schrieb: > hi > > danke schon mal für die infos! > > ich denke, bei mir fehlt der background in punkto ADC... da sollt ich > mich nochmal einlesen, wie man das macht, dass man 3 verschiedene kanäle > wandelt. > bisher hab ich immer nur 1 poti an 1 pin gewandelt. Geht völlig analog. Nur stellst bei jedem Wandelvorgang einen anderen Kanal ein. Das wars dann auch schon. Gleichzeitig messen geht nicht. Aber man kann natürlich 3 verschiedene Kanäle nacheinander messen. PS: Die PWM mittels Timer-Reload Wert zu erzeugen ist zwar eine gute Übung (die du unbedingt machen solltest), aber letztenendes bringt dich das deinem Ziel nicht näher.
Karl heinz Buchegger schrieb: > PS: Die PWM mittels Timer-Reload Wert zu erzeugen ist zwar eine gute > Übung (die du unbedingt machen solltest), aber letztenendes bringt dich > das deinem Ziel nicht näher. wie soll ich die pwm denn sonst erzeugen, wenn ich nicht die reloadwerte verändere? dank, lg
Roland schrieb: > Karl heinz Buchegger schrieb: >> PS: Die PWM mittels Timer-Reload Wert zu erzeugen ist zwar eine gute >> Übung (die du unbedingt machen solltest), aber letztenendes bringt dich >> das deinem Ziel nicht näher. > > wie soll ich die pwm denn sonst erzeugen, wenn ich nicht die reloadwerte > verändere? Indem du den Timer durchlaufen lässt und in der ISR einen Zähler etablierst mit dem du die PWM realisierst. Anders wird es ziemlich aufwändig viele PWM-Stufen zu erzeugen. Es ist zwar möglich, aber in Assembler würde ich mir das nicht antun. Studiere das hier http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM (Abschnitt: PWM in Software) und dann das hier http://www.mikrocontroller.net/articles/AVR-Tutorial:_SRAM (mehr PWM Stufen als Register in der CPU vorhanden)
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.