Häng doch mal testweise nen kleinen Kondensator (10 - 100nf) zwischen Signal und Masse.
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
Häng doch mal testweise nen kleinen Kondensator (10 - 100nf) zwischen Signal und Masse.
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
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.
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.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
Ist der ADC pin offen , zeigt er gleiches Verhalten wie bei den kleinen Spannungen...
Deine Spannung wird nicht stabil oder störungsfrei sein.
AVCC wie im Datenblatt vorgeschlagen beschalten. AREF nicht mit AVCC verbinden.
Hi Dennis,
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?Zitat von dennis1986
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.
Das klingt nicht gut. Schwankt denn Dein Ausganssignal - also das analoge Signal? Und welche Störfrequenzen hast Du da drauf?Zitat von dennis1986
Ciao sagt der JoeamBerg
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…
Die Spule gehört zwischen VCC und AVCC, AREF wird intern mit AVCC verbunden und gehört nur mit 100n nach AGND.
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.
Lesezeichen