Forum: Mikrocontroller und Digitale Elektronik Bascom ADC umrechnen


von Igor (Gast)


Lesenswert?

Hallo!
Tolles Forum hier, konnte schon Eigines für mich finden.

Ich habe jetzt ein Problem, bei dem ich nicht so richtig weiter komme.
Ich lese mit einim ADC Pin des m8 ein analoges Wert ein, und den will 
ich in Spannung umrechnen.
Eigentlich ist das alles klar, aber es klappt nicht.
hier mein Code:
1
CONFIG ADC = SINGLE, PRESCALER = AUTO, REFERENCE = AVCC
2
Start Adc
3
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Prescale = 1
4
5
Dim Adcwert As Word
6
Dim Volt As Word
7
8
Do
9
Cls
10
Adcwert = Getadc(0)
11
Volt = 0.0048875855327468 * Adcwert
12
13
 Locate 1 , 1
14
 Lcd Adcwert
15
 Locate 2 , 1
16
 Lcd Volt
17
 Waitms 500
18
19
Loop
20
End
ich teile 5(V) durch 1023, um dann den Wert zum Rechnen zu benutzen.
Auf dem LCD erscheint der richtige ADC wert, aber in der 2. Zeile nur 0.
Woran liegt das?
wenn ich 4.8875... * Adcwert rechne, kommt da was raus, aber in mV halt.
Kann ich 0.00... * Adcwert nicht rechnen, oder was ist da los?

Danke
lg Igor

von MichaelH (Gast)


Lesenswert?

Hallo,


deine Variable "Volt" ist als Word deklariert. Ein Word kann aber nur 
Ganzzahlen speichern... Probiers mal mit einem Single oder Double.


Viele Grüße
Michi

von Karl H. (kbuchegg)


Lesenswert?

Wie groß ist denn dein ADC Wert?

Da du Volt als WORD definiert hast, können da auch nur ganze Zahlen 
drinnen stehen. Ein ADC Wert von 200 ergibt dann nun mal 0 und nicht 0.9 
als Wert in Volt

von Lukas K. (carrotindustries)


Lesenswert?

Igor schrieb:
> wenn ich 4.8875... * Adcwert rechne, kommt da was raus, aber in mV halt.

Passt doch wenn du das Komma ein wenig verschiebst.
siehe Festkommaarithmetik

von Paul Baumann (Gast)


Lesenswert?

Du kannst auch den Faktor zur Umrechnung als Konstante definieren,
damit der nicht jedes Mal neu ausgerechnet werden muß.

Dim ADC-Speicher as word
Dim Volt as Single
CONST ADC_Faktor = 0.0048828125

Volt=Getadc(0)*ADC_Faktor

MfG Paul

von Igor (Gast)


Lesenswert?

Danke, hat mit Single funktioniert.
Gruss Igor

von Falk B. (falk)


Lesenswert?

@Igor (Gast)

>Danke, hat mit Single funktioniert.

Sicher, braucht aber einiges an Speicher. Siehe Festkommaarithmetik.

MFG
Falk

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.