www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik adc schwankt (ATMega16)


Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: eProfi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: einer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mehr Schaltung.

Autor: Compiler Error (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er wird den ADC-Wert von 0-1023 meinen.

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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-

Autor: Philipp Karbach (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Cs_ Explorer (cs_explorer)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Paul Baumann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

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.