Forum: Mikrocontroller und Digitale Elektronik ADC - Genauigkeit (Abstufung)


von blank (Gast)


Lesenswert?

Hallo zusammen,

ich arbeite derzeit an einem Projekt (Atmgea 168P), an dem auch die 
Differenz von 2 Messwerten ermittelt werden muss.
Kurze Übersicht:

- Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_1

- definierte Zeit warten

- Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_2

- er berechnet daraus die Differenz (Mittelwert2 - Mittelwert1) 
(rechnet physikalisch nicht in den negativen Bereich)

Versuche zeigten, dass es nur teilweise "richtig" funktioniert. Ich habe 
mir die Differenz der beiden Mittelwerte auf einer Anzeige ausgeben 
lassen.
Die Schwankt von 0 - 5 Inkremente :o, trotz 10 Mittelwerte.

Die Spannung wird an einem RC Gleid 50 k und 100 uF abgegriffen 
(Steckbrett, 5 cm Draht zum Port) und der Analogeingang hat zu den PWM 
Ausgängen min. 2 PINs frei.

Gibt es da Abhilfe?

von blank (Gast)


Lesenswert?

also sie schwankt, wenn ich eigentlich auf einem konstanten 
Spannungslevel bleibe. Nicht direkt erwähnt.

von Hmm (Gast)


Lesenswert?

>Gibt es da Abhilfe?

Klar. Miss nicht sondern nimm Konstante. :-)

Mal im Ernst: Du misst in der realen Welt. Da ist nichts konstant.

Es mag sein, das in Deinem konkreten Fall tatsächlich ein 
gleichbleibender Wert zu erwarten ist. Aber da wir keine Details kennen 
und meine Glaskugel gerade auf Windenergie umgestellt wird, kann ich Dir 
keine Hinweise geben.

Also:
1. Was misst Du?
2. Wie misst Du?
3. Was geschieht in dem Zeitabstand zwischen den beiden 
Mittelwertbildungen?
4. Was weicht ab? Jeweils der erste Mittelwert, der zweite, der erste 
und der zweite Mittelwert?
5. Schaltung?

von Viktor N. (Gast)


Lesenswert?

Und mit welcher Abtastrate?

von spess53 (Gast)


Lesenswert?

Hi

>Die Spannung wird an einem RC Gleid 50 k und 100 uF abgegriffen

Nimm besser einen 100n Keramik.

MfG Spess

von Peter II (Gast)


Lesenswert?

blank schrieb:
> Versuche zeigten, dass es nur teilweise "richtig" funktioniert. Ich habe
> mir die Differenz der beiden Mittelwerte auf einer Anzeige ausgeben
> lassen.
> Die Schwankt von 0 - 5 Inkremente :o, trotz 10 Mittelwerte.

kann auch ein software fehler sein, ich habe es selber schon fertig 
gebracht nicht auf der fertig vom ADC zu warten, dann bekommt man auch 
nicht richtiges gemessen.

von blank (Gast)


Lesenswert?

Abtastrate = 8 Mhz Clock und Vorteiler auf 64  = 125 kHz damit er die 10 
Bit Auflösung erreicht, steht im Datenblatt S. 246 (50-200 kHz for max 
resolution).

1. was misst Du?
- der Aufbau soll einen Spannungsverlauf von einem Kondensator messen 
(der Kondensator dient nur als eine bestimmte Rampe zum Testen, später 
dann ein Tacho) Es soll praktisch die "Steigung" der Kurve bestimmt 
werden.
//einen Mittelwert an einer x beliebigen Stelle der Ladekurve einlesen.
//den Timer starten
//weitere Mittelwerte einlesen, BIS die beiden Mittelwerte eine 
festgelegte Differenz ergeben, z.B 5.
//Timer stoppen und Steigung berechnen.

2. wie
Generell funktioniert das auch, nur gibt es in unregelmäßigen 
Zeitabständen Aussetzer, die praktisch nur durch eine falsch ermittelte 
Differenz zustande kommen können. Deswegen habe ich mir die Differenz 
auf der Anzeige ausgegeben. Ich habe den Kondensator 100uF über 50 kOhm 
aufgeladen und dann diese (eigentlich konstante) Spannung an den 
Analogpin gelegt. Obwohl dann die Differenz 0 sein sollte, zeigt er 0-5 
Inkremente an.

3.
Später soll es wie im Unterpunkt 1 beschrieben ablaufen. für diesen Test 
jedoch gibt es sozusagen keine Zeit dazwischen. Sobald er den ersten 
Mittelwert gebildet hat, bildet er direkt danach den 2ten.

4.
gute Idee, überprüfe ich gleich.

5.
der Teil basiert bisher nur auf dem RC Glied. also die 50kOhm an 5 Volt, 
dann der 100uF an 0V und zwischendrin wird die Spannung abgegriffen.

von Hmm (Gast)


Lesenswert?

