Die Spannung an ADC6 wird in der nun vorliegenden Programm-Version als Digitalwert angezeigt. Der Messbereich kann mit einem Spannungsteiler um den Faktor 3 erweitert werden. Beim Einsetzen einer Steckbrücke wird der Anzeigewert verdreifacht.
Zusätzlich zur Digitalanzeige der Spannung an ADC6 ist für diejenige an ADC7 eine Bargraphanzeige mit bis zu 10 LEDs in den oberen beiden Reihen des Displays vorhanden.
Im Bild wird gerade die Spannung der 9V-Batterie gemessen und angezeigt (Messbereichserweiterung um den Faktor 3, Messspannung zwischen Um_D*3 und Masse, Steckbrücke zwischen PD3 und GND gesteckt).
Die Spannung der 1,5 V-Zelle an ADC7 beträgt gemäß Bargraphanzeige etwa 1,4 V. (Messspannung in diesem Fall zwischen Um_B*1 und Masse)
Hier ist ein Auszug aus dem Programmlisting in BASCOM AVR, mit dem dies möglich ist.
...
Anfang:
'Eichen durch Vergleich mit ADC-Wert für Un=1.25V
'Damit werden die Digital-Anzeige und
'die Bargraphanzeige ist fast unabhängig von der Höhe
'der Spannung Vcc
Dat = 0
Dat1 = 0
For J = 1 To 10
Dat = Getadc(5)
Dat1 = Dat1 + Dat
Next J
Dat = Dat1 / 10
'**1.25*1023/4.68=273
'war 273000 /dat
Dat1 = 273000 / Dat
'war Dat1*46 (bzw. Dat1*47) wg. 4.68V
Dat1 = Dat1 * 46
Dat1 = Dat1 / 1000
...
Nach dem Einschalten der Spannungsversorgung geschieht per Programm die Eichung des Spannungsmessers durch Messung der 1,25 V-Spannung am Ausgang eines Spannungsreglers LM317LZ und die anschließende Bestimmung eines Faktors Dat1 für die späteren Messungen.
Darauf folgen periodisch mit einer Pause von einer Sekunde bis zum Abschalten der Spannungsquelle Messungen an ADC7 und ADC6 und ihre jeweilige Bargraphanzeige bzw. Digitalanzeige.
...
'Messungen
Do
Dat = Getadc(7)
'*
'Bei 1 V leuchten etwa 5 LEDs in den obersten 2 Reihen,
'bei 2 V 10 LEDs.
Dat = Dat * 25
Dat = Dat / 10
'*
Dat_bar = Dat * Dat1
'Division durch (5*1023)
Dat_bar = Dat_bar / 5115
Gosub Balken
Dat6 = 0
For J = 1 To 10
Dat = Getadc(6)
Dat6 = Dat6 + Dat
Next J
Dat = Dat6 / 10
'Schritt 1: Dat * Dat1, siehe oben
Dat = Dat * Dat1
If Pind.3 = 0 Then
Dat = Dat * 3
End If
Gosub Mw_anzeige
Loop
...
Bei eingesetzter Steckbrücke zwischen PD3 und Masse wird der dreifache Wert angezeigt (Messspannung zwischen Anschluss Um_D*3 und Masse maximal 9,99 V, da nur 3 Anzeigestellen!).
...
Case 1 :
Balken0 = 3
Balken1 = 0
Balken2 = 0
Balken3 = 0
Balken4 = 0
Balken5 = 0
Balken6 = 0
Balken7 = 0
Balken8 = 0
Balken9 = 0
Balken10 = 0
Case 2:
Balken0 = 3
Balken1 = 3
Balken2 = 0
Balken3 = 0
Balken4 = 0
Balken5 = 0
Balken6 = 0
Balken7 = 0
Balken8 = 0
Balken9 = 0
Balken10 = 0
...
Für die Bargraphanzeige in den obersten zwei Zeilen des LED-Displays sind je nach Messspannung 10 Fälle zu unterscheiden.
...
'Zeichen links
Darstellung1:
Gosub Zeichen_z
Leds(1) = Splt1 + Balken0
Leds(2) = Splt2 + Balken1
Leds(3) = Splt3 + Balken2
'LEDs(4) = 384 steht für einen Punkt
Leds(4) = 128 + Balken3
Return
...
Die Digitalanzeige und die Bargraphanzeige sollen nicht nacheinander, sondern gleichzeitig auf dem Display erscheinen, also müssen zu den Werten für die jeweiligen Ziffern und den Dezimalpunkt in Spalte 4 diejenigen für die obersten beiden Zeilen (Balken 0..Balken 10) addiert werden.
In diesem Bild wird die Spannung der 1,5V-Zelle direkt an ADC6 (keine Messbereichserweiterung, PD3 nicht mit Masse verbunden, Messspannung zwischen Um_D*1 und Masse) gemessen und digital angezeigt.
Die Spannung der 9V-Batterie wird für die Messung durch den Spannungsteiler vor ADC7 auf ein Fünftel herabgesetzt und beträgt gemäß der Bargraphanzeige (Messbereichserweiterung um den Faktor 5, Messspannung zwischen Um_B*5 und Masse) etwa 9 V.
Die Ziffern der Digitalanzeige werden wie bei dem im oben erwähnten ELO-Beitrag [2] vorgestellten Projekt „linksbündig", hier aber wegen der zusätzlichen Bargraphanzeige in den Reihen 4 bis 8 dargestellt. Die Programmzeilen für das Listing in BASCOM AVR mussten neu entworfen werden. Dafür eignet sich z. B. das Programm „Supermustergenerator" [3] in Visual Basic 5.
Im Bild wird gerade eine leicht veränderte Version des oben erwähnten „Supermustergenerators" verwendet. Die Anzeige der Programmzeilen wurde zuerst der Übersichtlichkeit wegen nachträglich „von Hand" in drei Blöcke unterteilt.
Darauf konnten die Zahlenwerte für die Ziffern hinter Leds(1)..Leds(3), Leds(5)..Leds(7) bzw. Leds(9)..Leds(11) in das Listing in BASCOM AVR übernommen werden.
Dazu lauten in diesem die Programmzeilen für die Darstellung der Ziffern 3, 4 und 5 folgendermaßen:
...
Case 3:
Splt1 = 168
Splt2 = 168
Splt3 = 248
Case 4:
Splt1 = 56
Splt2 = 32
Splt3 = 248
Case 5:
Splt1 = 184
Splt2 = 168
Splt3 = 232
...
In ähnlicher Weise lassen sich für die übrigen Ziffern die Programmzeilen erstellen. Die Programmierung ließ sich gerade noch mit der Demo-Version von BASCOM AVR durchführen.
Listing und Datei im HEX-Format zum Beitrag hier herunterladen.
Literatur, Bezugsquellen:
[1] Ping-Pong-Bausatz von www.elo-web.de
[2] Artikel zur „Spannungsmessung mit der Ping-Pong-Platine"
[3] Beitrag „Supermustergenerator" von Hermann Nieder
Die passende Ergänzung zu diesem Artikel:
| |  | Franzis Ping-Pong Produktart: Softwarebox ISBN 978-3-7723-4799-3 Versandkostenfrei* direkt beim Verlag bestellen
29,95 € 
|