PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LED dimmen



any_key
07.07.2008, 22:21
Aloah,
ich beschäftige mich seit kurzem mit Microcontrollern und arbeite mich zur Zeit an diesem Tutorial entlang. Mittlerweile habe ich auch eine funktionierende Grundschaltung mit LED aufgebaut bekommen.
Allerdings sieht es schon ein Bisschen mager aus wenn die LED nur blinkt. Deshalb würde ich gerne einen Helligkeitssteuerung einbauen, die auch einen fließenden Übergang von einem Zustand in den anderen ermöglicht.
Mittlerweile habe ich mir die Finger schon nach pwm wundgesucht, aber bisher ist dabei nur eine blinkende, dauerhaft oder gar nicht leuchtende LED heruasgekommen.

Da ich mich mit den Grundlagen der Programmierung durch das Programmieren von Desktopanwendungen bereits einigermaßen auskenne ließe sich der fließende Übergang bestimmt relativ einfach realisieren - wenn ich wüsste wie ich die Helligkeit verändern kann.

Also ist meine Frage jetzt, ob evtl. jemand von euch Beispielcode für die Helligkeitsveränderung über den ATMega32 hat.

Schon mal im Vorraus vielen Danke für eure Antworten.

//Edit
Also ich habe mittlerweile gesehen, wie oft dieses Thema hier im Forum schon behandelt wurde (irgendwie habe ich wohl vorher immer nach den falschen Stichwörtern gesucht). Ich denke es ist das Beste, wenn ich die Beiträge noch weiter durcharbeite.

fhs
07.07.2008, 23:14
Hi,

unter https://www.roboternetz.de/wissen/index.php/Pwm gibt es auch eine Verknüpfung zu einem Artikel zu PWM und Bascom: https://www.roboternetz.de/wissen/index.php/Bascom_und_PWM .

Gruß

Fred

any_key
07.07.2008, 23:23
Danke für die Antwort, aber die Beschreibungen von dort habe ich auch schon umgesetzt. Dabei hatte die LED immer die gleiche Helligkeitsstufe, auch wenn ich die Werte verändert habe.

fhs
07.07.2008, 23:26
Hallo,

Danke für die Antwort, aber die Beschreibungen von dort habe ich auch schon umgesetzt. Dabei hatte die LED immer die gleiche Helligkeitsstufe, auch wenn ich die Werte verändert habe.

Dann zeige doch einmal Deinen Code -- die Bascom-Experten hier können sicher den Fehler finden!

Gruß

Fred

any_key
07.07.2008, 23:33
Also ich habe mittlerweile einiges an Code ausprobiert, aber ich kann ja exemplarisch den zu dem von dir genannten Beispiel posten.


$regfile = "m32def.dat"
$crystal = 4000000

Config Portc.0 = Output

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1

Do
Compare1a = 205
Loop

End

//Edit
Ich habe es jetzt mit dem Code von hier https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=39470&highlight=software+dimmen mehr schlecht als recht hinbekommen. Entweder die LED blinkt noch sichtbar, oder sie geht direkt wieder aus.

Sauerbruch
08.07.2008, 05:41
Mit PortC.0 wird´s auch nicht funktionieren: Das "Output-Compare 1A"-Signal liegt beim Mega32 auf D.5.

Und dann solltest Du mal versuchen, den Wert Compare1A über einige Sekunden zwischen 0 und 255 hin- und herlaufen zu lassen

(z.B. so):


Config PortD.5 = Output
...
Do

If Compare1A = 255 then Compare1A = 0 else Compare1A = Compare1A + 1

waitms 10

Loop

any_key
08.07.2008, 08:51
Ayyyyyyyyy!
Danke für die Antwort.
Ich hab heute Nacht noch in einem anderen Threat gelesen, dass es am Port liegen könnte. Daraufhin habe ich den Anschluss umgelegt. Aber da ich meine Platine auf dem Kopf liegen hatte habe ich es aus Versehen an Pin 2 und nicht an Pin 19 gelötet.
Jetzt funktioniert es perfekt. Danke!