LBotics.at

An den digitalen Ausgängen D5, D6 und D9 lässt sich am Arduino Board mit der S4A Firmware ein PWM-Signal erzeugen. Dieses kann zum Beispiel dazu dienen um die Helligkeit einer LED zu regeln.

Dimmen einer LED mit Pulsweitenmodulation

Bei einer LED lässt sich die Helligkeit nicht wie bei einer Glühbirne durch das Regeln der Spannung von 0V bis zur maximalen Betriebsspannung ändern. Dennoch gibt es die Möglichkeit mit Hilfe der Pulsweitenmodulation PWM eine LED unterschiedlich hell leuchten zu lassen - zumindest haben wir den Eindruck. An der LED wird ein gepulstes Spannungssignal wie in der Abbildung angelegt.

Die LED wird also laufend aus- und eingeschaltet. Die Länge der Einschaltdauer, die als Pulsbreite oder duty cycle bezeichnet wird, lässt sich steuern. Dabei nehmen wir unterschiedliche Helligkeiten wahr, da unser Sehorgan das eigentliche, sehr schnelle Flackern der LED nicht auflösen kann.

Aufbau und Material
  •  1 LED
  •  1 Widerstand 220Ω (Farbcode rot rot braun)

Programmbeispiel

Mit dem folgenden Programm wird die LED kontinuierlich heller und dunkler. Dazu wird an PIN D9 ein PWM Signal erzeugt. Die Helligkeit entspricht dabei der Pulsweite des PWM-Signals. In einer Endlosschleife wird die Pulsweite von kontinuierlich von 0 auf 6 erhöht und dann wieder auf 0 reduziert. Die Größe der Pulsweite wird in der Variable Helligkeit abgelegt.

Um dieses kontinuierliche Erhöhen und Verringern des Werts der Variable Helligkeit zu erreichen, wird eine zweite Variable benötigt. Dies Variable mit der Bezeichnung Änderung erhält jeweils den Wert 1 oder -1, je nach dem, ob die Variable Helligkeit im nächsten Schritt um eins erhöht oder verringert werden soll.

Ist das Maximum der Variable Helligkeit erreicht, so wir der Wert der Variable Änderung auf -1 gesetzt. Erreicht der Wert der Variable Helligkeit den Wert 0, so wird der Wert der Variable Änderung auf 1 gesetzt.

Erklärungen zu diesem Programmierbeispiel
Programmablauf
  1. warten bis das Programm durch anklicken der grünen Fahne gestartet wird
  2. setzen des Werts der Variable Helligkeit auf 0
  3. setzen des Werts der Variable Änderung auf 1
  4. Endlosschleife
    1. setzen der Pulsweite des digitalen PWM-Ausgangs D9 auf den Wert der Variable Helligkeit
    2. Ausführung des Programms für eine Sekunde anhalten
    3. Ändern des Werts der Varialbe Helligkeit um den Wert der Variable Änderung
    4. überprüfen, ob der Wert der Variable Helligkeit gleich 6 ist
    5. wenn ja, setzen des Werts der Variable Änderung auf -1
    6. überprüfen, ob der Wert der Variable Helligkeit gleich 0 ist
    7. wenn ja, setzen des Werts der Variable Änderung auf 1
Programmblöcke

Wenn Fahne angeklickt

Dieser Block bildet den Start des Programms. Damit wird festgelegt, dass das Programm zu laufen beginnt, wenn der Benutzer auf die grüne Fahne klickt.

setze auf

Dieser Block dient dazu um den Wert von Variablen festzulegen. Hier erhält die Variable Helligkeit den Wert 0 und die Variable Änderung den Wert 1.

wiederhole fortlaufend

Mit diesem Block wird eine Endlosschleife festgelegt. Alle darin enthaltenen Programmschritte werden nacheinander abgearbeitet. Nach Erreichen des letzten Schrittes beginnt die Ausführung der Programmschritte wieder von vorne. Dies wird so lange wiederholt, bis das Programm beendet wird.

analog value

Mit diesem Block wird die Pulsweite des PWM-Signals eines digitalen Ausgangs festgelegt. Die Werte können zwischen 0 und 255 liegen, was einer Pulslänge von 0% bis 100% entspricht. Hier wird die Pulsweite auf den Wert der Variable Helligkeit gesetzt.

warte Sek.

Wird in einem Programm an einer Stelle dieser Block platziert, so wird die Ausführung des Programms an dieser Stelle angehalten. Der Zahlenwert gibt die Zeitspanne in Sekunden an. Hier wurde eine Sekunde gewählt.

ändere um

Dieser Block wird verwendet, wenn man den Wert einer Variable ändern möchte. Zunächst wird die Variable ausgewählt, deren Wert man ändern möchte. In dem Feld am Ende dieses Blocks gibt man den Wert ein, um den der Wert der Variable geändert werden soll. Neben Zahlenwerten kann hier auch der Name einer Variable eingetragen werden. Hier soll der Wert der Variable Helligkeit um den Wert der Variable Änderung geändert werden.

falls

Mit diesem Block wird über die weitere Ausführung des Programms entschieden. Zunächst wird eine Bedingung angegeben die überprüft wird - hier, ob der Wert der Variable Helligkeit gleich 6 ist.

Ist die Bedingung erfüllt, werden die Programmblöcke ausgeführt, die darunter angeordnet sind. Hier soll der Wert der Variable Änderung auf -1 gesetzt werden, wenn die Bedingung erfüllt ist.

Bedingung

In der Gruppe Operatoren sind verschiedene Bedingungen zu finden. Diese sind grün dargestellt. Hier kommt die Bedingung zum Einsatz, die überprüft, ob ein Wert gleich groß ist wie der andere.