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?
also sie schwankt, wenn ich eigentlich auf einem konstanten Spannungslevel bleibe. Nicht direkt erwähnt.
>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?
Hi
>Die Spannung wird an einem RC Gleid 50 k und 100 uF abgegriffen
Nimm besser einen 100n Keramik.
MfG Spess
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.
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.
>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?
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
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
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.
Hi
>125kSample sind eh etwas viel. Probier's mal mit 15ksample
125kHz ADC Takt. Das macht etwa 9ks/s. Passt schon.
MfG Spess
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.
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?
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.
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.