Naskrobałem taki oto program:
Wszystko działa całkiem fajnie, tylko trochę musiałem się namyśleć w jaki sposób przeliczyć wynik podawany z Getadc na wolty.
Wychodziło mi:
Woltomierz 4,9V - ADC 1023
Woltomierz 0V - ADC 0
Dzięki temu ułożyłem równanie na policzenie wartości w V.
Oczywiście zdaję sobie sprawę, że gdy napięcie Aref będzie inne niż 4,9V to wynik będzie błędnie podawany.
Moje pytanie teraz:
Czy jest to poprawne rozwiązanie, oraz czy można to zrobić prościej, dokładniej?
Pozdrawiam
$regfile = "m16def.dat"
$crystal = 16000000
Config Adc = Single , Prescaler = Auto
Start Adc
Dim W As Word
Dim Swolty As Single
Dim Gwolty As Single
Config Lcd = 20 * 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
Cls
Do
W = Getadc(0)
W = Getadc(0)
Swolty = W * 4.9
Gwolty = Swolty / 1023
Locate 1 , 1
Lcd "Napiecie 1: " ; Fusing(gwolty , "#.##") ; "V"
Waitms 100
Loop
End
Wszystko działa całkiem fajnie, tylko trochę musiałem się namyśleć w jaki sposób przeliczyć wynik podawany z Getadc na wolty.
Wychodziło mi:
Woltomierz 4,9V - ADC 1023
Woltomierz 0V - ADC 0
Dzięki temu ułożyłem równanie na policzenie wartości w V.
Oczywiście zdaję sobie sprawę, że gdy napięcie Aref będzie inne niż 4,9V to wynik będzie błędnie podawany.
Moje pytanie teraz:
Czy jest to poprawne rozwiązanie, oraz czy można to zrobić prościej, dokładniej?
Pozdrawiam