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 - ADC - Niskie wartości przy pomiarze napięcia 0-5V, co robię źle?

lollko 29 Sty 2013 12:38 3087 14
REKLAMA
  • #1 11857885
    lollko
    Poziom 8  
    Witam,
    Próbuję zrobić układ mierzący napięcie w zakresie 0-5V i wysyłający wynik na COMa.
    Napięcie odniesienia ustawiłem na wew. AREF i do pinu ADC1 podłączyłem dzielnik napięcia z dwoma rezystorami 330, więc jeśli dobrze myślę to 5V/2=2.5 i (2.5/2.56)*255=249 i taki wynik powinno mi wysyłać na coma a wynik jaki otrzymuję gdy na zasilaczu ustawiam 5V to 53. Czy gdzieś jest błąd w moim rozumowaniu?
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 11858073
    BlueDraco
    Specjalista - Mikrokontrolery
    A jaka jest rezystancja wewnętrzna ADC? Podejrzewam, że nie większa niż 100 k. Dzielnik powinien mieć rezystancję znacznie mniejszą niż wejściowa ADC. Kondensator na wejściu trochę poprawia sytuację, bo wirtualnie zmniejsza rezystancję. Włóż 2 razy po 30 k i zobacz, co wyjdzie.

    Poza tym bezsensownie zamęczasz procesor przerwaniami z ADC, no i czytasz rejestr ADCH zamiast ADC (tak dawno programowałem AVR, że już nie pamiętam, jak ten wynik jest rozmieszczony - sprawdź).
  • #3 11858655
    lollko
    Poziom 8  
    Przepraszam wpisując wartośc rezystorów pomyliłem się maja one po 330 a nie 330k. Jak dałem większe po 10k to zaczeło mi pokazywać 2 a jak dałem mniejsze 70 to pokazało mi -117 na tych ustawionych 5V na zasilaczu.

    Ustawiłem na wyrównanie do lewej wyniku i odczytuje tylko ten jeden rejestr ADCH w artykułach które czytałem wszyscy tak robili lub odczytywali jeszcze ADCL jak zależało im na 10 bitowym odczycie a mnie wystarcza 8 bitowy. Nikt chyba nie odczytywał wyniku pomiaru z rejestru ADC
  • #4 11858686
    BlueDraco
    Specjalista - Mikrokontrolery
    Zacznij od zmierzenia napięcia na wejściu ADC1.
  • REKLAMA
  • #5 11858806
    lollko
    Poziom 8  
    Jeśli dobrze mierzę to jest na nim 0,5 V(mierze między ADC1 a GND atmegi) więc błąd będzie w podłączeniu, prawda?
    Tylko co źle podłączyłem.
    Schemat podłączenia wygląda tak, chyba dobrze go narysowałem.
    atmega8 - ADC - Niskie wartości przy pomiarze napięcia 0-5V, co robię źle?
  • #6 11858859
    BlueDraco
    Specjalista - Mikrokontrolery
    Przy poprawnych wartościach rezystorów (np. 10k), na wejściu ADC1 miałbyś połowę tego, co podajesz na dzielnik, czyli 2.5 V. Być może gdzieś nie ma połączenia - obmierz, to zobaczysz.
  • #7 11858956
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #8 11859012
    lollko
    Poziom 8  
    voytaschec napisał:
    Ze schematu wynika, że masa procesora AGND jest podłączona do GND, a napięcie próbujesz mierzyć w odniesieniu do odizolowanej od reszty układu masy AGND (konflikt oznaczeń, ale jak spojrzysz na schemat to domyślisz się o co mi chodzi). Jest tak faktycznie czy w rzeczywistości te masy masz połączone? Bo jeśli są odizolowane to taki pomiar się nie uda.


    GND i AGND są połączone. Mam tak AGND na płytce stykowej jest połączona z masą układu i jedna z nóżek z dzielnika jest wpięta w linię AGND na płytce i kabelek do którego podłączam - zasilacza.

    Dodano po 18 [minuty]:

    Wygląda to mniej więcej tak.
    atmega8 - ADC - Niskie wartości przy pomiarze napięcia 0-5V, co robię źle?
  • REKLAMA
  • #10 11866956
    Witek76
    Poziom 24  
    Kol. BlueDraco już napisał że wartości oporników w dzielniku są za duże. Zastosuj oporniki po 10k i wtedy zmierz napięcie na ADC. W pierwszym poście piszesz że wartości oporników maja po 330k, a na schemacie rysujesz 330 (Ω ?).
  • #11 11921905
    lollko
    Poziom 8  
    Witek76 napisał:
    Kol. BlueDraco już napisał że wartości oporników w dzielniku są za duże. Zastosuj oporniki po 10k i wtedy zmierz napięcie na ADC. W pierwszym poście piszesz że wartości oporników maja po 330k, a na schemacie rysujesz 330 (Ω ?).


    Przecież sprostowałem w swoim drugim poście, że w pierwszym poście pomyliłem się i faktyczna wartość to 330Ω a nie 330kΩ.

    dondu napisał:
    1. Na schemacie (pewnie tylko tam) masz pomyłkę - rezystor na RESET do Vcc a nie do masy.
    2. Pokaż zdjęcia.


    Faktycznie zrobiłem błąd na schemacie.

    Wszystko było dobrze podłączone. Okazało się, że miałem uszkodzone dwa porty. Ten na którym mierzyłem i ten obok na którym sprawdzałem czy to nie wina portu.
  • #12 11922629
    Konto nie istnieje
    Poziom 1  
  • #13 11922889
    lollko
    Poziom 8  
    emarcus napisał:
    lollko napisał:


    Wszystko było dobrze podłączone. Okazało się, że miałem uszkodzone dwa porty. Ten na którym mierzyłem i ten obok na którym sprawdzałem czy to nie wina portu.


    Nie, To nie była wina portu, ale tego kto je spalił.
    Nie wszystko było dobrze podłączone(!)...
    Chocby nawet popatrz na ten diagram zamieszczony tu:
    https://www.elektroda.pl/rtvforum/topic2484422.html#11859012
    - jest błędny...
    Nie znaczy to że akurat to było przyczyna spalenia portu, który mógł byc uszkodzony przy innych okazjach i równie 'poprawnych' podłączeniach.

    e marcus


    Mógłbyś napisać dlaczego jest on błędny, żebym już więcej nie popełnił takiego błędu.
  • #14 11925155
    Konto nie istnieje
    Poziom 1  
  • #15 11925560
    lollko
    Poziom 8  
    Muszę w takim razie przeprosić za wprowadzenie w błąd. Kreska którą wziąłeś za zwarcie ADC1 oraz AGND miała oznaczać bok atmegi (rysując to musiałem zasugerować się kiedyś widzianym w jakimś innym temacie podobnym rysunkiem) z której wychodzą piny.
REKLAMA