Forum: Analoge Elektronik und Schaltungstechnik Spannung am ADC messen "Formel für CV"


von Andre (Gast)


Lesenswert?

Hay Leute

Ich möchte gerne die Spannung lesen die am ADC anliegen.

Zumessen sind max. 14V, Spannungteiler und sowas habe ich schon.
Mir fehlt die formel dafür das ich den AD Wert 0-1023 Umwandeln kann in 
Volt.

Kann mir jemand helfen oder hat einer diese formel wie ich das umrechnen 
kann.?

Ich nutze einen Mega128 Am AVCC liegen 5V an und der AREF ist noch frei.


MFG Andre

von Fred S. (Gast)


Lesenswert?

Hi Andre,

Du musst Dich für eine der drei möglichen Referenzspannungsquellen 
(Aref, AVcc oder interne Referenz -- in ADMUX setzen) entscheiden. Falls 
Du Aref wählst, muss dieser Pin natürlich außen beschaltet sein und die 
Spannung an Aref darf nicht größer als AVcc sein (noch einmal im 
Datenblatt verifizieren!). Dein Spannungsteiler sollte ein 
Maximalspannung abgeben, die kleiner als die gewählte Referenzspannung 
ist.

Im Datenblatt http://www.atmel.com/atmel/acrobat/doc2467.pdf findest Du 
auf den Seiten 241 und 242, wie sich die 10-Bits des ADC-Ausgangs zur zu 
messenden Spannung und zur Referenzspannung verhalten.

Gruß

Fred

von Andre (Gast)


Lesenswert?

Hay  Fred S.

Das alles habe ich doch schon der AVCC ist schon belegt und der 
spannungsteiler ist auf 14V ausgelegt da ich einwenig diferenz haben 
möchte.

Es geht mir eigentlich nur um die formel vom ADC wert zum spannungswert.


MFG: Andre

von Reiner S. (chickstermi) Benutzerseite


Lesenswert?

ADC_Value = (U_Mess/(R1+R2) * R2) * 1024/Aref

Hoffe da ist kein Fehler drin...

Wie man daraus U_Mess ermittelt sollte durch Umstellen rauszufinden 
sein...

mfg reiner

von Karl H. (kbuchegg)


Lesenswert?

Andre wrote:
> Hay  Fred S.
>
> Das alles habe ich doch schon der AVCC ist schon belegt und der
> spannungsteiler ist auf 14V ausgelegt da ich einwenig diferenz haben
> möchte.
>
> Es geht mir eigentlich nur um die formel vom ADC wert zum spannungswert.
>

d.h wenn du 14V anlegst, kriegst du vom ADC einen Wert von 1024.
Legst du 7V an, dann kriegst du 512
Legst du 1.4V an, kommt 102 raus.

Wie war das?
1024 Äpfel kosten 14 Euro
Wieviel kosten x Äpfel?

       1024     .....   14
          x     .....    ?
       -------------------
              x * 14
       ? = -----------
              1024

von Fred S. (Gast)


Lesenswert?

Hallo Andre,

> Es geht mir eigentlich nur um die formel vom ADC wert zum spannungswert.
Die Formel steht auf S. 241 des Datenblatts, wie ich im obigen Post 
schon einmal geschrieben habe. Leider erklären die Autoren dort die 
Formel nicht so schön mit Obst wie Karl Heinz!

Gruß

Fred

von Andre (Gast)


Lesenswert?

Also ich habs so schwer war es garnicht wenn ich recht überlege.


Die Formel sieht so aus

unsigned int wert;
float b;
char text[16];

wert=ADC_wert;
wert=wert*14/4.38*5;
b= wert/1023.0;
ftoa(b,2,text);


MFG: Andre

von Thilo M. (Gast)


Lesenswert?

@ Karl Heinz:

schöne Erklärung des Dreisatzes ;)
habe dabei Hunger gekriegt!

Erschreckend dass den so wenige beherrschen. :(

von Johannes M. (johnny-m)


Lesenswert?

Andre wrote:
> Also ich habs so schwer war es garnicht wenn ich recht überlege.
>
>
> Die Formel sieht so aus
>
> unsigned int wert;
> float b;
> char text[16];
>
> wert=ADC_wert;
> wert=wert*14/4.38*5;
> b= wert/1023.0;
> ftoa(b,2,text);
Festkommaarithmetik...

Und das "/1023.0" halte ich auch für ein Gerücht. Müsste 
wahrscheinlich ne 1024 sein...

von Rooney B. (rooney)


Lesenswert?

Den Wert 1024 gibt es nicht. Eine 10Bit Variable deckt einen 
Wertebereich von 0x00 bis 0x3FF (1023) ab. Du kannst zwar 1024 Werte 
darstellen, aber 0 entspricht hierbei auch schon einem Wert, d.h. 14V 
entspricht dem Dezimalwert 1023.

von Der S. (derschelm)


Lesenswert?

Durch 1024 teilen kann man sehr schön durch bit-shiften realisieren, 
aber vielleicht ein bisschen viel:

Dreisatz und Shiften in einer Woche

durckundwech

von Εrnst B. (ernst)


Lesenswert?

Ist hier schon hundertmal durchdiskutiert worden, steht so in den 
Tutorials, den AVR-Datenblättern und Appnotes, und ist mit ein bischen 
überlegen auch selbst leicht herzuleiten:

Den 10Bit ADC-Wert durch 1024 teilen, 1023 ist FALSCH.

von Fred S. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

mit meiner Mantra "Datenblatt S. 241, ommmm; Datenblatt S. 241, ommmm" 
(s.o.!) habe ich mich inzwischen in den Schlaf gelullt.

Gruß

Fred

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.