PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Getadc



hacker
19.05.2005, 21:26
hi,

ich hab nun mal mit getadc ne analoge spannung gemessen..ich krieg da jetzt werte zurück wie z.B 671 wie komm ich von dem wert auf die wirkliche spannung, die anliegt? benutze den mega8 is glaub ein 8bit a/d wandler..

mfg hacker

RCO
19.05.2005, 21:31
Ist ein 10-Bit ADC, 671 ist ja schon größer als 8 Bit (256) ;-)
Wie hast du die Refernz gewählt? Es geht so:

(ADCwert/1024) * Refernzspannung = Gemessene Spannung

bertl100
19.05.2005, 22:58
Probiers mal damit.
NUR FÜR SPANNUNGEN BIS 5V!!!!










dim Dauer as integer , Spannung as single

Config Adc = Single , Prescaler = Auto , Reference = Avcc


Start Adc


Dauer = Getadc(0) ' Messung an Kanal 0
Spannung = Dauer * 0.004883 ' Umrechnung 5V/1024* Dauer


Stop Adc


Print "Kanal " ; Cnt ; Spannung ; " V"

20.05.2005, 12:53
danke !!! son forum is schon was geiles :)

mfg hacker

hacker
20.05.2005, 18:08
hi, wo ist hier denn der fehler? ich krieg da immer "batteriespannung: 0 V" geliefert.


$regfile = "m8def.dat"
$crystal = 16000000
$baud = 9600

Config Adc = Single , Prescaler = Auto , Reference = Internal

Start Adc

Dim Wert As Word , Channel As Byte , Spannung As Word

Channel = 0




Do

Wert = Getadc(channel)

Spannung = Wert * 0.00244140625

Spannung = Spannung * 4.9

Print "Batteriespannung: " ; Spannung ; " V";





Wait 2


Loop
End

mfg hacker

PicNick
20.05.2005, 18:21
Werter Kollege, bei den vielen Dezimalstellen mußt du aber schon
"SPannung" als single definieren und um die Ecke arbeiten
dim wert as word
dim spannung as single
Wert = getadc(xx)
Spannung = Wert ' word --> single
Spannung = spannung * 0.00244...
Spannung = spannung * 4.9

hacker
20.05.2005, 18:28
aaaachso ..*ups* danke vielmals ^^

bertl100
20.05.2005, 18:58
Spannung = Wert * 0,00488 allein geht auch. Habs getestet.
Dann brauchst nicht 3 Zeilen.