Forum: Mikrocontroller und Digitale Elektronik MCP3208 gibt ungenaue Werte aus


von Vile (Gast)


Lesenswert?

Hallo allerseits,

habe zum ersten mal mit dem MCP3208 zusammen mit einem Arduino Uno 
(ATMega328) gearbeitet und musste feststellen, dass einige Spannungen 
leider falsch angezeigt werden.
Es soll ein 8S-LiFePo4 gemessen werden; da aber am Eingang des MCP3208 
max. 5V anliegen dürfen müssen alle Balancer-Anschlüsse ab 2 Zellen über 
Spannungsteiler gemessen werden.

Dies geschieht bei 2S (6,6V) über 2 10kOhm Widerstände mit Abgriff 
dazwischen. Somit ist die Gesamtspannung die gemessene multipliziert mit 
2 (Widerstandsverhältnis).
Bei 3S (9,9V) sind es 3 10kOhm Widerstände mit Multiplikator 3 usw.
Beim Nachmessen der Widerstände (0,1%) gab es geringe Abweicheungen 
welche in die Rechnung im µC miteinbezogen sind.

Die Spannungen der Zellen 6 und 8 sind bei der Anzeige über den Serial 
Monitor etwa 0,1V zu hoch!

Habe dies mit einem UNI-T UT61C gemessen, welcher in diesem Bereich drei 
Nachkommastellen mit einer Genauigkeit von unter 1% ausgibt. Die 
gleichen Spannungen habe ich auch mit dem Ladegerät iCharger 208B 
ermittelt.

Habe den MCP3208 schon gegen einen anderen ausgetauscht: gleiches 
Fehlerbild.

Quellcode ist von hier: http://arduino.cc/playground/Code/MCP3208

Die gemessene Spannung wird mit VRef (=5,063V gemessen) multipliziert, 
durch 4096 geteilt und anschließend mit den gemesenen 
Widerstandsverhältnissen multipliziert.

Trotzdem kriege ich einfach nur teilweise genauen Werte!

Was mache ich falsch?
Ich hoffe jemand hat Ahnung und kann mit einen Tipp geben. Und danke 
fürs lesen ;)

von Johannes V. (j-v)


Lesenswert?

Hallo,

was für Widerstände verwendest Du bei deinem Spannungsteiler. Die 
Toleranzen der selben können dir die Verschiebung verursachen. Miss 
diese vielleicht mal nach.

Johannes

von Vile (Gast)


Lesenswert?

Die Toleranz beträgt 0,1%. Habe nachgemessen und mit den gemessenen 
Widerständen gerechnet, trotzdem will es einfach nicht :(

von Johannes V. (j-v)


Lesenswert?

Hallo nochmal,

sind die Massen korrekt miteinander verbunden? Vielleicht machst Du mal 
ne Skizze. Ich habe den MCP3208 schon ohne Probleme eingesetzt.

Johannes

von Vile (Gast)


Lesenswert?

Ich habe alles so angeschlossen wie es auf der Arduinoseite steht:
An Pin 14 (AGND) liegt die Masse des LiFePo4 und auch DGND, also Masse 
vom Arduino. Ob AGND und DGND verbunden sind macht keinen Unterschied.

Habe aber festgestellt dass sobald der Akku angeschlossen ist, die 
ON-LED auf dem Arduino-Board leuchtet (ohne USB-Kabel!), jedoch 
schwächer als mit angeschlossenem USB-Kabel. Woher kommt das bzw. hat 
das irgendeine Einwirkung?

Danke für deine schnellen Antworten!
Vile

von Johannes V. (j-v)


Lesenswert?

Ja, jetzt wo du es sagst, das hatte ich auch mal, dass sich der 
Mikrocontroller über einen angeschlossenen AD-Wandler versorgt hat.
Da fließt dann die Versorgungsspannung über einen Ausgang des 
AD-Wandlers
in den MC. Habe ich damals auch nicht genau verstanden. Das hatte aber 
eine Potentialverschiebung zur Folge.

Nichtsdesto trotz. Mache bitte eine Skizze als Schaltplan.

Johannes

von Vile (Gast)


Angehängte Dateien:

Lesenswert?

So, hier mal die Schaltung. Ist zwar nicht ganz so schön, aber es ist 
erkennbar wie es angeschlossen ist (hoffentlich habe ich mit dem 
Dateiformat alles richtig gemacht, Scans sollen ja jpg sein...).

Die Verbindung in schwarz ist die etwas fragliche, ziwschen AGND und 
DGND.
Vile

von meckerziege (Gast)


Lesenswert?

Arduino mal wieder...

Sicher dass die 10KOhm im Spannungsteiler nicht zu hoch sind? Was sagt 
das Datenblatt dazu`?

von Vile (Gast)


Lesenswert?

Hab leider nichts dazu gefunden, also welcher Strom über die 
Messeingänge geht.
Habe es vorher mit 47k versucht und da wars das gleiche. Dachte dann 
zuerst es läge daran dass die Widerstände zu hoch sind, aber bei 10k 
ists nicht anders...

Wenn schon die Stromaufnahme (also über VDD) 150µA beträgt, denke ich 
mal dass die Messströme nochmal deutlich geringer sind.

Sollte ich das mal mit 4,7k oder so ausprobieren? Möchte natürlich auch 
nicht dass der Strom über die Spannungsteiler zu groß wird, da das auch 
den Akku - zwar nur etwas, aber trotzdem - leert.

Vile

von Vile (Gast)


Lesenswert?

So, habe nun (nachdem ich nach meinen Prüfungen wieder Zeit habe...) das 
Problem gelöst.
Einerseits variiert je nach Board (UNO, Nano,...), Betriebsart (USB, 
12V) und restliche Verschaltung die "5V" Spannung. Diese also genau 
messen und damit rechnen lassen, bei mir beträgt sie nun 5,047V.

Außerdem machte der Spannungsteiler Schwierigkeiten: Das Messen der 
Widerstände war weniger erfolgreich, aber den genauen Fator, mit welchem 
die gemessenen Werte multipliziert werden habe ich errechnet.

Spannung auf den ADC geben, mit DMM messen und auf einem LCD oder serial 
Monitor ausgeben, durcheinander teilen und fertig.

Nun passen auch die zweite und dritte Nachkommastelle ;)
Danke für euer Engagement!

Vile

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.