Forum: Mikrocontroller und Digitale Elektronik AtMega AD-Wandler Problem


von Thomas Neger-Loibner (Gast)


Lesenswert?

Hallo!
bin noch ein ziemlicher Anfänger der Mikrocontrollerprogrammierung und 
versuche gerade eine einfache AD-Wandlung mit dem AtMega328 
hinzubekommen.

Habe jetz laut Datenblatt den Wandler konfiguriert, doch aus irgendeinem 
Grund erhalte ich als Ausgabewert nur 1023 obwohl ich schon widerstände, 
piezo-sensoren und fixspannungen am eingang angelegt habe!

Vermute also einen fehler im code!
Wär nett wenn ihr mir helfen könnten! DANKE im voraus!
1
  //AD - Wandler Init
2
  ADCSRA |= (1<<ADIE);    //Interrupt bei neuem Wert
3
  DIDR0 |= (1<<ADC0D);    //Digitale Funktion des Pins deaktivieren
4
  ADMUX |= (1<<MUX0);      //AD1 als Eingang
5
  ADCSRA |= (1<<ADEN);    //Wandler aktivieren
6
7
  //Wandlung wird alle 800ms gestartet!
8
  ADCSRA |= (1<<ADSC);    //Wandlung starten
9
10
  ISR(ADC_vect)
11
 {
12
    valuePiezo = (ADCH<<8)+ADCL;
13
    newValue = true;
14
 }

lg Thomas

von Karl H. (kbuchegg)


Lesenswert?

Was hast du als Referenzspannung eingestellt?

von Thomas (Gast)


Lesenswert?

Habe zusätzlich gar nichts eingestellt, aber als default-wert ist ja 0V 
eingestellt, oder nicht?

von Karl H. (kbuchegg)


Lesenswert?

Thomas schrieb:
> Habe zusätzlich gar nichts eingestellt, aber als default-wert ist ja 0V
> eingestellt, oder nicht?

Und was erwartest du dann?

Dann wirst du mit so ziemlich jeder Spannung, die du am ADC einstellst, 
den ADC in den Overflow treiben, wenn du festlegst, dass der Maximalwert 
für den du noch einen vernünftigen Wert vom ADC (1023) haben möchtest, 
0V sein soll.

Die Referenzspannung ist jene Spannung, für die der ADC mit 1023 
antworten soll. Deine zu messende Spannung muss sich zwischen 0 und 
dieser Spannung bewegen, damit du vom ADC vernünftige Wetre bekommst.

von Thomas (Gast)


Lesenswert?

Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als 
Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und 
auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als 
Wert, obwohl meine zumessende Spannung bei 2V liegt!

von Karl H. (kbuchegg)


Lesenswert?

Thomas schrieb:
> Wenn man beim Register ADMUX nichts extra einstellt, wird AREF als
> Referenzsspannung herangezogen. Habe nun versucht, am AREF Pin 5V und
> auch 0V anzulegen, beides ohne Erfolg. Erhalte aber immer noch 1023 als
> Wert, obwohl meine zumessende Spannung bei 2V liegt!

Ich würde an deiner Stelle erst mal die interne Referenzspannung 
benutzen und mich am ADC Code aus dem Tutorial orientieren
AVR-GCC-Tutorial

von spess53 (Gast)


Lesenswert?

Hi

AVCC angeschlossen?

Dein ADC läuft mit dem vollen Prozessortakt. Stell erst mal den 
Prescaler ein.

MfG Spess

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.