Forum: Mikrocontroller und Digitale Elektronik 12V möglichst genau messen


von Michele B. (luxx) Benutzerseite


Lesenswert?

hallo,
ich will mir einen Autobatterie wächter bauen.
Das Grundprinzip ist schon klar: Spannungsteiler und dann an den ADC 
(vom ATMega).

ABER: da bekomm ich ja lineare Werte von 0-12 bzw hier dann 5V.

Wie kann ich es machen, dass ich eig nur den Bereich zwischen 10-14V 
messe, damit ich die volle genauigkeit habe? also im endeffekt zB 0x00 
für 10V bis 0xFF für 14V ?


MFG
luxx

von Power (Gast)


Lesenswert?

Differentiell messen. Spannungsteiler mit drei Widerständen, über dem 
mittleren messen. Spannungsbereich kannst du leicht ausrechnen.

von Zacc (Gast)


Lesenswert?

10V subtrahieren ?

von Otto (Gast)


Lesenswert?

Hallo luxx,

die Einschränkung des Meßbereiches auf
Werte zwischen 10-14V macht m.E. keinen
Sinn.

die Spannung einer Autobatterie kann
durchaus auch Werte kleiner 10 V annehmen
(zum Beispiel beim Starten).

Gruß Otto

von Michele B. (luxx) Benutzerseite


Lesenswert?

also genauer:
- Die spannung sinkt nicht unter 10V da die batterie nicht in einem Auto 
ist.

- 10V (softwaremäßig) subtrahieren bringt ja nix, ich will ja die 
genauigkeit erhöhen.

@ power: wie ghet das genau? hab ich nämlich nocgh nie gehört...

DANKE schonmal!

luxx

von Thorsten (Gast)


Lesenswert?

... die von Power vorgeschlagene Methode geht aber nur, wenn der Atmega 
galvanisch von der Autobatterie getrennt ist (also eine eigene 
Spannungsversorgung, z.B. eine eigene Batterie hat oder über einen 
galvanisch getrennten DC/DC Wandler gespeist wird).
Gruss,
Thorsten

von Power (Gast)


Lesenswert?

Also die differentielle Messung steht im Datenblatt, ist von µC zu µC 
verschieden.
Der Spannungsteiler sieht so aus:

 Ubatt-----|
           |
       R1 | |
          | |
           |
           |----( Umess+ zum µC
           |
       R2 | |
          | |
           |
           |----( Umess- zum µC
           |
       R3 | |
          | |
           |
           |
   GND-----|

wie der Spannungsteiler zu dimensionieren ist musst du selbst 
ausrechnen. Steht in jedem Tabellenbuch.

von Power (Gast)


Lesenswert?

@Thorsten:
Nee, geht immer wenn der µC differentiell messen kann.

von Michele B. (luxx) Benutzerseite


Lesenswert?

was pasiiert wenn sie nicht galvansich getrennt sind? (wäre in meinem 
fall so)

luxx

von Thorsten (Gast)


Lesenswert?

Naja, wenn die galvanisch nicht getrennt sind überschreitest Du die 
Limiten für die Spannung am Pin. Z.B. hat der Atmega Schutzdioden nach 
GND und VCC an den Eingängen. Werden ca. VCC+0.5V überschritten, werden 
diese leitend und je nach Ausgangswiderstand der Quelle fliesst dann ein 
mehr oder weniger grosser Strom. Ist die Ausgansimpedanz hoch und der 
Strom klein wird nur Deine Messung falsch, ist der Strom gross wird der 
Mega heiss und geht kaputt.
Du musst daher bei galvanisch nicht getrennter Messung erstmal die 
Spannung in einen Bereich bringen, den der Controller abkann (mit einem 
Opamp als Summierverstärker). In diesem Bereich kannst Du dann, wie von 
Power beschrieben, differentiell die Spannung messen.

Gruss,
Thorsten

von Power (Gast)


Lesenswert?

>Du musst daher bei galvanisch nicht getrennter Messung erstmal die Spannung in 
einen Bereich bringen, den der Controller abkann

Dem ist nicht so! Der AVR ist da mit einigen 100kOhm geschützt. Ich 
betreibe ein Relais-Kontakt-Prüfgerät an 24V und habe noch keinerlei 
Ausfälle zu beklagen. + vom ADC liegt an +24V!

von Thorsten (Gast)


Lesenswert?

@Power
Lies mal das Datenblatt unter Absolute Maximum Ratings (für Mega32 z.B. 
auf Seite 285):

Voltage on any Pin except RESET
with respect to Ground ................................-0.5V to VCC+0.5V

Ist die Quelle entsprechend hochohmig, fliesst aber kaum Strom und der 
Mega kann das schon ab. Dann noch präzise Messungen machen ist aber 
nicht drin.

Gruss,
Thorsten

von Power (Gast)


Lesenswert?

@Thorsten:
Das ist der Unterschied zwischen Theoretiker und Praktiker.
Mein Gerät läuft seit einem Jahr nachgemessenermaßen genau!

Einfach mal probieren, die paar € die ein kaputter µC kostet sind's 
wert! ;-)

von Michael U. (Gast)


Lesenswert?

Hallo,

mal so provokatorisch gefragt: bei max. 14V ist die Auflösung des ADC 
rund 14mV pro Schritt.

Wofür brauche ich bei einer Autobatterie einen aktuellen Spannungswert 
mit dieser Genauigkeit?

Kommt mir etwas wie "so genau wie möglich" statt "so geanu wie nötig" 
vor. ;)

