Forum: Mikrocontroller und Digitale Elektronik adc schwankt (ATMega16)


von Cs_ E. (cs_explorer)


Lesenswert?

Hallo ich habe ein seltsames Verhalten am ADC, das ich mir nicht 
erklären kann. Vielleicht hat ja jemand einen Tip?

Also ich benutze Avcc. mit 47Ohm gegen Vcc und 100nf gegen Gnd. Wie im 
tut beschreiben. Die ADC Werte kommen von einem cny70.

Was mich nun wundert ist folgendes Verhalten:

Wenn ich mir die ADC Werte ausgeben lasse schwanken die Werte um ca. 100 
Stellen (bei gelichbleibender Umgebung).

Wenn ich nun mit dem Multimeter die Spannung nachmesse bleiben plötzlich 
die ADC Werte konstant (schwanken nur noch um +- 1) woran könnte das 
liegen???

Hat jemand ne Idee?

Gruß Cs

von Cs_ E. (cs_explorer)


Lesenswert?

Ach ja, wenn ich nur den Sensorausgang messe kann ich auch keine 
derartig krassen Veränderungen festellen...

Es handelt sich dabei ja immerhin um ca. 0,5V!

von eProfi (Gast)


Lesenswert?

meine Vermutung: es schwingt was. Durch die Kapazität des Messgerätes 
wird die Schwingung gedämpft / unterdrückt.

Mit Schaltplan könnten wir Dir besser helfen.

von Cs_ E. (cs_explorer)


Lesenswert?

Ich habe nun mal statt des Netzgeräts eine Batterie als Spannungsquelle 
genommen das hat schonmal die Fehlerrate halbiert.

Schaltplan ist folgendermaßen:

                         |-----------|
Vcc----R=47Ohm--o--------|AVcc   ARef|---C=100nf----|GND
                |        |           |
               C=100nf   |   AVR     |
                |        |           |
               GND       |        GND|---|GND
                         |-----------|

Hoffe das kann man verstehen ;-)

von Michael G. (linuxgeek) Benutzerseite


Lesenswert?

Cs_ Explorer wrote:

> Wenn ich mir die ADC Werte ausgeben lasse schwanken die Werte um ca. 100
> Stellen (bei gelichbleibender Umgebung).

100 Stellen? Wie bitte? Der ADC vom Atmega16 hat nur 10 Stellen.

von einer (Gast)


Lesenswert?

Mehr Schaltung.

von Compiler Error (Gast)


Lesenswert?

Er wird den ADC-Wert von 0-1023 meinen.

von Sebastian (Gast)


Lesenswert?

Hi,

liest Du die vollen 10 Bit aus? Oder eventuelle nur das Low- oder 
High-Byte?

von Cs_ E. (cs_explorer)


Lesenswert?

Hallo also mein adc hat 10 bit Auflösung -> 1024 Werte, bzw. Stufen -> 
die Analoge Spannung wird durch eine Zahl dargestellt und dieser 
Zahlenwert schwankt um 100

                         |-----------|
Vcc----R=47Ohm--o--------|AVcc   ARef|---C=100nf----|GND
                |        |           |
               C=100nf   |   AVR     |
                |        |           |
               GND       |        GND|---|GND
                         |           |
                         |        AD0|-----Signal CNY70
                         |-----------|

So hier die erweiterte Schaltung das CNY 70 Signal wird noch über einen 
BC485 verstärkt bevor es an den AD0 Anglegt wird.

von Cs_ E. (cs_explorer)


Lesenswert?

Nö ich lese ein wort das passt schon ich denke nicht, dass es am 
Programm liegt, ich habe Werte über den gesammten Bereich. Nur leider 
schwanken diese so sehr...

Hier noch der Bascom Code:

Dim Analogval As Word
'adc settings
Config Adc = Single , Prescaler = Auto , Reference = Avcc

Start Adc

Enable Interrupts

Do
  Analogval = Getadc(0)
  Waitms 800
  Locate 1 , 1
  Lcd "value at adc0:"
  Locate 2 , 1
  Lcd Analogval
  Waitms 800
  Cls

Loop
End

von Paul Baumann (Gast)


Lesenswert?

Der CNY70 ist doch ein Koptoppler, äh Optokoppler, der auf der 
Empfängerseite nur einen Transistor hat. Zeige mal die Schaltung, mit 
der
Du das Signal aufbereitest. Ich habe im Datenblatt gesehen, daß der 
Kollege
seinen Kollektorstrom bei einer Distanzänderung von 2mm von ca 0,5 auf
1mA verändert. Wenn Du im Kollektorkreis einen Widerstand von 4,7K 
hättest,
würde die Spannung über diesem zwischen 2,35 und 4,7 Volt liegen.

Da muß es ganz schön erschütterungsfrei sein, dmit ein stabiler Wert 
kommt.

MfG Paul

von Cs_ E. (cs_explorer)


Lesenswert?

Okay danke erstmal für den Hinweis.

Ja... die Spannung am Eingang schwankt ja auch ein wenig allerdings nur 
um 0,05V bis 0,1V und nicht um 0,5V.

Bei einer Auflösung von ca. 0,004V je Stufe -> Sollte bei einer 
Schwankung von 0,05 V die Abweichung bei 12-13 Stufen liegen. Bei ca. 
0,1 V Schwankung am Eingang bei ca. 25 Stufen.

Also wo kommen dann die restlichen Fehler her? Immerhin schwanken die 
Werte mit der Batterie jetzt nur noch um 50, was allerdings immer noch 
sehr schlecht ist - wie ich finde-

von Philipp Karbach (Gast)


Lesenswert?

was passiert wenn du 5V an den ADC hängst? Schwankt immer noch oder 
konstanter wert? (1023?) Ansonsten vielleicht auch kalte lötstelle -> 
adc liegt offen, dann schwankt er nämlich auch total.

von Cs_ E. (cs_explorer)


Lesenswert?

Habe jetzt den ad0 mal ein ein 10kPoti gehängt... -> einwandfreie Werte 
schwanken maximal um eine Stufe.

Kann jetzt höchstens noch sein dass der Transistor defekt ist..

Oder ich schalt mal noch am Signalausgang nen Kondensator gegen GND, 
dann sollte doch das Ausgangssignal nochmlas geglättet werden oder? Am 
besten doch nen kleinen damit er nicht zu viel verfälscht 20 nf oder so?

von Paul Baumann (Gast)


Lesenswert?

Da Du die Schaltung nicht herausrücken willst, kann ich nur spekulieren, 
daß Dein zusätzlicher Transistor Dir in die Suppe spuckt. Denke daran, 
daß Uce temperaturabhängig ist. 20mV pro Kelvin machen mehr aus, als 
Dein eigentliches Meßsignal.....


MfG Paul

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.