logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[ATmega8][avr-gcc] - zakłamany pomiar napięcia ADC

lol555 28 Lut 2014 19:23 2934 4
REKLAMA
  • #1 13355767
    lol555
    Poziom 10  
    Witam
    Mam problem z pomiarem napięcia za pomocą przetwornika ADC w Atmega8.
    Gdy na wejście podam np. napięcie 2,46V zmierzone woltomierzem to wynik z przetwornika na wyświetlaczu zmienia się od 2,33-2,36V.
    Dlatego mam pytanie czy da się zmierzyć rzeczywiste napięcie jakie podaję na wejście bez dodatkowych korekt ? Oraz z czego wynika że pomiar skacze sobie w tym zakresie, w programie jest opóźnienie 800ms i za każdym razem jest inna wartość
    Wykorzystuję wewnętrzne napięcie Vref=2.56 zdefiniowane w kodzie, schemat układu praktycznie taki sam jak na:
    http://mikrokontrolery.blogspot.com/2011/03/adc-prezentacja-wyniku-na-lcd.html
    z wyjątkiem, tego że wykorzystuję wewnętrzny oscylator 8MHz, układ składany na płytce stykowej


    [ATmega8][avr-gcc] - zakłamany pomiar napięcia ADC

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Poprawiłem tytuł na zgodny z regulaminem p. 3.1.15. oraz zasadami korzystania z działu mikrokontrolery.
    LordBlick
  • REKLAMA
  • #2 13355871
    tmf
    VIP Zasłużony dla elektroda
    Jeśli chcesz uzyskać stabilny pomiar napięcia to usypiaj procesor na czas pomiaru, na wejściu ADC zastosuj też filtr dolnoprzepustowy.
  • REKLAMA
  • #3 13355992
    2rs232
    Poziom 18  
    Cytat:
    Wykorzystuję wewnętrzne napięcie Vref=2.56 zdefiniowane w kodzie,

    Zmierz też jakie napięcie masz na pinie AREF, wewnętrzny Vref może trochę się różnić od nominalnego 2.56V.
  • REKLAMA
  • #4 13359854
    lol555
    Poziom 10  
    na nodze AREF zmierzone 2.68V, korekta w kodzie daje niewielką zmianę, o tym usypianiu procka muszę dopiero doczytać co i jak (domyślam się że uśpienie wyeliminuje te wahania), ale to dalej nie wyjaśnia dlaczego pomiar jest ok 0.1V mniejszy, a że układ ma docelowo mierzyć temperaturę to takie odstępstwo daje ok 2 *C błędu przy przeliczaniu temperatury, Dlatego mam problem co zrobić aby pomiar był dobry z dokładnością do pierwszego miejsca przynajmniej
  • #5 13359905
    BlueDraco
    Specjalista - Mikrokontrolery
    Napięcie odniesienia na ATmega ma b. duży rozrzut, więc raczej nie należy na nim polegać. ALbo użyj czujnika z wyjściem cyfrowym, albo zewnętrznego źródła odniesienia, do tego obowiązkowy kondensator i prosty filtr dolnoprzepustowy w oprogramowaniu - jedna linia kodu.
REKLAMA