Batteriespannung messen

OP #1087241
Lesenswert?

Hallo zusammen,

ich bastele gerade an einem batteriebetriebenen Gerät (3-AA-Zellen) und 
nutze den ADC von einem ATmega48 hinter einem Spannungsteiler (siehe 
Schaltplan im Anhang).

Nachdem ich heute noch einmal einen Blick in den Schaltplan geworfen 
habe ist mir aufgefallen, daß es keine gute, sondern eher eine schlechte 
Idee war, und ich mich eigentlich wundern muß, daß die Schaltung seit 2 
Wochen läuft und weder der ADC7 noch der PC5 zerstört ist, da der PC5 
immer dann, wenn ich nicht die Batteriespannung messe, hochohmig ist.

Nur: Wie macht man es richtig? Ein Spannungsteiler mit großen 
Widerständen direkt zwischen Batterie und GND kommt eigentlich nicht in 
Frage, da das Gerät auch stärkeren Umwelteinflüssen (Luftfeuchte, 
Schmutz) ausgesetzt sein wird, und ich die Batteriespannung und nicht 
die Mondphase abschätzen will.

Die Wirkung einer Z-Diode über dem R15 als Überspannungsschutz könnte 
ich jetzt nicht abschätzen- dann habe ich ja einen nichtlinearen 
Widerstand parallel dazu eingebaut. Und der "Stromverbrauch" dieses 
Teils würde ja auch nicht verschwinden.

Gibt es für so ein Standardproblem keine Standardlösung?
Angehängte Dateien:
Gast #1087260
Lesenswert?

Steh ich grad auf dem Schlauch?
Wie funktioniert das denn? Du misst einmal VCC (über eine Art Pullup aus 
R15 und R16) und gleichzeitig einen Bruchteil dieser Spannung über R15?

Ich hätte entweder die interne 2,54 V RefSpg verwendet, oder mir extern 
eine Spannung über einer Z-Diode erzeugt, gegen die ich vergleichen 
kann.
Gast #1087278
Lesenswert?

hallo

also warum sollte irgendwas kaputt gehen ??

hab mich vor einem monat auch mal mit dem Problem messen der spannung 
eines akkus befasst um daraus auf den ladezustand zu kommen und bei 
evtl. unterschwelligen spannung das nutzgerät abzuschalten .

da gabs einige seiten im netz, hab ich leider jetzt nicht hier die 
links.. einfach mal suchen google . "verfahren zum ladezustand 
batterie".

hab mir mal theoretisch ein paar gedanken gemacht wie eine recht 
einfache und  doch relativ genaue schaltung designen kann:

wenn es möglich die spannung von einem gerät kurz zu trennen, oder für 
das betriebene  gerät kurz zu puffern : DANN spannung evtl. über MOSFEt 
oder Relais (...)  abschalten => leerlaufspannung messen oder evtl. 
einen anderen C definiert laden lassen .. und dann messen bzw. auch zeit 
der ladung messen ...  hab mir da über die details noch nicht gedanken 
gemacht.

oder halt ohne diese abschalterei...

evtl. feintunning mit trimmer-R  und multimeter richtige schwellenwerte 
einstellen :  das geht ja bei einzelschaltungen.
Gast #1087282
Lesenswert?

Vielleicht mit einem PNP-Transistor in der Leitung von U-batt, der bei 
Bedarf angesteuert wird? Eventuell kann hochohmiger Spannungsteiler auch 
dauernd versorgt werden (2M2/3M9 statt 2k2/3k9). Meßgenauigkeit leidet 
etwas, dürfte aber gehen.
Gast #1087283
Lesenswert?

Du ziehst PC5 auf Low und misst dann die Spannung an PC7?
Was hat denn das für einen Grund?

Der AD Eingang hat einen Widerstand von (lies es besser im Datenblatt 
nach) 1MegOhm (oder irgendwas in der Größe, absoluter Wert ist ja egal).
Damit fliet ein Strom von meinetwegen ein paar µ => nix geht kaputt.
Dasselbe gilt, wenn du den PC5 auf HighZ schaltest; dann fließt (im 
schlimmsten Fall) ein Strom von ein paar µ => nix geht kaputt.

Genaue Werte stehen im Datenblatt, sterben sollte nichts.

Trotzdem ist mir das Messverfahren schleierhaft :)
Gast #1087298
Lesenswert?

Hi Nicolas,

das was Du da machst, funktioniert doch, oder? Also lass es so.
Den ADC kannst Du icht zerstören. Da fließt kein Strom rein, weil der 
Eingang extrem hochohmig ist (Spannungsmessung ... logisch, oder?). Und 
solange die Quelle der Messspannung unter 10k oder so bleibt, 
funktioniert der ADC auch einwandfrei.

Wenn Du es aber richtig (und genauer) machen willst, dann benutze einen 
Operationsverstärker dafür. Das hat allerdings zur Folge, dass Deine 
Schaltung etwas umfangreicher wird.

Aber wenn es funktioniert, dann lass es einfach so.
Gast #1087301
Lesenswert?

