mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Analog/Digital-Konverter


Autor: Björn R. (sushi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
  //Kanal wählen, Batteriespannung: PC0
  ADMUX = PC0;
  // interne Referenzspannung nutzen
  ADMUX |= (1<<REFS1) | (1<<REFS0); 
  //Free Running Modus, ADC Enable, ADC-Prescaler 128
  ADCSRA |= (1<<ADFR)|(1<<ADEN)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);
  //ADC starten
  ADCSRA |= (1<<ADSC);

Danke im Voraus!

Autor: Lupin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jean Player (fubu1000)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,
dein Vin ist falsch, die Fromel sollte eher lauten :
Vin = U*(12kOhm / (12kOhm + 18kOhm)) und dann passt das schon.

Gruß unbd Herr Ohm dreht sich im Grabe.

Autor: Björn R. (sushi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie peinlich... Dann dreh ich den Herrn Ohm mal schnell wieder richtig 
rum...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.