PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Knopfzelle am Analogport Spannung messen.



meddie
26.09.2008, 15:15
Hallo Leute,
ich habe mir ein RN-Control zu gelget um das Programmieren zu lernen.

Nun versuche ich verschieden eingänge und Ausgänge zu schalten und zu Messen.

Ich habe am Analogport Pin 0 und und GND 3 Knopfzellen (in Rehe) angeschlossen und möchte die Spannnug deren messen.

Dazu habe ich folgenden Code:



$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 32
$crystal = 16000000 'Quarzfrequenz
$baud = 9600

Config Adc = Single , Prescaler = Auto 'Für Spannungsmessung

Config Pina.0 = Input 'Für Spannungsmessung Porta.0 = 1 'Pullup Widerstand ein

Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Volt As Single
Dim W As Word

Do
W = Getadc(0)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"

Waitms 100
Loop

End


Leider bekomme ich dann in dem Terminal 0 Volt angezeigt.
Wenn ich mit einem Multimeter die Spannung messe ist diese 2,5 Volt

Weiß vielleicht jemand was ich falsch mache?
Danke im voraus

Besserwessi
26.09.2008, 17:19
Ich hätte den Verdacht, das die Konstante Ref als Integer berechent wird, und damit 0 rauskommt. Wenn schon könnte man auch 5*5.29/1023 gleich zusammenfassen als konstante oder gleich in den Text.

Neutro
26.09.2008, 18:48
Hi meddie,

ich glaube das hier wird deine Frage beantworten:
http://www.mikrocontroller.net/topic/88128
du musst halt nur den LCD Befehl durch Print ersetzen.

lg
Neutro

meddie
26.09.2008, 21:52
Danke ja das hat geholfen!
Aber eine Frage habe ich trotzdem noch, ich habe nun das Beispielprogramm von RN-Control, das von Haus aus dabei ist laufen lassen, da werden ja auch die A-Ports abgefragt, und da steigt die Spannung immer. In dem Beispiel von Roboternetz sinkt diese, (ich lasse in der Schleife einfch alle 500 ms die Werte ausgeben und diese veränderns ich. womit kann das zusammen hängen?

EDIT: wenn ich den PullUp Widerstand einschalte dann steigt der gemessena ADC Wert langsam, schalte ich den Pullup Widerstand aus sinkt der Messwert.

Wenn ich beim Config von Adc Reference=Aref eingebe steigt/sinkt der Messwert etwas langsamer. Brauche ich evtl einen Widerstand bei der Batterie um den Wert zu messen?

Neutro
27.09.2008, 08:37
Ich denke das könnte an der hohen Taktfrequenz von 16MHz liegen.
Vielleicht läd sich da im inneren des Controllers eine Kapazität auf die sich nicht schnell genug wieder entladen kann- ist aber nur eine Vermutung.
Hast du den Pin AVCC des AVR auf +5V gelegt und dann noch zusätzlich
einen 100nF gegen GND geschaltet? An einigen Stellen wird auch empfohlen
noch eine Drossel in Reihe zu +5V zu schalten für AVCC.
Vielleicht könte das noch Abhilfe schaffen.

Mfg
Neutro

meddie
27.09.2008, 10:14
Das ist ja das RN-Control Board von RN und da sind die beiden 100nF drin. Wenn ich das vom Schaltplan richtig entnommen habe.

Neutro
27.09.2008, 13:08
Sorry, da weiß ich auch nicht weiter.

Aber du könntest mal folgendes Versuchen:

-was passiert wenn du nur einen ADC zyklisch abfragst?
-was passiert wenn du den Intervall von 500ms auf einen größeren Wert einstellst?
-die Taktfrequenz auf 4MHz intern runterschraubst (könnte dann evt. Probleme mit der Datenübertragung geben)

lg
Neutro

Dirk
27.09.2008, 13:38
Hallo meddie,

... das Beispielprogramm von RN-Control, ... da steigt die Spannung immer.
Was heißt das? Da du ja die Spannung einer Batterie mißt, ist der Wert nicht konstant. Um wieviel steigt denn der Wert? Wenn das wenige Hundert mV sind, kann das auch realistisch sein, z.B. wenn die Batterie vor der Messung belastet wurde.


... wenn ich den PullUp Widerstand einschalte ...
Bei der Spannungsmessung sollte man keinen Pullup einschalten.


Brauche ich evtl einen Widerstand bei der Batterie um den Wert zu messen?
Ohne eine "Last" (= Verbraucher) wird die Leerlaufspannung der Batterie gemessen. Wenn die Spannung unter Last gemessen werden soll, muss man den Verbraucher an der Batterie lassen.

Gruß Dirk

Besserwessi
27.09.2008, 14:12
2,5 V für 3 batterien kleingt nach sehr leeren Batterien. Könnte es sein, das die Batterien langsam über den Pullup geladen werden ?

meddie
27.09.2008, 14:36
Der Wert ist von 1,72 Volt auf 3,3 Volt gestiegen in einem Zeitfenster von ca 30 Minuten. Das habe ich mir auch schon überlegt ob die nicht über den µC geladen werden. Ich habe die Batterien im Schub gefunden, die liegen dort schon ewig. Hatte kurz mit einem Multimeter gemessen, da zeigte er 2,5 Volt an, also dachte ich mir dass es zum experementieren reicht. Ich habe im 'Moment keinen Muktimeter zur Hand, rein theoretisch müßte ja der wert beim multimeter auch steigen oder?

Besserwessi
27.09.2008, 16:51
Die digitalen Multimeter haben fast alle 10 MOhm Eingangswiderstand da wird sich nicht viel an der Spannung ändern. Die Spannung wird auch eher sinken als steigen.

Das Steigen wäre auch nur bei eingeschaltetem Pullup zu erwarten.