Datum: 15.05.2008 03:18
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
Datum: 15.05.2008 07:19
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
Datum: 15.05.2008 07:36
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
Datum: 15.05.2008 07:47
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
Datum: 15.05.2008 09:32
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
Datum: 15.05.2008 13:36
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
Datum: 17.05.2008 10:49
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
Datum: 17.05.2008 11:05
@ Karl Heinz: schöne Erklärung des Dreisatzes ;) habe dabei Hunger gekriegt! Erschreckend dass den so wenige beherrschen. :(
Datum: 17.05.2008 11:59
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...
Datum: 18.05.2008 12:19
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.
Datum: 18.05.2008 13:55
Durch 1024 teilen kann man sehr schön durch bit-shiften realisieren, aber vielleicht ein bisschen viel: Dreisatz und Shiften in einer Woche durckundwech
Datum: 18.05.2008 15:34
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.
Datum: 18.05.2008 16:57
Hallo, mit meiner Mantra "Datenblatt S. 241, ommmm; Datenblatt S. 241, ommmm" (s.o.!) habe ich mich inzwischen in den Schlaf gelullt. Gruß Fred
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel
