-         

Ergebnis 1 bis 9 von 9

Thema: ADC-Wert unter 1V Instabiel

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    19.02.2005
    Beiträge
    34

    ADC-Wert unter 1V Instabiel

    Anzeige

    Guten Tag,

    Ich betreibe an einem Atmega8 einen Entfernungssensor 2D120 von Sharp. Das Signal wandle ich mit dem 10Bit AD-Wandler des µC.
    Der Sensor gibt in etwas 0,1 - 3,2V aus. Also bei meiner angelegten Reff-Spannung von 5V sollte der digitale Wert ca. 20 - 656 sein. Singt die Spannung des Ausgangssignal vom Sensor unter ca. 1V, schwingt der digitale Wert wahllos.

    Wie bekomme ich das ganze stabilisiert? Kann ich den ADC irgendwie träger machen, oder muss mein Ausgangssignal des Sensors noch einmal Verstärken (OPV) und dann über einen Spannungsteiler abfragen?

    Hat jemand von euch eine Idee?

    Gruß Dennis

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    22.06.2009
    Beiträge
    1.266
    Häng doch mal testweise nen kleinen Kondensator (10 - 100nf) zwischen Signal und Masse.

  3. #3
    Moderator Roboter Genie
    Registriert seit
    26.08.2004
    Beiträge
    1.228
    Hi!
    Hast du schon mal probiert statt dem Entfernungssensor ein Poti an den ADC anzuschließen?
    Wenn die Geschichte sowohl mit Poti als auch mit Sensor unter 1V schwingt, dann weißt du, dass es nicht am Sensor liegt.

    Poste am besten zusätzlich noch dein Programm und deinen Schaltplan.

    Gruß
    Basti

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    19.02.2005
    Beiträge
    34
    Schaltplan werde ich mal vorbereiten. Ist aber Nur Atmega8 in der Standartbeschaltung mit 3,6MHz Quarz. AVCC =5V direkt, AREF = 5V über 100nF angeschlossen, GND Masse.
    Der Sensor liegt an ADC0 (pinc0) über einen 100nF angeschlossen.

    Das Programm soll mir nur auf einem Display den digitalenwert anzegen. Zusätzlich noch den Wert vom high und low Byte.

    Code:
    $regfile = "m8def.dat"                                      'AtmelMega8 Deklaration
    $crystal = 3686400                                          'Gibt Taktgeschwindigkeit des Quarzes an
    $baud = 14400                                               'Festlegung der Übertragungsgeschwindigleit UART
    Config Lcd = 16 * 2
     Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
     Config Lcdbus = 4
     Cursor Off
    
    Config Timer0 = Timer , Prescale = 1024
    Enable Timer0
    Timer0 = 0
    
    Config Adc = Single , Prescaler = Auto , Reference = Avcc
    Start Adc
    
    Ddrb = &B00110000
    Ddrc = &B00011100
    Ddrd = &B11111110
    Portb = &B00001111
    
    Declare Sub Warten()
    Declare Sub Wertholen()
    
    Dim Entfernungswertesumme As Word
    Dim Messungen As Byte
    Dim Entfernungswertdigi As Word At $160
    Dim Entfernungswertdigi1 As Byte At $160 Overlay
    Dim Entfernungswertdigi2 As Byte At $161 Overlay
    
    Gosub Wertholen
    
    Cls
    Locate 1 , 1
    Lcd "D:       D1: "
    Locate 2 , 1
    Lcd "D2:"
    
    Do
    Entfernungswertdigi = 0
    Entfernungswertdigi1 = 0
    Entfernungswertdigi2 = 0
    Gosub Wertholen
    Locate 1 , 4
    Lcd Entfernungswertdigi
    Locate 1 , 13
    Lcd Entfernungswertdigi1
    Locate 2 , 5
    Lcd Entfernungswertdigi2
    Waitms 400
     Loop
    End
    
    
    Sub Wertholen()
    Entfernungswertdigi = 0
    Entfernungswertdigi = Getadc(0)
    End Sub
    
    
    Sub Warten()
    Do
    Start Timer0
    Loop Until Tcnt0 >= 169
    Stop Timer0
    Timer0 = 0
    End Sub
    Das Poti liefert das gleich Ergebnis. Mit einem Multimeter und Oszilloscope kann ich erkennen, das die Spannung auch bei 0,1V Ausgabe vom Sensor noch stabiel ist.
    Ist der ADC pin offen , zeigt er gleiches Verhalten wie bei den kleinen Spannungen...

  5. #5
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Deine Spannung wird nicht stabil oder störungsfrei sein.
    AVCC wie im Datenblatt vorgeschlagen beschalten. AREF nicht mit AVCC verbinden.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    7.557

    Re: ADC-Wert unter 1V Instabiel

    Hi Dennis,

    Zitat Zitat von dennis1986
    ... an einem Atmega8 ... 2D120 von Sharp ... unter ca. 1V, schwingt der digitale Wert wahllos ...
    Wahllos - das klingt leider ziemlich nichtssagend? In welchem Bereich sind bei diesem "wahllos" die Werte? Welchen Abstand hattest Du da gemessen? Unter 10 mm oder über 120 mm?

    Der GP2D120 ist bekannt für seine Störempfindlichkeit. Das Datenblatt gibt auch einen Hinweis zur Entstörung, ich bin mit diesem Vorgehen (evtl. den ganzen Thread lesen) zu guten Ergebnissen gekommen. Dabei sind beide Kondensatoren wichtig. Die LED des Sharp zieht so viel Power, dass ich ausserdem die Versorgung des Sharp üblicherweise separat vom Controller habe, um Störungen zu vermeiden.

    Zitat Zitat von dennis1986
    ... oder muss mein Ausgangssignal des Sensors noch einmal Verstärken (OPV) ...
    Das klingt nicht gut. Schwankt denn Dein Ausganssignal - also das analoge Signal? Und welche Störfrequenzen hast Du da drauf?
    Ciao sagt der JoeamBerg

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    19.02.2005
    Beiträge
    34
    Hallo,
    Den Sensor habe mit Kondensatoren stabilisiert. Unter dem Ossi habe ich ein sehr glattes, stabiles analoges Ausgangssignal.
    ARFF habe ich im Moment nur an 5V und mit einem 100nF gegen Masse. Im Datenblatt ist noch eine Spule zwischen 5V und ARFF. Bringt die wirklich etwas?
    Mein digitaler Wert schwankt erste wenn mein Analogwert (Sensorausgabespannung) 0V-1V ist. Dann verhält sich das genau so als wenn der ADC-Pin offen wäre. Habe mein Sensorausgang mal noch mit einem 50K Widerstand gegen Masse gelegt. Der gewandelte digitale Wert schwankt jetzt weniger, bzw. fängt jetzt erst bei kleinen Spannungen (0V- 0,7V) an zu schwingen.

    Es ist halt nur ein Schwingen des digitalen gewandelten Wertes. Wenn ich das analoge Signal mit einem Multimeter messe, passen halt dieses wahllose digitale Schwingen und der analoge Wert nicht zusammen. Aber wie schon gesagt, erst so zwischen 0V und 1V. Darüber ist alles ok.

    Ich werde mit mal eine Spule besorgen und die an ARFF hängen. Mal schauen was das bringt…

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.186
    Die Spule gehört zwischen VCC und AVCC, AREF wird intern mit AVCC verbunden und gehört nur mit 100n nach AGND.
    Grüsse Hubert
    ____________

    Meine Projekte findet ihr auf schorsch.at

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    07.07.2006
    Ort
    Mannheim
    Beiträge
    454
    Ein ADC ist immer nur so gut, wie seine Referenz. Häng das Scope mal an die AVCC, die ja auch intern die Referenz bildet. Wenn es da rippelt oder rauscht und der standart LC-Filter nicht genug bringt, dann hilft nur eine stabile externe Referenzspannung.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •