Zbudowałem układ wg. własnego schematu (załącznik pod postem). Bardzo prosty, zadaniem mikrokontrolera jest odczytywać oraz wyświetlać wyniki pomiarów na wyświetlaczu LCD. Napisałem taki program:
Kod: Zaznacz cały
Dim Napiecie As Single , Pga As Integer
Dim Addressw As Byte , Addressr As Byte , Pomiarh As Byte , Pomiarl As Byte
Addressr = &B10011011
Pga = 1 'Odczytu
Cls
Do
Gosub Odczyt 'Odczyt Pomiaru
Cursor Off
Gosub Wyswietl 'Wyświetlenie Na Lcd
Waitms 250
Waitms 250
Loop
End
Odczyt:
I2cstart
I2cwbyte Addressr 'Adres Do Odczytu
I2crbyte Pomiarh , Ack 'Odczyt Pomiaru
I2crbyte Pomiarl , Nack
I2cstop 'Bit Stopu
Napiecie = Pomiarh * 256 'Przekształcenie
Napiecie = Napiecie + Pomiarl
Napiecie = Napiecie * 2.048
Napiecie = Napiecie / 32768
Napiecie = Napiecie / Pga
Return
Wyswietl: 'Wyświetlenie Pomiaru Na Lcd
Upperline
Lcd " Nap: " ; Napiecie ; " V"
Return
Problem polega na tym, że dokładność pomiarów to ok 1mV, jednak mi jest potrzebna większa dokładność - do trzeciego miejsca po przecinku (0,000V).
Nawet po niepodłączaniu żadnego napięcia mierzonego do punktów Vin+ i Vin- na wyświetlaczu pojawiają się jakieś śmieci, typu 0,009464. Czwarte i kolejne na prawo miejsca po przecisnku non stop się zmieniają. Próbowałem stosować kondensatory 100nF, jednak jedyne co to udało mi się zmienić napięcie do 0,0052647.
Co robić?
Będę wdzięczny za pomoc
Pozdrawiam