AVR Analog/Digital-Konverter

OP #1086885
Ich habe mich etwas mit der o.g. Thematik beschäftigt und die Sache 
funktioniert auch, allerdings die Umrechnung der Werte in die 
tatsächliche Spannung verwirrt mich etwas.

Zitat aus dem AVR-GCC-Tutorial:
>Die interne Referenzspannung wird auf Vcc bezogen, eine externe
>Referenzspannung auf GND (Masse). Davon unabhängig werden digitalisierte
>Spannungen immer auf GND bezogen. Beim ATMEGA8 z.B. ist der Pin AREF über
>32kOhm mit GND verbunden, d.h. man muss diese doch extrem niedrige
>Eingangsimpedanz mit in die Berechnung für einen Spannungsteiler
>einbeziehen, bzw. kann diesen Widerstand als R2 gleich mit benutzen. Formel
>für Spannungsteiler: Udiv = U / ((R1 + R2) / R2)

Ähm..ja wie was denn jetzt bezogen auf VCC oder Masse? Die 32kOhm kann 
ich im Datenblatt des ATMega8 auch nicht finden...

Im Datenblatt findet man folgende Formel:

Ich habe einen Spannungsteiler aufgebaut, vom ADC-Pin gehen 18kOhm zu 
meinem zu messenden

Potential U und 12kOhm nach GND, also ist die gemessene  Spannung:

Damit kann ich mir folgendes zusammenbauen:

Umgeformt:

Um an meine Spannung zu kommen, müsste ich also den Wert in ADC einfach 
durch 266 1/3 teilen. Wenn ich aber mit dem Multimeter nachmesse, sind 
es 5,41V bei einem Wert von 845, also müsste ich ihn ungefähr durch 
156,1 teilen und nicht durch 266 1/3. Wo liegt mein Fehler?
Ach ja den ADC starte ich folgendermaßen:
1
  //Kanal wählen, Batteriespannung: PC0
2
  ADMUX = PC0;
3
  // interne Referenzspannung nutzen
4
  ADMUX |= (1<<REFS1) | (1<<REFS0); 
5
  //Free Running Modus, ADC Enable, ADC-Prescaler 128
6
  ADCSRA |= (1<<ADFR)|(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
7
  //ADC starten
8
  ADCSRA |= (1<<ADSC);

Danke im Voraus!
Gast #1086897
Bei 5,41V hättest du am Eingang 3,61 Volt anliegen. Das macht einen A/D 
Wert von 1444 - was könnte da wohl falsch sein? :-)

Mess doch einfach die Spannung am A/D Wandler eingang (stell mal z.B. 1 
volt ein - das liegt dann auch noch innerhalb des messbaren Bereichs). 
Dann schau was er dir als A/D Ergebnis raus gibt. Müsste ja 400 bei raus 
kommen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.