Hi, ich betreibe eine Schaltung mit einer Batterie und möchte nun mit einem AVR die aktuelle Batteriespannung messen. Das Problem: Der AVR hängt ja auch an der Batterie, wenn ich AREF also auf VCC lege, bekomme ich ja egal bei welcher Batteriespannung immer den Maximalwert. Wie stelle ich das an? Vielen Dank schonmal für Tips! Sebastian
Könntest Du nicht die Referenzspannung auf einen bestimmten Wert begrenzen (Zenerdiode o.ä.), und die zu messende Spannung mit einem Spannungteiler in diesen Bereich bringen? Intern könnte man dann den gemessenen Wert auf Vref beziehen dann den Fehler durch den Spannungteiler wieder ausgleichen.
Wie wärs mit der internen Referenz des Controllers ? Diese sollte auch bei sinkender Batt.Spannung recht stabil bleiben. Einfach mal ausprobieren. Du brauchst nur noch einen Sp.Teiler aus 2 Wid. (da du sonst nur bis ca.2,6V Batt.Spannung haben dürftest...) Nebenbei solltest du auch einen Low-Power Controller verwenden, da der sonst bei fallender Batt.Spannung statt sich zu melden sich aufhängen könnte. Ist mir schon passiert. Damals hat sich der Controller so ungünstig im Programm aufgehangen, dass meine Batterie im Auto leergegurgelt wurde. (Verbraucher wurde nun permanent geschaltet...Dumme Sache)
@Sebastian Die Art und weise der messung ist ja dann geklärt aber wenn die interne refferenz nicht stabil genug ist dann gibt es ja noch externe Möglichkeiten. zb. LM336 bringt 2.5V und ist mit 1% auch genaugenug. Obendrein isser mit 1.71 Euro erschwinglich. Einfach nen Vorwiderstand der den Strom innerhalb von 1-10mA hält und fertig. Die zu messende Spannung Teilste dann entsprechend mit Widerständen runter (Spannungsteiler aus 1%igen Metalfilmwiderständen reicht aus) @Andreas Eigentlich sollte nen Controller ne eigene Versorgung haben (zb. 2-3 Mignon NimH die von der KFZ.Bat geladen werden) Ein Externer oder der Interne Watchdog Sichert das Programm und trennt im Zweifelsfalle den Controller vonb der Batterie so das die Verbraucherrelais abfallen können. Ich hatte ähnliches mit nem Älteren Ami wo mir der Controller die Heizung (Eingebaut,800W)jeden Morgen eingeschaltet hat (Wochentags Halbe stunde vor Fahrtbeginn.Kleine Spielerei).Irgendwann hab ich verpennt und als ich dann zum Wagen gelaufen kam war die Batterie empty. 2.3 Tonnen Automatik anschieben ist eh witzlos also noch mehr verspätung weil ich mit Bus und Bahn fahren mußte. Von der Schlepperei mnit der Batt. (120Ah) zum Ladegerät mal ganz abgesehen. Ich schätze das du das mittlerwiele ähnlich geregelt hast.
Hi Leute, erst mal vielen Dank für all die Tips! :-) Das Prinzip meine Spannung mit einem festen Wert zu vergleichen finde ich gut. Nur eines stört mich daran: Im AVR-Datenblatt steht, daß Vref nicht weiter als +/-0,3V von VCC abweichen sollte. Aber 2,5V und 3,6V (von der Batt.) ist schon ein größerer Sprung. Hat jemand Erfahrungen damit? Noch 'ne kleine Randfrage (an Jens): Regelt mir eine Zenerdiode immer z.B. 0,3V herunter, egal (!) bei welchem Stromfluß? Danke schonmal!!! :-) Sebastian
Eine Z-Diode hält, wenn Sie sie in Sperrichtung betrieben wird die Spannung immer konstant auf dem gegebenen Wert. Der Strom der über die Diode fließt ist dabei von der Kennlinie der Z-Diode abhängig. Deshalb wir meistens auch ein Vorwiderstand verwendet, damit die Z-Diode nicht abraucht. Funktioniert folgendermaßen: Der Vorwiderstand wird in der Regel so groß gewählt, dass der Strom über die Z-Diode grade noch zulässig ist. Man greift dann zwischen dem Widerstand und der Diode die konstante Spannung ab. Wird jetzt an dieser Stelle auch noch von einem Verbraucher ein erhöhter Strom gezogen, so fließt prinzipiell dieser höhere Strom durch R, welcher den Spannungsabfall über R ebenfalls erhöhen müsste. Da aber durch die Z-Diode die Spannung am Knoten gleich bleiben muss folgt daraus, dass der Strom durch Z-Diode geringer wird, die Spannung bleibt gleich...
@Sebastian Ein sehr eigenartiges Datenblatt hast du da. Vref darf natürlich immer zwischen 0V (Massepegel) und Vref (zB. 5V) liegen. Wenn du Vref verkleinerst, (auf zB. 2,5v), dann wird der Messbereich geändert. 2,5V-0V =2,5V und das in 2^n Schritte (n=Auflösung deines AD-Wandlers)--> deine Auflösung verbessert sich also. Wenn du eine konstante Referenzspannung erzeugst (zB. über Z-Dioden), dann sieht das ganz genau so aus. Für eine genaue Messung (brauchst du ja nicht) darfst du den Temperaturdrift der Z-Diode nicht vergessen. Noch was: Vref darf aber nicht unter 0V (Massepegel) kommen, da sonst im µC die Quelle zur Senke wird, was schon mal tödlich enden kann.
Hallo, erstmal vielen Dank für die Erklärungen! :-) OK, ich hab's im Datenblatt falsch gelesen: Avcc darf nur um maximal +/- 0,3V abweichen, nicht etwa Aref... Ich werd' jetzt mal mit der internen 2,56V-Spannung versuchen und dann berichten, ob's geklappt hat. Danke schonmal so weit! :-) Sebastian
Kleiner Hinweis: Die interne 2,56V-Referenz ist keine echte 2,56V-Quelle. Das ist so ein Richtwert von Atmel, bei den meisten controllern von mir liegt die SPannung bei etwa 2,7V. Das kannst du mit einem digit.Multimeter nachmessen. (zwischen Aref und Agnd messen bei eingestellter interner Ref). Noch was: Bei verwendung der intern.Ref. darf nix an Aref von aussen angeschlossen werden ! Sonst könnte sich einiges da drin verabschieden. MfG
Hi, @Andreas Kutschbach: "Noch was: Bei verwendung der intern.Ref. darf nix an Aref von aussen angeschlossen werden ! Sonst könnte sich einiges da drin verabschieden" Bedeutet das, ein Programmierfehler bei externer Referenz und zisch... der Chip ist hin ?! Glaub ich irgendwie nicht ! Gruß UBoot-Stocki
Hi, so nun hab' ich's ausprobiert! Mit der internen Ref.-Spannung hat's super geklappt! Ist gut zu wissen, daß man einen internen 2,56V-Regulator hat. Kleine Nebenfrage: Könnte man da nicht auch ein 2,6V-Gerät anschließen, den AVR aber mit 5V betreiben und so die "Spannungsdifferenz" ausgleichen? Bei mir liegen übrigens zw. Aref und Agnd 2,67V an, die dafür aber relativ konstant. Wisst Ihr auch, wie man den Block-C anschließen muß? Ich denke, ich brauche da ja keinen Elko, oder? Sonst + an Aref und - an Agnd?!? Danke! Sebastian
@UBoot-Stocki Nee, viel schlimmer. Das ist ein Hardwareproblem. Intern (siehe ADC-Skizze in Datenblatt) sind da Aref-Pin und interne Aref-Quellen verbunden. Wenn die Referenz auf Aref=Avcc gestellt ist, dann ist der Aref-Pin zu Vcc direkt intern verbunden. Kannst dir vorstellen, dass da nicht viel Strom fliessen darf, wenn jetzt was (zb. Masse) an den Aref-Pin angeschlossen wird. Atmel rät zumindest dazu, vorsichtig mit dem Aref Pin zu sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.