Forum: Mikrocontroller und Digitale Elektronik Batterie-Ladezustand mit AVR prüfen


von dreimalsoviel (Gast)


Lesenswert?

Hi,

ein mobiles, batteriebetriebenes Gerät wird von einem ATmega48 
gesteuert. Um zu vermeiden, dass die Batterie kurzfristig entladen wird 
und das Gerät nicht mehr funktioniert, soll der Batterie-Ladezustand in 
der Initialisierungsphase des Gerätes geprüft werden.

Wie macht man so etwas schaltungsmäßig? Wichtig sind möglichst wenige 
zusätzliche Komponenten und ein extrem geringer Verbrauch.

Mit Google bin ich leider nicht weiter gekommen. Vielleicht fehlt mir 
einfach das Richtige Stichwort.

Meine Idee: Den ADC des ATmega mit der internen Referenzspannung 
verwenden. Die Batteriespannung von 3V (2 Mignon Zellen) mit 
Wiederständen (Spannungsteiler) unter die 1,1 V bringen, so dass die 
Messspannung niemals 1,1 V überschreitet. Den Messstrom dann mit einem 
Transistor für die Dauer der Messung einschalten.

Fraglich dabei ist, wie stabil die AVR 1,1V Referenzspannung ist.

Hat jemand schonmal ein ähnliches Problem gehabt oder kann mir ein 
Stichwort oder eine Quelle nennen, wo ich so etwas finden kann.

Danke und Gruß

dreimalsoviel

von Joe (Gast)


Lesenswert?

Die interne referenz liegt bei 2,56V

Es können dann nur Spannungen bis 2,56V gemessen werden.

Falls eine andere Referenz möglich ist (1,1V?) ist das natürlich die 
Grenze.

Bisher habe ich angenommen, dass nur die externe Ref.-Spannung 
mindestens 1,1V sein muss.

sonst ist das ok.

von Floh (Gast)


Lesenswert?

dreimalsoviel schrieb:
> Meine Idee: Den ADC des ATmega mit der internen Referenzspannung
> verwenden. Die Batteriespannung von 3V (2 Mignon Zellen) mit
> Wiederständen (Spannungsteiler) unter die 1,1 V bringen, so dass die
> Messspannung niemals 1,1 V überschreitet. Den Messstrom dann mit einem
> Transistor für die Dauer der Messung einschalten.

Andere Idee, falls der uC direkt aus der Batterie versorgt wird (ohne 
Spannungsregler):
ADC auf Referenz = AVcc stellen (Akkuspannung), dann die eine interne 
Referenz als Kanal auswählen (z.B. 1,1 V).

            1,1Volt
ADC-Wert =  ------------ * 1024
            Akkuspannung

Das Umformen überlass ich dir. :-)

von spess53 (Gast)


Lesenswert?

Hi

Anders herum: VCC als Referenspannung und die Bandgap-Referenz Messen. 
Je höher der gemessene Wert ist, desto niedriger ist deine Spannung.

MfG Spess

von dreimalsoviel (Gast)


Lesenswert?

Vielen Dank Euch!

@Floh und spess53
Traumhaft -- ohne zusätzliche Bauteile und so einfach! So werde ich es 
machen :)

P.S. ja, das Gerät wird direkt und ohne Spannungsregler aus der Batterie 
versorgt.

von moriz (Gast)


Lesenswert?

hallo,

also ist das dann beim atmega328 mit 1,1V Referenzspannung
(Vcc * 10) = ((11 * 1024)/ ADCval)

?

muss man bei uint16_t das noch durch zwei teilen?

dankeschön
mortiz

von Sam .. (sam1994)


Lesenswert?

moriz schrieb:
> muss man bei uint16_t das noch durch zwei teilen?

Warum das denn? uint16_t heitß einfach 16bit Zahl von 0 bis 2^16-1.

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
Noch kein Account? Hier anmelden.