www.mikrocontroller.net

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


Autor: Michele B.. (luxx) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Power (Gast)
Datum:

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

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
10V subtrahieren ?

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michele B.. (luxx) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Thorsten:
Nee, geht immer wenn der µC differentiell messen kann.

Autor: Michele B.. (luxx) Benutzerseite
Datum:

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

luxx

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Power (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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! ;-)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Power (Gast)
Datum:

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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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:
 in r0,adch               ;ADC (linksbündig, also nur 8 Bit) einlesen
 ldi wl,151               ;Skalierungsfaktor in r24
 mul r0,wl                ;skalieren auf Zehntel Volt
 locate 6,5               ;Ausgabeposition auf LCD 8x24
 print16 null,r1,1,using  ;formatierte Ausgabe mit 1 Stelle nach Komma
 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.

...

Autor: Zacc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Subtraktion -10V ist naterlich hardwaremaessig gemeint.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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".  ;-)

...

Autor: Der Dude (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.


Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.