Zunächst erweiterte ich nach der folgenden Schaltung den Messbereich für die Spannungsmessung um den Faktor 3. 
Einer der beiden im Baustein LM358 vorhandenen Operationsverstärker ist als Spannungsfolger geschaltet.
Eine Messspannung an seinem Eingang wird durch den Widerstand R1, der zur Parallelschaltung von R2 und R3( Ersatzwiderstand von R2 und R3 0,5 MOhm ) in Reihe geschaltet ist, durch 3 geteilt und steht am Ausgang A an.
Dieser Pin ist mit dem Anschluss ADC6 des Mikrocontrollers auf der Ping-Pong-Platine verbunden.
Der Messbereich beträgt passend zur Kennlinie des Hall-Sensors CLY49E aus dem o. a. Lernpaket 4,5 V.
Wird Bat2 durch eine Batterie mit 9 V ersetzt, lässt sich z. B. mit einem geeigneten Programm in BASCOM AVR eine Gleichspannung von bis zu 9,99 V messen und ihr Betrag mit den LEDs der Ping-Pong-Platine anzeigen.
Am Eingang der Schaltung schloss ich darauf eines der Potenziometer des Ping-Pong-Bausatzes an, um dann für bestimmte Einstellungen des Schleifkontakts den zur jeweiligen Spannung gehörenden Wert mit den Leuchtdioden der Platine anzeigen zu lassen.
Ich verwendete dafür ein Programm in BASCOM AVR, das für Spannungen von 0 bis zum Betrag von Vcc auf den LEDs der Platine einen bestimmten Wert zwischen 000 und maximal 999 anzeigt.
Im Bild ist dies für 2,5 V der Zahlenwert 239.
Aus den Datenblättern des Hall-Sensors aus dem o. a. Lernpaket geht hervor, dass die Kennlinie, die den Zusammenhang zwischen der Ausgangsspannung des Sensors und der gerade herrschenden magnetischen Flussdichte darstellt, z. B. im Bereich von -80 mT und +80 mT linear verläuft.
Für +4V (+80mT) ermittelte ich 384, für +2,5V 239 (+- 0mT) und für + 1 V 98 (-80mT).
Bei 4 V : 384
Differenz: 145
Bei 2,5 V: 239  145/80 = 1,81
Differenz: fast 145 (genauer Wert:141)
Bei 1 V : 98
Aus den oben gemachten Angaben folgt, dass der bei der AD-Wandlung sich ergebende Wert mit 100 zu multiplizieren und danach durch 181 zu teilen ist, da der Mikrocontroller ganze Zahlen verarbeitet.
Für 384 ergibt sich dann 384*100/181 = 212,
für 229 239*100/181=132
und für 98 98*100/181=54
212- 132 = 80 und 132-54= 78, also ebenfalls fast 80
Aus diesen Überlegungen folgt, dass im Programmlisting in BASCOM AVR eine Fallunterscheidung vorhanden sein muss, damit die Flussdichte-Werte bei der Messung mit dem Hall-Sensor richtig mit Vorzeichen dargestellt werden können.
Im Hauptteil des Programms geschieht dies so, wie es im folgenden Auszug aus dem Listing am Beispiel für Werte über 132 zu erkennen ist.
Do
Dat = Getadc(6)
Dat = Dat * 100
' bei Vcc = 3,57V im Falle der Belastung, Division durch 181
'132 wird = 0 gesetzt
Dat = Dat / 181
Select Case Dat
...
Case Is > 132:
Dat = Dat - 132
'Gosub M_tesla
Gosub Ziffern
Gosub Plus
Gosub M_tesla_zi
Waitms 2000
Mit dem Visual Basic Programm Super-Mustergenerator, einer Weiterentwicklung des Programms Mustergenerator, das in einem ELO-Beitrag vorgestellt worden ist, konnte ich für das Unterprogramm Zeichen_z die Werte für die Variablen Splt1, Splt2, Splt3 und Splt4 ermitteln, damit die Darstellung der einzelnen Ziffern möglich ist.
'Zeichen oben, "rechtsbündig"
Zeichen_z:
Select Case Zeichen
Case 0:
Splt1 = 0
Splt2 = 31
Splt3 = 17
Splt4 = 31
Außerdem soll das Vorzeichen richtig angezeigt werden, wie z. B. ein Plus- und ein Minuszeichen bei einer Flussdichte von 00 mT:
...
'Vorzeichen Plus u.Minus
Plus_minus:
Leds(1) = 18
Leds(2) = 23
Leds(3) = 18
Leds(4) = 0
Return
...
Auch die Werte für die Variablen zur Darstellung eines bzw. der Vorzeichen lassen sich aus dem Bild oben ermitteln.
Die Zehner und Einer für den jeweiligen Wert der Flussdichte werden folgendermaßen bestimmt:
...
Ziffern:
Zehner = Dat / 10
Zeichen = Zehner
Gosub Darstellung2
Zehner1 = Zehner * 10
Dat = Dat - Zehner1
Einer = Dat
Zeichen = Einer
Gosub Darstellung3
Return
...
'Links neben der Zehnerstelle soll
' ein Vorzeichen erscheinen, daher folgende Schritte:
'Zeichen links für das bzw. die Vorzeichen
'Leds(1), Leds(2), Leds(3) sowie Leds(4)
'Zeichen Mitte
Darstellung2:
Gosub Zeichen_z
Splt5 = Splt1
Splt6 = Splt2
Splt7 = Splt3
Splt8 = Splt4
Leds(5) = Splt5
Leds(6) = Splt6
Leds(7) = Splt7
Leds(8) = Splt8
Return
'Zeichen rechts
Darstellung3:
Gosub Zeichen_z
Splt9 = Splt1
Splt10 = Splt2
Splt11 = Splt3
Splt12 = Splt4
Leds(9) = Splt9
Leds(10) = Splt10
Leds(11) = Splt11
Leds(12) = Splt12
Return
Das Kurzzeichen mT für die magnetische Flussdichte wird z. B. wie im Bild dargestellt
und mit Vorzeichen einschließlich Betrag der magnetischen Flussdichte mit den folgenden Programmschritten:
' mT und darüber Ziffern darstellen
M_tesla_zi:
'Leds(1) = Vorzeichen + , +-, -
'Leds(2) = "
'Leds(3) = "
'Leds(4) = 0
Leds(5) = 768 + Splt5
Leds(6) = 128 + Splt6
Leds(7) = 896 + Splt7
Leds(8) = 128 + Splt8
Leds(9) = 768 + Splt9
Leds(10) = 64 + Splt10
Leds(11) = 960 + Splt11
Leds(12) = 64 + Splt12
Return
Es empfiehlt sich, für die in diesem Beitrag beschriebene Möglichkeit der Messung der magnetischen Flussdichte mit der Ping-Pong-Platine und dem Hall-Sensor aus dem o. a. Lernpaket eine einstellbare stabile Gleichspannung z. B. mit einem Spannungsregler LM317 zu verwenden und diese mit dem Trimmpotenziometer in der Spannungsreglerschaltung auf Vcc = 3,57 V einzustellen , da die Nennspannung der drei Zellen der Batterie, die für die Ping-Pong-Platine vorgesehen ist, während des Gebrauchs allmählich sinkt, und folglich die Anzeige bei den jeweiligen Flussdichtewerten sich im Vergleich zu anfänglichen Messungen verändert.
Im Bild ist wie in demjenigen ganz oben gerade der Stabmagnet vor dem Hall-Sensor des Lernpakets Sensortechnik [1] platziert, um mit der oben dargestellten Schaltung auf einem kleinen Steckboard mit dem ATMEGA8 der Ping-Pong-Platine auf dieser die magnetische Flussdichte, die der Sensor erfasst, messen und anzeigen zu können.
Hier ping_ADC01a.bas sowie ping_Hall_Sns1.bas herunterladen
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 € 
|