Die Picaxe eignet sich sehr gut um Spannungen zu messen.
Wichtig zu beachten ist allerdings :
Die zu messende Spannung darf niemals höher als die Versorgungsspannung der Picaxe sein - sprich 5V !
Um eine vernünftige Messung zu erzielen , benötigt man eine sehr stabile Versorgungsspannung ,
da die Picaxe die Versorgungsspannung als Referenzspannung beim Messen nutzt.
( Bei manchen Picaxe kann man die Referenzspannung einstellen , ob intern oder extern - hier nutzen wir ausschließlich die interne )
ADC bedeutet : Analog - Digital - Conversion
Das heißt , aus einer Gleichspannung eine Dezimalzahl ermitteln.
Es gibt 2 Befehle dazu :
1. readadc -> hierbei wird mit 8Bit aufgelöst , was allerdings recht wenig ist
2. readadc10 -> hierbei wird mit 10Bit aufgelöst , dieser Befehl ist zu empfehlen
10Bit bedeutet , das aus der analogen Spannung ein Wert von 0 bis 1023 ermittelt werden kann.
Wenn wir also eine stabile Versorgungsspannung von 5V haben , dann wäre : 0 = 0 Volt / 1023 = 5V
Jetzt benötigen wir lediglich den Teilungsfaktor : 5V : 1023 = 0,0048
Fangen wir hier erst einmal mit dem Schaltplan an.
Als Test nutzen wir ein simples Poti mit 10K um Werte zu erhalten.
Den ermittelten Wert lassen wir uns über ein Terminalprogramm anzeigen.
( Wir nutzen 4Mhz , das heißt : 4800 Baud einstellen )
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
symbol Zehntausend = b4
symbol tausend = b5
symbol Hundert = b6
symbol Zehner = b7
symbol Einer = b8
let dirsc=%00000001
do
readadc10 1,w0
if w0<>w1 then
w1=w0
w0=w0*10
w0=w0/100*48
bintoascii w0,Zehntausend,Tausend,Hundert,Zehner,Einer
sertxd (Tausend,".",Hundert,Zehner,Einer," Volt",13,10)
endif
loop
Damit wir auch Kommastellen anzeigen lassen können ,setzen wir den ermittelten Wert
nach dem Einlesen um eine Potenz höher, also in diesem Fall x10
Weil jetzt können wir mit /100 x 48 den Wert durch 0.048 , unserem Teilungsfaktor teilen lassen.
Nun erhalten wir zahlen im Tausenderbereich , wobei wir uns gedanklich nach der 1. Stelle einen Punkt vorstellen müssen.
Das Ganze wandeln wir jetzt noch mit dem Befehl : BINTOASCII in einzelne Zahlen um und senden diese an den Terminal am PC.