1 Versuch 3

Werbung
1
1.1
1.1.1
Versuch 3
Inhalt
Ziel
Ziel des dritten Versuchs ist es die LEDs auf dem Praktikumsboard unterschiedlich helle Muster ausgeben
zu lassen. Die Helligkeit einer LED hängt dabei von der angelegten Spannung ab. Bei der Helligkeitsregelung gibt es aber ein Problem: Der Ausgabepegel an den Ports kann nur zwei Werte annehmen, 0 Volt
bei einer logischen Eins und 5 Volt bei einer logischen Null. Eine Helligkeitsdimmung ist aber mittels
Pulsweitenmodulation (PWM) trotzdem möglich.
1.1.2
Material
Das Prinzip der PWM ist einfach: Innerhalb einer festen Periode T liegt für eine bestimmte Zeit E die
Eins am Ausgang an. Beim Erreichen des fest eingestellten Vergleichswert E schaltet die Ausgabe um
und es liegt für den Rest der Periode (T-E) die Null am Ausgang an. Durch das Verhältnis von E zu
T liegt dabei innerhalb eines Zyklus im Mittel ein Wert zwischen 5 und 0 Volt an. Ist die Zyklusdauer
klein genug, im Bereich von ein paar Millisekunden, so nimmt das Menschliche Auge kein Flimmern war,
sondern lediglich eine abgestufte Helligkeit.
Die Funktion des PWM-Modus lässt sich natürlich auch in Software realisieren. Dazu müssen bei dem
Zähler der Überlauf- und Vergleichsinterrupt abgefangen werden, um die Ausgabe zu steuern. Die Frequenz des PWM-Verfahrens entspricht dabei genau der Zählerfrequenz. Der Wert im Vergleichsregister
bestimmt den Abstand zwischen den beiden ISRs innerhalb eines Zyklus.
Die Pulsweitenmodulation im Hardwaremodus hat den Vorteil, dass die Pegelausgabe ohne Aufruf einer
ISR geschieht. Es kann als nicht zu Verzögerungen durch andere ISRs kommen.
Die Softwareemulation des PWM-Verfahrens bietet aber einen entscheidenden Vorteil: Der Zähler gibt
den Pegel im Hardwaremodus nur an einem einzelnen, nicht veränderbaren Pin aus. Welche Aktionen bei
der Software-PWM ausgeführt werden, ist natürlich frei wählbar.
Natürlich lässt sich die Softwareemulation auch komplett ohne Zähler-/Zeitgebereinheit programmieren,
indem man die benötigten Unterprogramme im Hauptprogramm aufruft und nicht in den ISRs.
Eine weitere Besonderheit bei der LED Ansteuerung besteht darin, dass die maximale Helligkeit bereits
bei unter 5 Volt erreicht wird. Liegt für mehr als 2/3 der Periodendauer eine Null am Ausgang an, ist
die maximale Helligkeit erreicht.
1
1.2
Theorieaufgaben
Aufgabe 3.1: PWM
• Bei einer Periodendauer von 128 Takten; wie viele Takte lange muss eine Eins ausgegeben werden,
um eine mittlere Ausgangsspannung von ca. 3 Volt zu erreichen?
• Wie viele Takte braucht man bei einer Zählerbreite von 16 Bit?
• Was fällt bei dem Vergleich mit dem vorherigem Ergebnis auf?
• Wie heißt der Fehler der zu dieser Abweichung führt?
1.3
Praxisaufgaben
Aufgabe 3.2
Schreiben Sie ein Programm, das die äußeren beiden LEDs konstant mit maximaler Helligkeit ansteuert,
die mittleren sechs LEDs aber nur mit halber Helligkeit betreibt. Verwenden Sie dabei weder Interrupts
noch Zähler/Zeitgeber.
Hinweis: Betrachten Sie das Verhältnis von Nullen zu Einsen bei den Ausgaben.
Aufgabe 3.3
Ändern Sie Ihr Programm so ab, dass jede der LEDs eine andere Helligkeit hat.
Aufgabe 3.4
Ein Nachteil der beiden vorherigen Programme ist es, dass sie im Vordergrund laufen und somit die
komplette Rechenkapazität des Microcontrollers benötigen.
Schreiben Sie daher ein neues Programm, bei dem die gesamt Funktionalität (außer der Initialisierungsphase) von den ISRs übernommen wird: Alle acht LEDs sollen gleich hell leuchten und langsam heller
werden. Ist die maximale Helligkeit erreicht, dann sollen sie dunkel werden und das Programm neu beginnen.
Zusätzlich soll das Programm auf vier Taster reagieren:
• Wird Taster 1 gedrückt, dann sollen die LEDs ihre Helligkeit schneller wechseln. Je häufiger der
Taster gedrückt wird, desto schneller soll die Helligkeit wechseln.
• Wird Taster 2 gedrückt, dann sollen die LEDs ihre Helligkeit langsamer wechseln. Je häufiger der
Taster gedrückt wird, desto langsamer soll die Helligkeit wechseln.
• Bei Taster 3 sollen die LEDs in ihrer aktuellen Helligkeit eingefroren werden. Wird der Taster ein
zweites mal gedrückt, dann sollen sie wieder mit der alten Geschwindigkeit die Helligkeit wechseln.
• Bei Taster 4 soll die Richtung der Helligkeitsänderung umkehren. Wurden die LEDs bisher heller,
sollen sie jetzt dunkler werden. Sobald sie ausgehen, sollen sie auf maximale Helligkeit zurückgesetzt
werden. Wurden die LEDs bisher dunkler, sollen sie jetzt heller werden. Sobald sie maximal hell
sind, sollen sie ausgeschaltet werden und dann wieder heller werden.
Gehen Sie bei der Entwicklung des Programms folgendermaßen vor:
• Implementieren Sie zuerst eine konstante Helligkeit an allen LEDs durch einen Zähler.
• Erweitern Sie das Programm um die Helligkeitsänderung durch eine weiteren Zähler.
• Implementieren Sie erst am Ende die zusätzlichen Tasterfunktionalitäten durch ISRs.
2
Herunterladen