Forum: Digitale Signalverarbeitung / DSP / Machine Learning Wertschwankungen nach AD-Wandlung


von Felix (Gast)


Lesenswert?

Grüß euch,
ich benutze die Pro Unit Mega 128 von C-Control.
und will Spannungswerte per AD-Wandlung abspeichern und mit einem 
Zeitstempel versehen.
Die Spannungswerte kommen von einem Distanzsensor.

Als Referenzspannung für die AD-Wandlung wurden 2,56V gewählt (intern), 
bei 10Bit Auflösung.

Um zu testen, ob die gelieferten Spannungswerte nach der AD-Wandlung 
identisch mit den Spannnungswerten vor der Messung sind, wurde an den 
Sensor ein Voltmeter angeschlossen und der Abstand zum Messobjekt 
konstant gehalten.

Die Werte, die das Voltmeter liefert, sind konstant und schwanken nicht.
Die Werte nach der AD-Wandlung schwanken stark. Es wurde alle 200ms ein 
Messwert aufgenommen.

Digitalwert Zeit/s Spannung/V nach ADW Spannung/V Voltmeter angezeigt
235         0,4             0,5875                          0,619
242         0,6             0,605                           0,619
238         0,8             0,595                           0,619
235         1               0,5875                          0,619
236         1,2             0,59                            0,619
232         1,4             0,58                            0,619
232         1,6             0,58                            0,619
237         1,8             0,5925                          0,619
305         2               0,7625                          0,619
235         2,2             0,5875                          0,619
241         2,4             0,6025                          0,619
239         2,6             0,5975                          0,619
236         2,8             0,59                            0,619
247         3               0,6175                          0,619
234         3,2             0,585                           0,619
242         3,4             0,605                           0,619

Warum kommt es zu diesen Schwankungen nach der AD-Wandlung, obwohl der 
Spannungswert des Sensors NICHT schwankt?

Hier der Auslesecode:
1
word abstand(void)
2
{
3
4
word x;
5
x=0;
6
byte v_ref;
7
v_ref=0xC0;  //referenzspannung
8
byte channel;
9
channel=3;
10
ADC_SetInt(v_ref,channel);  //referenzspannung ist 2,56V->0xC0  Kanal 3 (PF.3)
11
ADC_StartInt();
12
13
x=ADC_ReadInt();       //AD-wert einlesen
14
15
return x;
16
}

Die Funktion abstand() wird alle 200ms aufgerufen.
Die Zeitmessung wird durch eine Interruptfunktion realisiert.

Vielen Danke für eure Antworten!!

von TX (Gast)


Lesenswert?

... und sag nun bitte aber nicht, dass deine Referenzmultimeter ein 20€ 
Baumarktteil ist...!

von Felix (Gast)


Lesenswert?

PeakTech 4390

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Foto vom Aufbau?

Wie hast du den ADC-Eingang beschaltet?

von Felix (Gast)


Lesenswert?

Hi Magnus, Foto kann ich leider erst am Nachmittag hochladen.

Der AD-Eingang ist direkt mit der Signalleitung des Sensors verbunden.
(Durch Löten)

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Felix schrieb:
> Der AD-Eingang ist direkt mit der Signalleitung des Sensors verbunden.
> (Durch Löten)

Häng mal einen kleinen Kondensator (ca. 1µF) zwischen GND und 
ADC-Eingang.

Wie lang ist die Leitung zwischen µC und Sensor?
Ist die Leitung geschirmt?

von mr. mo (Gast)


Lesenswert?

Felix schrieb:
> Der AD-Eingang ist direkt mit der Signalleitung des Sensors verbunden.
> (Durch Löten)

Wie lang? Genauere Beschreibung der Beschaltung?

von Felix (Gast)


Lesenswert?

Ich greife die Spannung direkt am AD-Eingang ab. Hab auch schon direkt
am Sensor die Spannung gemessen. Zwischen der Messung direkt am Sensor 
und
der Messung direkt am Eingang gibt es keine Unterschiede.

von Felix (Gast)


Lesenswert?

Die Unit befindet sich aufm dem Projektboard 128 von Conrad.
Der Abstandssensor befindet sich auf der freien Fläche des 
Projektboards.
Sensor ist folgender:
http://www.conrad.de/ce/de/product/185364/Distanz-Sensor-GP-2-Y0A-02-YK-Sharp-GP-2-Y0A-02-YK-Messbereiche-Erfassungsbereich-20-150-cm-5-VDC/SHOP_AREA_14741&promotionareaSearchDetail=005

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Felix schrieb:
> Ich greife die Spannung direkt am AD-Eingang ab. Hab auch schon direkt
> am Sensor die Spannung gemessen.

Damit hast du die Fragen

Magnus M. schrieb:
> Wie lang ist die Leitung zwischen µC und Sensor?
> Ist die Leitung geschirmt?

nicht beantwortet.

Felix schrieb:
> Zwischen der Messung direkt am Sensor und der Messung direkt am
> Eingang gibt es keine Unterschiede.

Das Interessiert auch nicht.


Du kannst auch gerne mal das Abtastintervall deines Programmes von 200ms 
auf 1ms verkürzen und dann 20 aufeinanderfolgende Wandlungsergebnisse 
hier posten.

von Felix (Gast)


Lesenswert?

Als Zuleitungen werden die am Sensor befestigten Kabel verwendet.
Die Leitung ist nur isoliert, nicht geschirmt.

Ich soll die Messintervalle auf 1ms oder die Abtastintervalle verkürzen?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Felix schrieb:
> Ich soll die Messintervalle auf 1ms oder die Abtastintervalle verkürzen?

