ADC Wert ist nicht linear

Gast #2293250
Lesenswert?

Hallo Jungs, ich experimentiere gerade noch mit meiner RGSs herum und 
stellte dabei folgende Phänomen fest:

Ich habe einen 10K Poti and Adc0 eines Atmega8 angeschlossen. Ein Pin 
von Poti ist an 5V das andere an GND. Der ADC Wert

Adc0 = Getadc(0) gebe ich an einem LCD aus ( Kontrolle )

Nun wenn ich am Poti drehe steigt der ADC Wert langsam an. ca bei einem 
drehung von 30% habe ich einen Wert von ca 100 bis 200 danach steigt der 
Wert rapide an, das heisst richtung ende (letzte paar Millimeter ) habe 
ich eine ADC Wert vonn 700 bis 1024. Also die Regelung ist nicht linear 
oder sagen wir so nicht "gleichmässig".

Der Poti hat 10K - Linear ( habe schon andere Potis versucht das gleiche 
Ergebnis )

Den ADC habe ich so deklariert :

Config Adc = Single , Prescaler = Auto , Reference = Avcc
 Start Adc

Der Adc Pin AREF ist mit dem PIn AVCC verbunden und hängt an +5V und ein 
Kondensator von 100nF gegen Masse ist an dran.

Wenn ich die Spannung an ADC0 pin messe ist auch nicht linear, also habe 
das gleiche Ergebnis wie der ADC Wert !!

Was ist falsch hier ?
Gast #2293301
Lesenswert?

Nobody schrieb:
> Miss mal nur am Poti, ohne den Schleifer am Controller anzuschließen,
> wie sieht es dann aus?

Das ist auch ein spannender Ansatz !

ich habe nämlich die Spannung am Schleifer gemessen war aber an ADC 
angeschlossen.Werde auch noch einen anderen PIN bzw. AVR nehmen.

Danke erstmal !!! HAbe nun einige neue Anhaltspunkte.
Gast #2293323
Lesenswert?

Der Schaltplan ist richtig.

Zwischen Pin 21-22 muss(!) der ~100nF Kondensator.

AREF direkt auf +5V habe ich noch nie gemacht. Dafür gibt es ja die 
Option ihn mit Versorgungsspannung intern zu beschalten. Aber ich denke 
du wirst Hausnummern messen.

Ich kann dir, wenn du was neues ausprobierst das Tutorial hier nur 
empfehlen. Auch wenn es Assembler ist, die Grundlagen sind die gleichen.

http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC

Lies einfach mal bis zum Beispiel Program und du hättest den Fehler 
selber gefunden.
Gast #2293331
Lesenswert?

Also was ich gelesen habe, der ADC Frequenz sollte zwischen 50-200Khz 
liegen
(Prescaler-Faktor.)

Nun was macht es bei sowas ?

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Der AVR läuft mit einem 16Mhz Quarz
Gast #2293336
Lesenswert?

Chris schrieb:
> Zwischen Pin 21-22 muss(!) der ~100nF Kondensator.

Upsss....habe übersehen !!!! habe die Tut von Halvar angeschaut und fing 
dann mit der Experimenten an.

( PWM geht schon sehr gut, RGB Wechsler, dimmen mit Tasten, wollte nun 
weitermachen mit einem Poti )

Danke !!
Gast #2293353
Lesenswert?

Ich vermute ( muss ich erst messen wenn ich zu Hause bin ) das Problem 
könnte daher kommen, daß der AREF nicht sauber beschaltet ist.
Ich denke, weil ich schon mehrere Potis ausprobiert habe, daß die 
Spannung am Schleifer ohne an AVR angeschlossen zu sein, linear 
verlaufen wird.
Gast #2293911
Lesenswert?

So etwas besser aber nicht gut.

Habe nochmal mein Steckbrett kontrolliert , AREF war offen...Habe mit 
einem 100nF mit  GND verbunden.

Ich habe am Schleifer des Poti die Spannung gemessen, wenn ich den Poti 
langsam drehe. Die Verbindung zu AVR habe unterbrochen. Am Schleifer ist 
die Spannung schön gleichmässig. Danach habe ich es wieder mit Adc0 
verbunden und die Spannung am PIN beobachtet, erstmal steigen die Werte 
Spannung und ADC Wert sauber. Ab ca 3,4 - 3.7V bei der kleinste Drehung 
messe ich gleich 4,99V und der ADCO Wert spring auf 1020 hoch.



An was kann es liegen ?

Die Beschaltung ist wie bei Halvar.at, mehrmals kontrolliert. passt 
alles.Eine Spule habe ich auch noch spendiert.
#2294112
Lesenswert?

Bastler schrieb:
> Niemand eine Idee ?

Nee eigentlich nicht, da das eigentlich ein absurder Fehler ist.

VCC und AVCC muss auf +5.
alle GND , also GND und AGND müssen auf GND.

Aref ist lediglich mit 100nF gegen GND zu legen und sonst nichts.

wenn alles so gemacht ist und es geht nicht, würde ich mal den uC
tauschen. vielleicht hast du diesen durch die Verbindung von Aref zu 
Avcc
schon gehimmelt.

Gruss Klaus
Gast #2294176
Lesenswert?

Fehler habe ich gefunden, erstmal Danke an alle !

Der AVR war Schrott.

Spannend war, habe ich einen nagelneuen genommen, (Pony ) Read all dann 
Write All hat auch angefangen zu spinnen sobald am Poti gedreht habe.

Danach habe ich einen anderen genommen, komplette Prozedur, funzt 
perfekt !!!
Schöner ADC Wert, keine Flatterei..usw

Kann es sein daß auch Schrott ICs auch hergestellt werden ? ( Herkunft 
weiss ich nicht mehr genau. Habe viele AVRs auf Lager, einige von 
Reichelt, einige aus der Bucht, vom Kessler...usw...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren