Das abgebildete Doppelnetzgerät ermöglich die Einstellung von zwei Ausgangsspannungen mit Tastern in 256 Schritten zwischen 0 und 20 V. Es werden zwei PWM-Ausgänge eines ATtiny13 verwendet, dessen Signale zwei Leistungsstufen speisen. Der Atmega8 auf einer Ping-Pong-Platine zeigt auf seinem LED-Display die beiden einstellbaren Ausgangsspannungen an.
Mit den Tastern S2 und S3 wird das Signal am PWM-Ausgang a gesteuert, während die Taster S4 und S5 dem PWM-Ausgang b zugeordnet sind. Die Reihenschaltung von R1 und R2 sorgt zusammen mit der Schaltung im Inneren des Mikrocontrollers dafür, dass die Spannung am Reset-Eingang, der hier sowohl als Analogeingang als auch als Reset-Eingang (Taster S1) genutzt wird, bei geöffnetem und auch bei geschlossenen Taster S2 stets so groß ist, dass der Mikrocontroller nicht zurückgesetzt wird.
Auf diese Weise gewinnt man quasi einen zusätzlichen Eingang, der im Bascom-Programm zur Steuerung des Signals am PWM-Ausgang A verwendet wird.
Die Schaltung auf der Lochrasterplatine im Bild wurde bereits in einem ELO-Beitrag über Experimente zur Verwendung des ADC0(=RESET)-Eingangs des Attiny13 vorgestellt.
Eine der beiden Leistungsstufen-Schaltungen wurde um den abgebildeten Teil mit einem einstellbaren Spannungsregler LM317 zur Speisung der Platine aus dem Ping-Pong-Bausatz mit 4,5 V Gleichspannung ergänzt.
Im Bild ist außerdem die Spannungsteilerschaltung zu sehen, mit der es möglich ist, den Messbereich für die Spannungsmessung mit dem Atmega8 auf der Ping-Pong-Platine auf das Fünffache zu erweitern. Diese Schaltung ist für jeden der beiden Analogeingänge jeweils einmal vorhanden. Beträgt die Eingangsspannung maximal 4 V, ist die zu messende Gleichspannung zwischen Eingang A und Masse zu legen. Die Drahtbrücke zwischen PD.2 ist nicht gesteckt. Es wird der Spannungswert an ADC7 unten auf den unteren fünf Zeilen des LED-Displays der Ping-Pong-Platine angezeigt.
Ist die zu erwartende Messspannung größer als 4 V, wird die oben erwähnte Drahtbrücke eingefügt, und die Messspannung zwischen Punkt B des Spannungsteilers und Masse angeschlossen. Im Bascom-Programm wird die Messbereichserweiterung nun auch entsprechend berücksichtigt, da in diesem Fall die Anzeige von Spannungen zwischen 0 und 19,99 V möglich ist.
Für die Messung der zweiten Spannung und deren Anzeige auf den oberen fünf Zeilen des Displays muss diese ähnlich, wie dies oben erläutert worden ist, an den Anschlusspunkt A bzw. bei zu erwartenden Werten, die größer als 4 V sind, an Punkt B der Spannungsteilerschaltung vor dem Eingang ADC6 des Mikrocontrollers auf der Ping-Pong-Platine angeschlossen werden.
Wird die Drahtbrücke zwischen PD.3 und Masse eingefügt, ändert sich die Spannungsanzeige auf den Zeilen 1 bis 5 des LED-Displays entsprechend, da nun Spannungen von 0 bis 19,99 V gemessen und angezeigt werden können.
Mit dem Programm Supermustergenerator, wurden jeweils die Zeichen für die Ziffern in den oberen und den unteren fünf Zeilen des LED-Displays auf der Ping-Pong-Platine entwickelt, die in dem Bascom-Programm für die Anzeige verwendet werden, und die Programmzeilen damit gestaltet.
Dies hier ist ein Auszug aus dem Listing für den Atmega8 in Bascom AVR:
...
If Pind.2 = 0 Then
Dat = Dat * 5
End If
Dat_zu = Dat / 100000
'Wenn die Messspannung größer als 9.99 V ist, wird in
'den ersten beiden Spalten der fünf Zeilen links
'eine 1 dargestellt, während dies entfällt bei
'Werten unter 10 V
If Dat_zu = 1 Then
Spltz1u = 64
Spltz2u = 992
Else
Spltz1u = 0
Spltz2u = 0
End If
R_zehner1u = Dat Mod 100000
Dat = R_zehner1u
'Nun Anzeige unten auf dem Display(Zeilen 6 bis10)
'Einer
Gosub Mw_anzeige1
Gosub Darstellung1_u
'Zehntel
Gosub Mw_anzeige2
Gosub Darstellung2_u
'Hunderstel
Gosub Mw_anzeige3
Gosub Darstellung3_u
...
Die Programmzeilen für die Darstellung der Ziffern oben auf dem LED-Display(Zeilen 1 bis 5) sind ähnlich gestaltet. Die beiden Messwerte sollen gleichzeitig auf dem Display angezeigt werden . Dafür stehen folgende Programmzeilen:
..
'Nun Gesamtanzeige
'Zehner
Gosub Darstellung_z
'Einer
Gosub Mw_anzeige1
Gosub Darstellung1_o
'Zehntel
Gosub Mw_anzeige2
Gosub Darstellung2_o
'Hunderstel
Gosub Mw_anzeige3
Gosub Darstellung3_o
Waitms 1000
...
Damit die Darstellung der ermittelten Zeichen unten, wie z. B. hier für die Ziffern 0 und 1, erfolgen kann, stehen den Ziffern entsprechend die folgenden Programmzeilen:
...
Zeichen_zu:
'Fallunterscheidung für Muster der Zeichen 0..9
Select Case Zeichen
Case 0:
Splt1u = 992
Splt2u = 544
Splt3u = 992
Case 1:
Splt1u = 0
Splt2u = 64
Splt3u = 992
...
In ähnlicher Weise sind die Programmzeilen gestaltet, mit denen die Ziffern für die Darstellung einer Spannung auf den Zeilen 1 bis 5 des LED-Displays möglich sind. Außerdem wird darauf in der 6. Spalte von links für jede Spannung jeweils ein Dezimalpunkt angezeigt. Dies hier ist ein Auszug aus dem Listing für den ATtiny13, aus dem zu entnehmen ist, wie einfach in Bascom AVR z. B. die Steuerung der beiden PWM-Ausgänge des Mikrocontrollers möglich ist:
...
Do
'PWMA
Adw0 = Getadc(0)
If Adw0 > 700 Then
Gosub Pwma_plus
End If
If Pinb.3 = 0 Then
Gosub Pwma_minus
End If
'PWMB
If Pinb.2 = 0 Then
Gosub Pwmb_plus
End If
If Pinb.4 = 0 Then
Gosub Pwmb_minus
End If
Loop
Pwma_plus:
While Pwm_a < 255
Incr Pwm_a
Gosub Warten
Pwm0a = Pwm_a
Goto Pwma_end1
Wend
If Pwm_a = 255 Then
Gosub Warten
Pwm0a = Pwm_a
Goto Pwma_end1
End If
Pwma_end1:
Return
Pwma_minus:
While Pwm_a > 0
Decr Pwm_a
Gosub Warten
Pwm0a = Pwm_a
Goto Pwma_end2
Wend
If Pwm_a = 0 Then
Gosub Warten
Pwm0a = Pwm_a
Goto Pwma_end2
End If
Pwma_end2:
Return
...
Download: Programmlistings und HEX-Dateien
Die passende Ergänzung zu diesem Artikel:
| |  | Lernpaket Mikrocontroller-Programm in Bascom und C Produktart: Softwarebox, Lieferumfang: Platine mit ATmega8, LED-Display, Programmieradapter, Bauteile, CD-ROM, Handbuch mit 160 Seiten ISBN 978-3-645-65120-2 Versandkostenfrei* direkt beim Verlag bestellen
49,95 € 
|