>4.
>gute Idee, überprüfe ich gleich.

Das verstehe ich nun überhaupt nicht.
Du hast doch in Deinem ersten Post schon von einer Abweichung 
geschrieben. Dann müsstest Du doch wissen, was wovon abweicht?

von Harald W. (wilhelms)


Lesenswert?

blank schrieb:

> also sie schwankt, wenn ich eigentlich auf einem konstanten
> Spannungslevel bleibe.

Siehe 4.Gesetz:
http://www.helpar.de/mcmurphy1.html?file=mcmurphy.html
Gruss
Harald

von Harald W. (wilhelms)


Lesenswert?

blank schrieb:

> Die Schwankt von 0 - 5 Inkremente :o, trotz 10 Mittelwerte.

Durch Mittelwertbildung steigt zwar die Auflösung, nicht aber
die Genauigkeit. Eine einfache Faustformel für ADC lautet:
die letzten 1...2 Bits sind immer ungenau.
Gruss
Harald

von Viktor N. (Gast)


Lesenswert?

125kSample sind eh etwas viel. Probier's mal mit 15ksample

von Esc (Gast)


Lesenswert?

blank schrieb:
> - Der AD Wandler ließt 10 Werte ein und bildet den Mittelwert_2

Mittelwert über 10 ist für einen µC eine dumme Sache. Nimm besser 16 
Werte, dann wird die Mittelwertbildung zu einer einfache Schieberei.

Wenn statistisch alles mit rechten Dingen zugeht, solltest du bei 10 
Werten deine Schwankungsbreite um einen Faktor 3 verringern, bei 16 um 
einen Faktor 4. Hast du das mal kontrolliert? Die Differenzbildung kann 
in Bezug auf Fehlerforpflanzung eine heikle Sache sein - hängt halt 
davon ab, wie die Zahlen liegen.

Wildes Rumgeeier evtl. schon bei den Eingangsdaten würde auf ein Soft- 
oder Hardware Problem hindeuten. Aber wer weiß schon (Hint), wie du das 
machst und wie deine Signale aussehen.

von Peter D. (peda)


Lesenswert?


von spess53 (Gast)


Lesenswert?

Hi

>125kSample sind eh etwas viel. Probier's mal mit 15ksample

125kHz ADC Takt. Das macht etwa 9ks/s. Passt schon.

MfG Spess

von blank (Gast)


Lesenswert?

als ich 16 Werte verwendet hab ist die Sache nochmal merklich besser 
geworden. Vielen Dank für alle Mitteilungen.
Komisch nur, dass selbst bei 128 Werten, die zu einem Mittelwert 
verrechnet werden immernoch eine Differenz von bis zu 3 bleibt. Obwohl 
die Spannung eigentlich konstant sein müsste, -> Kondensator ist geladen 
und liegt ja über die 50kOhm an 5Volt.

von Εrnst B. (ernst)


Lesenswert?

blank schrieb:
> liegt ja über die 50kOhm an 5Volt.

Warum sollte das konstant sein? bzw: Warum sollten die 5V konstant sein?

=> Verbinde den Eingang mit dem Aref-Pin, und versuchs so.

Überhaupt Aref: Wie ist der bei dir beschaltet?

von Falk B. (falk)


Lesenswert?

Wahrscheinlich zappelt deine Versorgungsspannung. Oder es fehlen 
Abblockkondensatoren. Der ADC im AVR ist schon relativ ruhig, mehr als 
1-2 LSB wackeln da nicht, auch ohne Mittelwertbildung.

von Thomas L. (thomas_hx)


Lesenswert?

Welche Referenzspannung benutzt Du überhaupt?
Versorgungsspannung?
  Nicht gut, da Rippel den Messwert verfälschen können.
Interne Referenz?
  Besser, aber geringere Spannung am ADC (1.1 V)

von Ralph (Gast)


Lesenswert?

Also der Hauptgrund für "wackelnde" ADC Werte ist die Elektronik.

Die gesamte Beschaltung so hinzubekommen, das das Rauschen am ADC 
kleiner 2 Bleibt ist schon eine Herausforderung.
Dazu zählt:
* die Spannungsversorgung von µC und restlicher Beschaltung
* Filterung von Spannungsspitzen
* sauber Masseführung
* gute ADC Referenz
.
.
.
.

Solange das nicht passt, ist ein Rauschen von 2-3 Bit vollkommen normal 
und nichts ungewöhnliches.
==> Lass den ADC als 10 Bit laufen und sieh dir von den Ergebnissen nur 
die höheren 8 Bit an. Verlierst etwas an Auflösung, das Signal sollte 
aber stabiler werden und vor allem näher am real erwarteten Wert ( des 
RC Gliedes) liegen.


Für solche Messwertaufnahmen könnte eventuell ein PT1 Filter besser 
geeignet sein als eine Mittelwertberechnung. Vielleicht mal drüber 
nachdenken.

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.