Ist gehüpft wie gesprungen. Lass den µC in 1ms Intervallen messen und 
zeige uns die Wandlungsergebnisse von mindestens 20 aufeinanderfolgenden 
Wandlungen. Es interessieren nur die Wandlungsergebnisse des µCs. Das 
Multimeter interessiert nicht.

Ich tippe jedenfalls auf Netzbrumm.

von Felix (Gast)


Lesenswert?

Der µC kann maximal in 10ms-Intervallen messen, da die Interruptfunktion 
zur Zeitmessung alle 10ms vom internen Timer ausgelöst wird.

Kann höchstens in 100ms fortlaufend messen lassen und die Ergebnisse 
ausgeben lassen. Kommt dann eben auf die Geschwindigkeit der AD-Wandlung 
an, wie viele Werte diese in 100ms bereitstellen kann.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Hast du ein Oszi zur Verfügung?

von Felix (Gast)


Lesenswert?

ja.
Kann ja auch mal als Versorgungsspannung Batterien nehmen. Da kann man 
ja gucken obs am Brummen liegt.

von Felix (Gast)


Lesenswert?

So, Test mit Batterien wurde durchgeführt.
Werte schwanken immer noch mit genau so großer Abweichung.
Muss dazu sagen, dass ich am gleichen Port wie für die Abstandsmessung 
eine Antenne zum Empfangen der Funkuhrzeit angeschlossen habe.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Felix schrieb:
> So, Test mit Batterien wurde durchgeführt.
> Werte schwanken immer noch mit genau so großer Abweichung.

Miss mal mit deinem Multimeter den Wechselspannungsanteil am ADC-Pin.

> Muss dazu sagen, dass ich am gleichen Port wie für die Abstandsmessung
> eine Antenne zum Empfangen der Funkuhrzeit angeschlossen habe.

Dann leg mal deinen Funkuhrempfänger still.

von JojoS (Gast)


Lesenswert?

dann kann man noch überprüfen ob der ADC Teil am µC lt. Datenblatt 
beschaltet ist. Also ob Analog und Digital GND getrennt und über ein 
Filter verbunden sind und ob an ARef ein C nach GND eingebaut ist.

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

...gibts was Neues zu berichten?

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

Im Übrigen sind die Ergebnisse (bis auf den 305er Ausreisser) doch gar 
nicht sooo schlecht...
1
        2    2    2    2    2    2    2    2    2    2    2    2    2    2    3    3    3
2
        3    3    4    4    5    5    6    6    7    7    8    8    9    9    0    0    1
3
        012345678901234567890123456789012345678901234567890123456789012345678901234567890
4
5
235          X                                                                           
6
242                 X                                                                    
7
238             X                                                                        
8
235          X                                                                           
9
236           X                                                                          
10
232       X                                                                              
11
232       X                                                                              
12
237            X                                                                         
13
305                                                                                X     
14
235          X                                                                           
15
241                X                                                                     
16
239              X                                                                       
17
236           X                                                                          
18
247                      X                                                               
19
234         X                                                                            
20
242                 X

von PittyJ (Gast)


Lesenswert?

Ich sehe das Problem nicht.
Vergisst man den 300er Wert, dann sind die Ergebnisse doch gut.
So ein Rauschen habe ich bei vielen AD-Wandlern erlebt. Auch bei sehr 
teuren.
Als Faustformel ignoriese ich 20% der LSBs.
Sprich: bei einem 8 Bit Wandler werden 2 Bit ignoriert. Bei 16 Bit 
werden 4 LSB-Bits ignoriert.
Damit bin ich bislang ganz gut gefahren.

von Norman (Gast)


Lesenswert?

Statt 20% der LSB zu ignorieren, kann man auch eine Mittelung 
(Moving-Average-Filter) um das Rauschen zu filtern.

von Felix (Gast)


Lesenswert?

okay, danke für die antworten.
also ist es eine frage der messdatenauswertung, damit man zu einem 
brauchbaren ergebnis kommt

von Anja (Gast)


Lesenswert?

Felix schrieb:
> also ist es eine frage der messdatenauswertung, damit man zu einem
> brauchbaren ergebnis kommt

Nein, deine Schwankungen sind nicht normal.
Wenn das Gesamtsystem richtig arbeitet sind es nicht mehr als 1-2 counts 
Schwankung.

Felix schrieb:
> Die Spannungswerte kommen von einem Distanzsensor.
Welche Quellimpedanz hat der Sensor?
Ist die Ausgangsspannung absolut oder ratiometrisch zur Versorgung?
Sind an irgendwelchen I/O-Pins Spannungen größer als die Versorgung 
(oder negativ) angelegt?

Gruß Anja

von Anja (Gast)


Lesenswert?

Felix schrieb:
> Der AD-Eingang ist direkt mit der Signalleitung des Sensors verbunden.
> (Durch Löten)

Der Sensor hat einen Open Collector Ausgang.
Du brauchst also je nach NPN oder PNP noch einen pull-up oder pull-down 
Widerstand.

Gruß Anja

von Thomas K. (rlyeh_drifter) Benutzerseite


Lesenswert?

Die Referenz nur einmal einstellen, nicht bei jedem Messvorgang.

von Felix (Gast)


Lesenswert?

Hi
Die Referenzspannung wurde nur einmalig eingestellt.
Am Mikrocontroller sind noch eine Funkuhr und eine SD-Karte 
angeschlossen, welche auf den Controller abgestimmt sind (alles 
C-Control).

Warum brauch ich noch einen Widerstand zwischen Sensor und Anschlußpin?

von Bronco (Gast)


Lesenswert?

Kannst Du eine längere Sample/Hold- und Wandlungszeit einstellen?

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.