Programmierung des Mikrocontrollers mit C



6. PWM / Pulsweitenmodulation / Pulsbreitensteuerung

Klingt irgendwie schwierig, oder?

Ist es aber gar nicht.

Stell Dir mal für Dein Zimmer eine Elektroheizung vor!

Wenn Du sie in Deinem frostigen Zimmer (mit 0 Grad Celsius) benutzt und sie einschaltest, heizt sie Dein Zimmer auf z. B. 20 Grad auf.

Am nächsten Tag machst Du mal folgendes Experiment: Du schaltest jede Minute die Heizung ein und nach einer Minute wieder aus und nach einer Minute wieder ein u.s.w.

Die Heizleistung wird dadurch halbiert und Dein Zimmer heizt sich nur auf etwa 10 Grad auf.


Der gleiche Trick geht auch mit einem großen (!) Elektromotor. Schalte ihn mal im Sekundentakt (besser noch kürzer) ein und aus und ein und aus usw.
Er wird sich mit etwa halber Geschwindigkeit drehen. Und wenn man schnell genug ein- und ausschaltet, ist die Geschwindigkeit auch relativ konstant.

Sogar eine Glühlampe oder eine LED kann man mit diesem Trick halbhell leuchten lassen. Man muß sie nur schnell genug ein- und ausschalten. Schneller als unser Auge es wahrnehmen kann.

Auch Servomotoren steuert man mit PWM.

Hier auf der Seite von Strippenstrolch wird es schön erklärt.



Auf der Mikrocontrollerspielwiese wird
 hier und hier (Attiny13),
 hier  (Attiny2313),
 hier und hier (Atmega8)
mit PWM herumexperimentiert.


   

weiter