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.
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:
Leider bekomme ich dann in dem Terminal 0 Volt angezeigt.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
Wenn ich mit einem Multimeter die Spannung messe ist diese 2,5 Volt
Weiß vielleicht jemand was ich falsch mache?
Danke im voraus
Gruß Eddie
__________________________________________________ ___________________
Habe keine Angst davor, etwas Neues auszuprobieren, ein Amateur hat die Arche gebaut, Profis die Titanic!
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.
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
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
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?
Gruß Eddie
__________________________________________________ ___________________
Habe keine Angst davor, etwas Neues auszuprobieren, ein Amateur hat die Arche gebaut, Profis die Titanic!
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
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
Das ist ja das RN-Control Board von RN und da sind die beiden 100nF drin. Wenn ich das vom Schaltplan richtig entnommen habe.
Gruß Eddie
__________________________________________________ ___________________
Habe keine Angst davor, etwas Neues auszuprobieren, ein Amateur hat die Arche gebaut, Profis die Titanic!
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
Jemand mit einer neuen Idee ist ein Spinner, bis er Erfolg hat.
(Mark Twain)
Hallo meddie,
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.... das Beispielprogramm von RN-Control, ... da steigt die Spannung immer.
Bei der Spannungsmessung sollte man keinen Pullup einschalten.... wenn ich den PullUp Widerstand einschalte ...
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.Brauche ich evtl einen Widerstand bei der Batterie um den Wert zu messen?
Gruß Dirk
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 ?
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?
Gruß Eddie
__________________________________________________ ___________________
Habe keine Angst davor, etwas Neues auszuprobieren, ein Amateur hat die Arche gebaut, Profis die Titanic!
Lesezeichen