Forum: Mikrocontroller und Digitale Elektronik ADC-Wandler MCP3208 instabile Messung


von Ingolf S. (bootsmann66)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein Problem mit dem MCP3208 am ArduinoMega 2560.
Die Beschaltung des MCP3208 ist in der Zeichnung zu sehen.
Ich kann auch Werte über Kanal 0 einlesen, leider schwanken die aber 
recht stark.
Die Referenzspannung beträgt 5,04V wie auch die Versorungsspannung die 
vom Arduino Bord kommt.

Der Arduino wird mit 9V aus einem stabilisierten Netzteil versorgt.

Die gemessenen Werte schwanken um ca. 0,1-0,3V bei einer Spannung von 
4,3V was dann hochgerechnet auf 15V doch schon recht große Meßfehler 
ergibt.

Ein angeschlossenes digitales Multimeter zeigt eine konstante Spannung 
bis auf die 2. Kommastelle an.

Was kann ich tun um die Messwerte zu stabilisieren?

Gruß Ingolf

von Vlad T. (vlad_tepesch)


Lesenswert?

Kapitel 4.2, 63, 6.4, 6.5 des Datenblatts lesen.

Spannungseferenz von Spannungsversorgung trennen.
Spannungsversorgung der ICs mit Kerkos versehen.
Spannungsversorgung an sich mit Elkos puffern

von Ingolf S. (bootsmann66)


Lesenswert?

Vlad Tepesch schrieb:
> Kapitel 4.2, 63, 6.4, 6.5 des Datenblatts lesen.
>
> Spannungseferenz von Spannungsversorgung trennen.
> Spannungsversorgung der ICs mit Kerkos versehen.
> Spannungsversorgung an sich mit Elkos puffern

Danke für den Hinweis.
Welche Werte würdest du empfehlen für die Kondensatoren?
Im Datenblatt ist ja einmal ein 10µF und ein 1µF Kondensator parallel 
zur Spannungsversorgung eingezeichnet. Sollen beide ELkos sein oder der 
1µF als Keramik?

Die Trennung der Referenzspannung von der Versorgungsspannung werde ich 
als nächstes testen. Ich muß mir aber erst den MCP1541 besorgen.

Gruß Ingolf

von Ingolf S. (bootsmann66)


Lesenswert?

Also, das mit dem Kondensatoren hat ja schon mal sehr gut funktioniert.
Die Schwankungen liegen jetzt nur noch im Bereich von maximal 0,02V nach 
Umrechnung auf 15V Meßbereich. Das stimmt so in etwa mit meinem 
Multimeter überein.

Danke und Gruß
Ingolf

von Vlad T. (vlad_tepesch)


Lesenswert?

ich glaube auch nicht, dass ein der extra IC benötigt wird.

Das die letzteb 1-2 Bits Zappeln ist normal.
Deswegen benutzt man die meist nicht, oder muss einen Messwert aus 
mehreren Einzelmessungen interpolieren.
Also Mittelwert aus n eintelmessungen.
wo bei das ja auch gleitend sein kann, wenn du nicht 5 n mal für jede 
Messung messen kannst:
Du also jeweils die n aktuelsten Messungen aufhebst und und bildest aus 
diesen den Mittelwert.
Gibt auch noch andere Methode (zB Kalman FilteR), aber für eine Simple 
Spannungsüberwachung sollte das das effizienteste und einfachste Sein.

von Ingolf S. (bootsmann66)


Lesenswert?

Hallo,

das mit dem Mittelwert hatte ich auch schon versucht. Gefiel mir aber 
nicht wirklich.

Jetzt runde ich den Wert derart, daß die Spannung in 0,05V Schritten 
angezeigt wird. Damit habe ich keine Schwankungen mehr und ich denke die 
Genauigkeit reicht aus.

Obwohl ich gerne mal einen "Kalman Filter" probieren würde. Allerdings 
reichen da meine Kentnisse nicht aus und die Code-Beispiele die man so 
findet beziehen sich immer auf Navigation mit mehreren Werten.

Ich weiß nicht wie ich das dann auf mein doch recht simples Problem, mit 
einem Wert ändern soll. Falls jemand mal ein Code-Beispiel für so einen 
einfachen Kalman FilteR hat wäre ich sehr dankbar.

Gruß Ingolf

von Vlad T. (vlad_tepesch)


Angehängte Dateien:

Lesenswert?

Ingolf S. schrieb:
> Obwohl ich gerne mal einen "Kalman Filter" probieren würde. Allerdings
> reichen da meine Kentnisse nicht aus und die Code-Beispiele die man so
> findet beziehen sich immer auf Navigation mit mehreren Werten.

Das Problem am Kalman ist immer, dass die Parameterisierung nicht so 
einfach ist.

Ich hab vor ein paar Wochen erst einen kleinen Kalman implementiert.
Allerdings recht unflexibel, dafür einfach in der Anwendung und relativ 
effizient, da er auf generische Matrizen verzichtet.

Input ist ein Messwert + Varianz. Intern rechnet er mit der 1. 
Ableitung.
Will man einen Filter 2. Ordnung, ist das leider nicht so einfach mit 
dieser Klasse machbar.

In den Diagramm sieht man am Ende, wo die 2. Ableitung != wird, dass der 
Filter da nicht so richtig hinterherkommt.

in der 2. Datei sieht man die absoluten Fehler von kalman, Mittelwert 
über 9 messungen und median über 9 messungen.

In den Fällen, in denen das Kalman-Modell zu den simulierten Werten 
passt, ist er immer besser.

von Ingolf S. (bootsmann66)


Lesenswert?

Danke für den Code. Das werde ich mir mal in Ruhe ansehen und testen.

Mal sehen was dabei raus kommt.

Danke und Gruß Ingolf

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.