Gast
#6334145
Ein Posting fuer Newbies. Eventuell wurde das Thema hier auch schon behandelt. Der Code gilt fuer den Atmega 128/328 Wer einen Arduino mit Batterien betreibt,moechte sicherlich auch wissen in welchem Zustand sich dieselbigen befinden. Man koennte also einen Analogeingang nehmen und per Spannungsteiler die Batteriespannung messen. Das ist allerdings nicht noetig.Man kann ohne externe Bauteile und ohne die Verwendung eines Analogpins einfach per simpler Software Messungen durchfuehren. Ein fertiger Code zum Testen siehe Anhang.Einfach uploaden Serialmonitor oeffnen und sich ansehen was angezeigt wird.Eigentlich etwa 5V(USBspannung) - duerfte aber wegen der Schutzdiode auf dem Nanoboard etwas geringer sein. Der Code ist wie gesagt simpel und NICHT von mir.Ich bin mit Pics vertraut und kenne mich mit den Atmega-Instruktionen nur wage aus und hatte keine Lust mich eine Stunde lang wegen ein paar Registerbefehlen mit dem Datenblatt zu beschaeftigen.Genauso wenig wie 99% der Atmega-Freaks auf dem Forum sich den Pic nicht antun wollen.Beim Googeln bin ich auf eine Webseite gestossen,die mir genau das lieferte was ich wollte - siehe Anhang Wie funktionierts: Die "schwabbelnde"(!) Ub des Arduinos wird als Referenz genommen und wird gegen die interne stabile Referenz von 1.1V (+/-9%)gemessen. Die 1.1V werden per Registerzuweisung dem internen A/D-Wandler zugefuehrt. Normalerweise ist dies ja umgekehrt.... Die Gleichung lautet wie folgt: Ub/1024 = 1.1V/Wert im Analogregister => Ub = (1.1V/Wert im Analogregister) * 1024 Die FVR(1.1V) kann von Nano zu Nano verschieden sein.Am besten die echte Betriebsspannung messen und den FVR-Wert anpassen - in der Regel duerfte aber die Toleranz ok sein - es geht ja "nur" um die Batterieueberwachung... Das ist auch meine Vorgehensweise in Pics - mir war erst nach einem kurzen Blick in's Datenblatt bewusst,dass auch die Atmegas die interne FVR messen koennen.Es bedarf aber halt Hardwarekenntnisse mit denen sich Arduino-Newbies sicherlich etwas schwer tun wuerden. Hinweis: Der auskommentierte Code ist das Original - den ausgefuehrten Code habe ich fuer meine Beduerfnisse und dem besseren Verstaendnis wegen leicht geaendert... Eine ausfuehrlichere Beschreibung(auf englisch) gibt es auch im Anhang

