PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmel128 Spannungen einlesen und Ausgeben (Display3000)



Gantenbein
29.08.2007, 20:46
Hallo,
ich versuche seit einiger Zeit 3 Spannungen mittels eines Atmega126 der sich auf einem Display3000 Entwicklerboard befindet einzulesen und diese dann auf diesem anzeigen zu lassen.
Leider werden nur Werte um die 200-300 ausgegeben und es scheint ihn gar nicht zu interessieren welche oder ob überhaupt an den betreffenden ADC Eingängen eine Spannung anliegt. Desweiteren weiß ich gerade nicht wie ich die Umrechung auf die wirklichen Spannungswerte bewerkstelligen soll, insofern sie denn mal richtig gewandelt werden würden. Man hat dann ja wohl den eingelesenen Wert durch 1024 teilen und das dann mal die Referenzspannung zu nehmen. Dummerweise wird mittels getadc jedoch ein word Format eingelesen, später wandle ich das in einens tring für die Ausgabe um..insgesamt läßt sich also erkennen,dass ich so wohl nicht zu schönen fließkommazahlen komme die ich jedoch gerne hätte da ansonsten Spannungen von zB 0,4 Volt ja nur als 0 angezeigt würden.

Zum Testen versuche ich Spannungen an Channel F ADV 0-2 anzulegen, Masse schließe ich an einen allgemeinen Massepunkt des Microcontrollers an.

Gantenbein
30.08.2007, 12:53
Gut also inzwischen habe ich festgestellt, dass wohl doch etwas eingelesen wird, was durch das Problem, dass ich keine Kommastellen in der Ausgabe sah einfach nur nicht ersichtlich war. Allerdings kommt wenn man diese Werte mit einer Referenzspannung von 2.65V (die bei der Reference Einstellung Internal bereitstehen müßte) nicht wirklich realistische bzw. genaue Werte heraus, diese erreiche ich bei einem Referenzspannungsfaktor von ca 3,9V, wüßte jemand wo dieser herkommen könnte? Also im Datenbaltt war er anders angegeben.

Dani-Bruchflieger
31.08.2007, 22:41
Hi,

nimm doch als referenz external und bastele dir diese Refeenzspannung mittels Spannungsteiler (Poti) oder du nimmst einen einstellbaen Festspannungsregler wie den LM317T (100mA) damit könntest du dir die 3,9V Referenz erzeugen. (Denk aber daran, die Brücke die AREF mit VCC verbindet zu trennen (Modul 072))

Oder du nimmst als Referenz = AVCC dann hast du eben die 5V Betriebsspannung als Referenz und rechnest das dann um.
zB an meiner RC-Fernsteuerung brauche ich eine Anzeige der momentanen Akkuspannung. Das mache ich dann so:

Dim A As Byte 'Für For Next Schleife
Dim Temp As Word 'Temporaer für ADC Messung
Dim Batt As Word 'Zwischenschritt 1
Dim Batterie As Single 'Schritt 2
Dim Lcd_text As String * 20 'Text aufs LCD auszugeben

Do
Batt = 0 'vor der Messung auf 0 setzen
For A = 1 To 16 '16 Messungen durchführen
Temp = Getadc(0) 'erhoeht Genauigkeit der Messung und beruhigt die Anzeige
Batt = Batt + Temp
Next
Shift Batt , Right , 4 'nach den 16 Messungen durch 16 Dividieren
Batterie = Batt / 18.25 'bei dieser Division entstehen zig nachkommastellen
Lcd_text = Fusing(batterie , "#.#") 'jetzt bleibt nur noch eine übrig.

Loop
Das ist nur ein Auszug aus dem Programm... die Akkuspannung (über10V) gebe ich dabei per Spannungsteiler auf den ADC...