Gruß aus berlin
Michael

von Thorsten (Gast)


Lesenswert?

@Power: Poste mal Deine Schaltung, so rein interessehalber ;-)
Habe aber eigentlich nicht vor es auszuprobieren: Ich halte mich lieber 
an die Specs und nehme einen 20cent Opamp statt einen XEuro AVR zu 
zerschiessen.

Gruss,
Thorsten

von Otto (Gast)


Lesenswert?

Hallo,

> Kommt mir etwas wie "so genau wie möglich" statt
> "so genau wie nötig" vor.

das sehe ich genauso - bei einem Bereich von 0 - 25V
beträgt die Auflösung 100 mV bei einem 8-bit Wandler
und das ist MEHR als ausreichend.

Gruß Otto

von Power (Gast)


Lesenswert?

Bischen heavy zu posten, geht bei EAGLE über 4 Seiten. Aber glaub's 
ruhig, er kann das ab!

von Hannes L. (hannes)


Lesenswert?

Ich messe die Spannung eines Blei-Gel-Akkus, der über 78L05 einen 
Mega8535 versorgt, mit einem Spannungsteiler aus drei gleichen 
Widerständen. Am ADC liegt der Spannungsabfall des unteren Widerstandes, 
also max 5V bei 15V am Akku. Die Ausleseroutine ist sehr simpel und wird 
alle paarhundert Millisekunden (eine Sekunde reicht völlig) aufgerufen, 
wobei der ADC im Free-Run-Mode gemütlich vor sich hin klappert:
1
 in r0,adch               ;ADC (linksbündig, also nur 8 Bit) einlesen
2
 ldi wl,151               ;Skalierungsfaktor in r24
3
 mul r0,wl                ;skalieren auf Zehntel Volt
4
 locate 6,5               ;Ausgabeposition auf LCD 8x24
5
 print16 null,r1,1,using  ;formatierte Ausgabe mit 1 Stelle nach Komma
6
 print 'V',1              ;Einheitszeichen ausgeben

Als ADC-Referenz dient dabei die AVR-Betriebsspannung, die vom 78L05 
erzeugt wird. Auf eine Mittelwertbildung wurde erstmal verzichtet, wird 
vermutlich nachgerüstet, wenn auch eine zweite, per StepUp-Wandler 
erzeugte Spannung (um die 30V) gemessen und angezeigt werden muss.

Im aktuellen Fall wird die Spannung nur am LCD angezeigt. Sie kann aber 
bei Bedarf ohne Weiteres auch als Istwert für eine Regelung oder zum 
Auslösen von Ereignissen (Ladegerät einschalten, Lastabwurf bei 
Tiefentladung) verwendet werden.

...

von Zacc (Gast)


Lesenswert?

Die Subtraktion -10V ist naterlich hardwaremaessig gemeint.

von Hannes L. (hannes)


Lesenswert?

Wenn es unbedingt Subtraktion von 10V sein muss, dann geht das mit 
Operationsverstärker (Subtrahierer) oder einfach mit einer Z.Diode.
Ersteres braucht Rail2rail-OPV oder negative Hilfsspannung, letzteres 
ist nicht allzu genau, wenn man keine negative Spannung für eine 
Konstantstromquelle bereitstellen will.

Allerdings ist diese hohe Auflösung (nicht "Genauigkeit") vermutlich gar 
nicht erforderlich. Ich werfe in meinem obigen Beispiel 2/3 des 
Messbereiches weg, verzichte bewusst auf zwei Bit ADC-Auflösung und 
werfe noch das untere Byte des errechneten Ergebnisses weg und habe 
immernoch genügend "Genauigkeit".  ;-)

...

von Der Dude (Gast)


Lesenswert?

Jetzt mal ein vernünftiger Vorschlag:

Einfacher Spannungsteiler: R1 4k7 an +, R2 10k an Masse. Der 
Spannungsabfall an R1 über einen Differenzverstärker auf 0..5V 
übersetzt. Brauchst halt einen Rail-to-Rail. Negative Spannung kannst Du 
Dir schenken.

Damit steuerst Du dann den Mega an.

Oder:

Wenn's geht, legst Du die Masse vom Mega auf +10V. Dann kannst Du direkt 
die +UBatt messen, die wird ja kaum über 15V gehen.


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.