Korzystając z tak napisanej procedury jak -> W TYM LINKU <- przepisałem to na bascoma i niby wszystko było by ok ale występują dwa problemy.
1. Jako że jest to dzielnik 1/3 z racji użycia dzielnika rezystorowego to mnożę wynik przez trzy i dopiero poddaję obróbce i wyświetlam wynik docelowy i zamiast napięcia 5V mam napięcie 4.06V
2. Mimo że średnia jest ładnie dociągana to występuję kłopot że po kilku chwlach ponawia się dociąganie i tym razem 0.76V a po kilku chwilach spada do 0V
-> TUTAJ FILMIK PREZENTUJĄCY BŁĄD <-
A kod wygląda jak niżej. Możecie mi powiedzieć co jest nie tak ? Zauważyłem że im mniejsza ilość próbek (zmienna Dt mniejsza) tym wynik bliższy prawdy, ale nie powinno tak być.
Kod: Zaznacz cały
Dim Dt as Word
Dt = 1 'ilość próbek
Dim Wynik as Word
Dim Srednia as Word
Srednia = 0
Do
Gosub Pomiar 'skok do podprogramu pomiar
'Waitms 50
Home
Lcd "U=" ; V ; "V " 'wyswietlanie wartości obliczonego napięcia
Lowerline
Lcd "ADC=" ; Srednia ; " " 'wyświetlanie wartości ADC
Loop
Pomiar:
Wynik = Getadc(0)
Srednia = Srednia * Dt 'obliczana jest średnia wyniku i mnożona przez ilość próbek
Srednia = Srednia + Wynik 'do średniej dodawany jest wynik ADC
Dt = Dt + 1
Srednia = Srednia / Dt 'tu mamy końcową wartość średniej
'*******************************************************
'*** typowe obliczanie napięcie z wejścia ADC ***
'*** z tym że do obliczeń brana jest średnia ******
'*******************************************************
Wartosc_wyniku = Srednia
Wartosc_wyniku = Wartosc_wyniku / 204
Wartosc_wyniku = Wartosc_wyniku * 3
V = Fusing(wartosc_wyniku , "#.$$" )
Return