Bei manchen neueren AVRs kann man man den ADC auf "Versorgungsspannung 
messen" einstellen:
VCC als Vref und die interne Bandgap-Referenz auf den ADC-Eingang. Dann 
brauchts gar keine externe Beschaltung mehr, um die Batteriespannung zu 
messen, also auch keinen Spannungsteiler mehr.
Gast #1087310
Lesenswert?

> Trotzdem ist mir das Messverfahren schleierhaft :)

Ich denke, er hat einen schaltbaren Spannungsteiler gebaut um Energie zu 
sparen.


@ Nicolas
Dein avr ist nicht defekt weil der Spannungsteiler relativ hochohmig 
ist. Die Eingänge besitzen außerdem clamp-dioden. D.h. die überschüssige 
Spannung wird auf die Versorgungsspannung abgeführt.

Wie man es richtig macht? k.A. :P
Ich würde den 3,3V Spannungsregler rauswerfen. Bis 5,5V verkraftet der 
atmega48, das wären dann 1,83V pro Alkaline Zelle. Soviel haben die 
maximal, wenn sie vollgeladen sind. Das käme deinem Energieverbrauch zu 
Gute. Schau dir mal den Eigenverbrauch des Spannungsreglers an, der 
liegt um Größenordnungen höher als der deiner Schaltung im standby.

Wenn du dann sowieso die Akkuspannung an Vcc hast ist alles ganz 
einfach:
- ADC auf Vcc als Referenz schalten.
- Interne Bandgapreferenz damit meßen.
Und mit etwas Nachdenken kannst du das dann umrechnen. Musst keinen 
einzigen Pin dafür opfern.
Gast #1087317
Lesenswert?

Gerade sind mir noch ein paar Punkte aufgefallen:

- Reset kannst du unbeschaltet lassen, der avr hat einen internen 
pullup. Macht das layout einfacher.
- Aref kannst du ebenfalls unbeschaltet lassen.
- Spannungsteiler für den LM317: Ist das nicht etwas niederohmig?

Was  möchtest du denn schönes basteln?
Gast #1087340
Lesenswert?

Wollte gerade schreiben, dass
- der Spannungsteiler am LM317 viel Strom braucht,
- der LM317 auch weggelassen werden kann und
- bei Wegfall des LM317 die Batteriespannung auch ohne ADC-Eingang
  gemessen werden kann.

Dann habe ich gesehen, dass avion23 schon alles geschrieben hat :)

Nur noch eins:

Ohne Spannungsregler fällt nicht nur dessen Eigenstromverbrauch weg, die
Batterie kann wegen des nicht mehr vorhandenen Dropouts weiter entleert
werden (bis 2,7V herunter, beim mega48V sogar bis 1,8V), bevor der
Controller aufhört zu arbeiten.
OP #1087371
Lesenswert?

Hallo zusammen,

danke für die raschen Antworten. Ich mag nicht so gerne unfertige 
Projekte posten, aber wenn es denn so weit ist, mache ist das hier im 
Forum publik.

Der Grund für den Spannungsregler ist die Peripherie, vor der einige nur 
von 2,7V-3,3V spezifiziert ist. Ob sie wirklich von 4,5V zerstört wird, 
werde ich mal später in einem aufopferungsvollen Versuch ausprobieren, 
sobald in den Prototypen nicht mehr brauche. Ob ich dann einen 
Spannungsregler vor den ATmega oder Spannungsteiler vor jede 
Signalleitung lege ist eine andere Frage, ersteres halte ich aber für 
"sauberer".

Der LM317 wird sicherlich noch ersetzt, es ging mir bei dem Schaltplan 
nur ums Prinzip.
Gast #1087637
Lesenswert?

Ist der "Aufwand" mit dem Spannungsteiler nicht überflüssig?

Der ADC besitzt einen Eingangswiderstand von mindestens 55 Meg; das 
macht einen Strom von 90 nA @ 5V...

Da leckt doch alles andere mehr.
Gast #1087906
Lesenswert?

das mit der interenen Referenzspannung is ja  interessant!
das ist mir neu das sowas jetzt an bord einiger AVRs ist.

also wenn man nun mal akku-spannung (12V) messen will, bzw. bei leerem 
Akku abschalten will  dann nimmt man  ein spannungsteiler stellt ihn so 
ein das bei vollem akku 2.56V = int. Ref-Spannung abfällt über ADC  und 
wenn die spannung dann sinkt infolge des entladenen akkus dann def. man 
grenzwert der Messspannung und schlatet ab.


-- oder gibts noch bessere ideen dazu ?


geht mir hier um bleigelakku (vermeidung tiefenentladung) und daran 
betriebene musikanlage...
Gast #1087916
Lesenswert?

nur ein problem sehe ich noch ... aufgrund der  unterschiedlichen last 
(~1A) wird die Uakku ziehmlich schwanken  ...

dadurch wird das messen im betrieb ziehmlich ungenau , oder ?


 man könnte über eine diode/transistor  ein  kleinen C laden lassen und 
über den messen >>   dann läd der C sich bei momentan kleiner last auf 
Ux und bei großer last kann aber nix zurückfließen ...  ist das ein 
ansatz oder niocht besonders klug ?
Beitrag #2378682 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren