AtMega AD-Wandler Problem

Gast #1796239
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
#1796259
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.
Gast #1796268
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!
#1796281
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

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.