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


von Björn R. (sushi)


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:
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!

von Lupin (Gast)


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.

von Jean P. (fubu1000)


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.

von Björn R. (sushi)


Lesenswert?

Wie peinlich... Dann dreh ich den Herrn Ohm mal schnell wieder richtig 
rum...

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.