Forum: Mikrocontroller und Digitale Elektronik scheinbar beliebige Schnwankung der ADC-Werte


von Christian T. (buwuwu)


Lesenswert?

Hallo,

ich habe ein Problem beim Auslesen einer Spannung mit einem MCP3008. Ich 
habe irgendwo einen Fehler gemacht, weiß aber nicht so richtig wo.

Ausgangsproblem:
Ich möchte die Spannung einer 12V Batterie überwachen. Dazu nutze ich 
einen Raspberry Pi. Die Spannung nehme ich mit dem MCP3008 ab. Zuvor 
teile ich die Spannung noch durch einen Spannungsteiler mit zwei 
Ohmschen Widerständen.

Problem:
Mein Spannungsteiler funktioniert scheinbar wie er soll. Ich habe die 
Spannungen mit einem Multimeter gemessen, dabei erschien mir alles iO. 
Das Problem ist allerdings, wenn ich die Spannung mit dem ADC auslese, 
schwanken die Werte scheinbar beliebig zwischen 0 und 1023.

Ich habe gelesen, dass dies durch Spannungschwankungen entstehen kann. 
allerdings liefern mir andere Sensoren, die ich ebenfalls an den MCP 
angeschlossen habe immer konstante Werte. Leider habe ich nur das 
Multimeter als Messinstrument zur Verfügung.

Der MCP wird über die 5V-Schiene des RPi versorgt, auch die angelegte 
Referenzspannung kommt aus der 5V-Schiene. Der RPi wird über ein 
Netzteil mit Strom versorgt. Ich habe also keine wirklich vernünftige 
Referenzspannung, aber kann das zu derartigen Schwankungen führen? Zumal 
die anderen Sensoren konstante Werte liefern.

Den Spannungsteiler habe ich analog zu 
http://www.forum-raspberrypi.de/Thread-12v-batterieueberwachung?pid=50017#pid50017 
aufgebaut und auf die 5V Referenzspannung angepasst. Ich habe jetzt 
einen 34kOhm Vorwiderstand und einen 10KOhm Teilerwiderstand verbaut.

Könnt ihr mir sagen was ich falsch mache? Bzw. worauf ich achten sollte?

Ich arbeite mich gerade erst in die ganze Thematik der Elektronik ein 
und wäre daher sehr dankbar für Tipps und Hinweise.

von Udo S. (urschmitt)


Lesenswert?

Sicher, daß du nicht einen nicht angeschlossenen Kanal ausliest?

von Christian T. (buwuwu)


Lesenswert?

Ja ich bin mir da ziemlich sicher, ich habe auch verschiedene Kanäle 
ausprobiert. Hier ein paar Zeilen aus der Konsolenausgabe:

>>> mcp3008.readadc(0)
896
,>>> mcp3008.readadc(0)
860
>>> mcp3008.readadc(0)
843
>>> mcp3008.readadc(0)
0
>>> mcp3008.readadc(0)
0
>>> mcp3008.readadc(0)
0
>>> mcp3008.readadc(0)
0
>>> mcp3008.readadc(0)
0
>>> mcp3008.readadc(0)
829
>>> mcp3008.readadc(0)
840
>>> mcp3008.readadc(0)
1023
>>> mcp3008.readadc(0)
902


Kann es sein, dass der MCP nicht zurecht komme, wenn ich zu schnell nach 
einander den Wertabfrage?

von Thomas (Gast)


Lesenswert?

Christian Toth schrieb:
> Könnt ihr mir sagen was ich falsch mache? Bzw. worauf ich achten sollte?

Hast du die Masse der Batterie mit der "anderen" Masse von deinem 
raspberry, adc etc. verbunden? Wenn nicht ist das der Fehler, dir 
driftet der Bezug einfach weg.

von Christian T. (buwuwu)


Lesenswert?

Thomas schrieb:
> Christian Toth schrieb:
>> Könnt ihr mir sagen was ich falsch mache? Bzw. worauf ich achten sollte?
>
> Hast du die Masse der Batterie mit der "anderen" Masse von deinem
> raspberry, adc etc. verbunden? Wenn nicht ist das der Fehler, dir
> driftet der Bezug einfach weg.

Vielen Dank!! Das war der Fehler. Ich hatte genau diese Verbindung bzw. 
Leitung nicht.
Jetzt schwanken die Werte nur noch um max. eine Stufe.

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.