www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Noise Canceler


Autor: juergen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich bin ganz neu in die Programmierung von µC eingestiegen.
Als Einstiegsprojekt habe ich schon mal eine Uhr zum laufen. Zeit,
Datum werden auf einem LCD-Display angezeigt.
Nun geht es um die Benutzung der ADC vom ATmega8. Dazu mal
grundsätzlich:
Sollte der µC besser während der Messung in den Sleepmode versetzt
werden oder sind die Messungen auch so brauchbar?
Ich würde dann sagen wir mal 5 Werte lesen, verwerfe den höchsten und
niedrigsten, bilde dann den Mittelwert aus den restlichen dreien. Wäre
das ok? Ich könnte auch den vorherigen gemessenen Wert mit einbeziehen.

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum willst du den höchsten und niedrigsten verwerfen?

Autor: juergen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann wäre theoretisch schon mal ein grober Ausreißer nach oben oder
unten bei der Messung ausgemerzt und wird nicht in die
Mittelwertbildung einbezogen. Na ja, war halt eine Idee.

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du solltest den Prozessor in den sleep mode setzen. Das mit dem höchsten
und niedrigsten verwerfen ist auch eine gute Idee. Mach beides zusammen.
Ich habe bei mir mal mit dem Oszi nachgemessen. Ohne sleep mode war bei
meiner Schaltung das Rauschen am ADC Versorgungspin nach dem Tiefpass
aus Spule und Kondensator (siehe Datenblatt) sogar größer als vor dem
Tiefpass, direkt am 7805.

Autor: ,,,, (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dann wäre theoretisch schon mal ein grober Ausreißer nach
> oben oder [...]

Dazu müsstest du allerdings erst wissen, ob es wirklich ein "grober
Ausreißer" ist. Wenn der höchste bzw. niedrigste Wert relativ dicht
beim Mittelwert liegt, wovon i. d. R. auszugehen ist, bringt dir das
leider nichts. 5 Werte lesen und dann MW bilden, ist schon ok.
Ansonsten bin ich auch gespannt, was über den "Noise Canceler" noch
kommt. Hab den selbst noch nie benutzt.

Autor: Bri (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das mit den Ausreißern rauslassen ist eine gute Idee. Ein Medianfilter
funktioniert ähnlich und wird als Rauschfilter verwendet. Das Problem
beim Mittelwert ist, dass ein Ausreißer großen Einfluss auf den
Mittelwert hat, wenn er sehr abweicht, weil ja sein Wert direkt in die
Berechnung eingeht. Bei einem Medianfilter fällt er einfach raus und
hat keinen Einfluss. Deshalb ist es besser, den größten und kleinsten
wegzulassen, auch wenn man nicht weiß, wie dicht die am echten Wert
liegen. Haben wir im Physikpraktikum im übrigen auch so gemacht.

Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den Noise Canceler muss man nicht unbedingt verwenden, ich habe das
noch nie gemacht.
Viel wichtiger ist ein ordentlicher Aufbau der Schaltung, also immer
schön 100nF dran, und direkt am ADC Pin 1-10nF so kurz wie möglich mit
AGND verbinden.
Dann noch einen kleinen Filter nach dem Verfahren:
ADC_WERT=ADC_WERT-ADC_WERT/8+ADC;
So kann man problemlos >9bits verwenden, und muss nichts wegwerfen.

Autor: Bernhard S. (bernhard)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Analog-GND-PIN sollte möglichst "stromlos" sein, sonst hat man bei
einem schlechten Platinen-Layout ein sehr seltsames Offset.

Es empfielt sich auch, mit einer möglichst hohen AREF zu arbeiten, denn
unter 1V- AREF treten auch seltsame ADC-Effekte auf.

Wärend der Messung sollten keine "hohen" Ströme (z.B. für LEDs) durch
den µC gegen GND gleitet werden.


Bernhard

Autor: Tubie (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe das bisher immer so gemacht - also ohne noise canceler:

16 Werte einlesen, diese auf ein Registerpaar draufaddiert und
anschließend das ganze doppelregister 4x nach rechts schieben (/16) mit
dieser methode habe ich sehr gute und Stabile Ergebnisse erziehlt.

Gruß,
Tubie

Autor: TravelRec. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei einem guten Layout, einer niedrigen Quellimpedanz an den
ADC-Eingängen und dem altbewährten L/C-Filter am ADC-Versorgungspin ist
auch bei 10-bit Auflösung noch mit sehr genauen Ergebnissen zu rechnen.
Meines Erachtens und meiner Erfahrung nach bringt eine ordentliche
Schaltung weit mehr als die Noise-Reduction-Funktion, die lediglich den
Prozessor ausbremst.

Autor: juergen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja super,
dann werde ich mal ohne Noise Canceler starten. Ich denke mal, das
sollte aurreichen. Den µC immer wieder schlafen zu legen sah für mich
nicht so sympatisch aus. Hochgenau muß die Messung nun nicht werden.
Also LED's abschalten, Kommunikation zum LCD-Display sperren (sofern
das überhaupt nötig ist, mal schauen), möglichst keine Pegeländerung an
den E/A Ports während der Messung. L/C-Filter hatte ich schon
vorgesehen.

Gruß
Jürgen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.