PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spannung mit ADC messen und Werte mit USART im Hyperterminal



karthago
29.01.2007, 13:46
Hallo zusammen,

Ich möchte mit einem ATMEGA32 Spannung die zwischen 0 und 5V liegt messen dann mit USART im Hyperterminal lesen.

kann mir jemand sagen wie ich es machen soll ?:

- die 10bit ADC Werte durch USART senden kanna
- muss ich vorher eine Umwandlung von Binär nach Dec ode Hex durchführen?


Vielen Dank

askazo
29.01.2007, 15:05
Das kommt ganz drauf an, was Du im Terminal sehen möchtest.
Wenn Du das Ergebnis im Klartext ala "4,27V" sehen möchtest, musst Du eine Umwandlung von Binär nach Ascii machen.

askazo

karthago
29.01.2007, 15:21
Das kommt ganz drauf an, was Du im Terminal sehen möchtest.
Wenn Du das Ergebnis im Klartext ala "4,27V" sehen möchtest, musst Du eine Umwandlung von Binär nach Ascii machen.

askazo

Danke askazo

genau als 4,27V wäre ideal,

ich weiss aber nicht wie den ADC-Wert Umwandle und übertrage,

Habe schon mein UART intialisiert sowie ein Iterreupt geschaltet.

robo junior
29.01.2007, 15:37
Vielleicht hilft dir ja diese Seite weiter:
Link (http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Senden_mit_dem_UART)
Dort ist auch beschrieben, wie du einzelne Zeichen, Strings und Variablen senden kannst. Falls du dann noch deine Variablenwerte in Strings umwandeln musst kannst du ja itoa() benutzen.

izaseba
29.01.2007, 17:54
0-5V bei 10 Bit ADC ?
Am besten den ADC Wert mit 320312 multiplizieren und durch 65536 teilen.
Hinter der ersten Zahl ein komma setzen, fertig.

Gruß Sebastian

stormracer
30.01.2007, 16:20
0-5V bei 10 Bit ADC ?
Am besten den ADC Wert mit 320312 multiplizieren und durch 65536 teilen.
Hinter der ersten Zahl ein komma setzen, fertig.

Gruß Sebastian

Hallo,
ich habe ein ähnliches Problem, kann mir wer erklären wie man auf die beiden Zahlen (320312, 65536) kommt?
Ich arbeite mit 2,5V und weiß noch nicht so genau mit welchen Zahlen ich rechnen muss, da ich noch Probleme mit den Komma Zahlen habe.

bL1nK
30.01.2007, 17:14
es gibt ne formel dafür ;) die steht im datenblatt :P

stormracer
30.01.2007, 19:47
THX für den Tipp,
hab es jetzt auch hinbekommen, hab noch meine E-Technik Unterlagen benutzt und nun funktioniert es.

Ich benutzte das RNcontrol 1.4 und nachdem ich herausgefunden habe, das Uref nicht 2,5V sondern 2,18V sind funktioniert es auch mit den Formeln.

izaseba
30.01.2007, 19:51
wie man auf die beiden Zahlen (320312, 65536) kommt?

Naja, wenn der Mikrocontroller keine Brüche kann, muß man sich halt anders helfen....
Kleine Zahl ganz groß machen und ein Komma nur irgendwo reinbasteln
Hier ein Ausschnitt aus dieser (http://www.avr-asm-tutorial.net/avr_de/rechnen/fpconv.html) Seite, eine sehr gute Lektüre, auch wenn man nicht mit Assembler programmieren will !!!


2. Multiplikation mit 320.313 (hex 04E338).
; Dieser Schritt multipliziert die Zahl mit
; den Faktoren 5.000 und 65.536 und divi-
; diert mit 1.023 in einem Schritt.


Gruß Sebastian

karthago
01.02.2007, 13:10
es gibt ne formel dafür ;) die steht im datenblatt :P

wo finde ich die formel ???

bL1nK
01.02.2007, 15:03
das datenblatt findest beim herstellen
http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

Kapitel ADC ab s.201
ADC conversion result, das hier brauchst du, auf s.213 (oben)

karthago
01.02.2007, 15:17
das datenblatt findest beim herstellen
http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

Kapitel ADC ab s.201
ADC conversion result, das hier brauchst du, auf s.213 (oben)

merci,

da steht : ADC = Vin/Vref . 1024

ich hab als Vre 5V

Dh wenn ich die ADC-Wert konvertiere muss ich es so rechnen:

Vin = ADC. 5 / 1024 stimmt es ??

bL1nK
01.02.2007, 15:27
also die gleichung wirst jetzt aber alleine umstellen können, jetzt hab ich ja eh schon den berg zum propheten gebracht :P

karthago
01.02.2007, 18:04
Bitte bitte bitte , sagt doch wie ich es rechnen soll

blan
01.02.2007, 18:27
Rechnung:


Vin = ADC * Vref / 1024

Beispiel:


Vin = 512 * 5V / 1024 = 2,5V

mfg blan