Ich habe, wie in dem AVR-Tut beschrieben den ATmega folgenderweise beschalten: http://www.mikrocontroller.net/wikifiles/f/f6/Tut_ADC_03.gif (außer dass er bei mir an PortC5 (Pin 28) hängt. Ich mittele jeweils 128 messungen und gebe diese auf einer 4*7-seg-mentanzeige aus. AGND hängt an ground AVCC an 5V als referenzspannung hab e ich auf intern 5V gestellt. der VREF port ist also mit dem einen ende des Potis, der Ground mit dem anderen und der Abgriff mit PC5 verbunden. Das Poti hat ich 10kOhm. Was ich nicht verstehe (und was in meinen augen falsch ist), ist dass das Poti bis kurz vor schluss werte im 10er bereich anzeigt und dann innerhalb der letzten paar grad (5% des Poti drehspielraums) auf 950 geht. Was mach ich denn falsch?
Das eine Ende des Poti gehört nicht auf AREF sondern auf AVCC. An AREF gehört ein 100n nach AGND.
In dem Tutorial ist diese Möglichkeit ausdrücklich beschrieben: http://www.mikrocontroller.net/articles/AVR-Tutorial:_ADC#Ein_paar_ADC-Grundlagen Allerdings habe ich das überlesen: "Der Spannungsteiler muss einen Gesamtwiderstand von deutlich über 10kΩ besitzen. Werte von 100kΩ oder höher sind anzustreben" Ich hoffe ich habe jetzt nicht den Port geschrottet Auch mit VCC verbunden, gibt sich das gleiche bild. Oder muss ich jetzt im ADMUX was umstellen?
Ergänzung: Ich wollte das so machen, da mich die Spannung nicht interessiert und es nicht auf Megagenauigkeit ankommt, da ich nur einen internen Parameter mit dem Poti einstellen möchte. Da sah mir das nach der einfachsten Möglichkeit aus.
Also das Poti an Vcc und Gnd. Dann in ADMUX REFS0=1,REFS1=0 und MUX0..MUX3 entsprechend deinem ADC-Kanal setzen. Sollte das nicht funktionieren poste mal deinen Code
Die Variable zum Aufsummieren ist hoffentlich ein uint32_t, sonst kommst du nicht weit. Oder du verwendest nur 8 bit.
Ahhh, jetzt beim Code aufbereiten sehe ichs: anstatt ins DDR hab ich in PORTC reingeschrieben, dass PC6 ein Eingang ist -> war also die ganze zeit als Ausgang konfiguriert. jetzt gehts. auch mit der Variante mit Poti zwischen vref und ground. Danke ;)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.