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 i wbudowany przetwornik ADC

pysiorek1985 29 Maj 2009 20:14 4514 13
REKLAMA
  • #1 6591208
    pysiorek1985
    Poziom 10  
    Witam
    Mam pytanie związane z przetwornikiem analogowo-cyfrowym wbudowanym w mikroprocesorze Atmega8. W symulacji Bascom-AVR działał poprawnie jednakże w przypadku prawdziwego układu program nie działa. Na kanale ADC0 mam napięcie 1,6V. Pomimo tego napięcia wartość przetworzenia wynosi 0. Wykorzystuję wewnętrzne źródło odniesienia. Dzękuję za wszystkie rady.
    Poniżej przedstawiam układ wraz z pozostałymi elementami współpracującymi z mikroprocesorem oraz program sprawdzający działanie przetwornika.

    Atmega8 i wbudowany przetwornik ADC

    $regfile = "m8def.dat"
    $crystal = 8000000

    Config Adc = Free , Prescaler = Auto , Reference = Internal
    Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portd.7 , Db6 = Portd.6 , Db7 = Portd.5 , E = Portb.2 , Rs = Portb.1
    Config Lcd = 16 * 2

    Dim A As Word

    Start Adc

    Do
    A = Getadc(0)
    Cls
    Lcd "Cisnienie " ; A
    Wait 5
    Loop
  • REKLAMA
  • #2 6591360
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 6592887
    _Robak_
    Poziom 33  
    Jesli dajesz zrodlo odniesienia jako AVCC to nie podlaczasz juz nic do VREF.
  • #6 6595145
    pysiorek1985
    Poziom 10  
    Podłączyłęm zewnętrzne źródło odniesienia i widze, że przetwarza dane. W przypadku użycia licznika rzeczywiście lepiej uzyć tryb pracy przetwornika Single bo w trybie Free podczas działania licznika przetwarzanie nie odbywało się. Wielkie dzięki za dobre rady :) przydały się
  • REKLAMA
  • #7 6596391
    piotr5000
    Poziom 21  
    sprzętowo wykorzystujesz ADC3 czyli pin26 w uP ( podłączone wyjście Lm358)
    a czytasz ADC0 czyli pin23 w uP

    Jedyna prawidłowo odczytana wartość to 0
  • #8 6625280
    kubiaczek1982
    Poziom 12  
    Jeśli mogę sie dołączyć to jakie napięcie można maksymalnie podłączyć do wejście przetwornika?? 5V (napięcie zasilania uC) to max??
  • #9 6625315
    Brutus_gsm
    Poziom 25  
    Wyższe napięcie możesz podłączyć przez dzielnik napięciowy ;)
  • #10 6625364
    kubiaczek1982
    Poziom 12  
    czyli wiedząc że napięcie nie przekroczy pod żadnym pozorem 15V mogę zastosować :

    napięcie_mierzone--(rezystor_100k)--procek--(rezystor_ 10k)--masa ??

    Czy inne wartości rezystorów może??
  • REKLAMA
  • #11 6625879
    piotr5000
    Poziom 21  
    U mierzone ... 100k ....procek .... 47k .... masa .
    Um = Wo * 15,2867

    Um - napięcie mierzone [mV]
    Wo - wartość odczytana (0...1023 )

    Maksymalna wartość mierzona 15638 mV = 15,6 V
  • #12 6628538
    kubiaczek1982
    Poziom 12  
    W woli ścisłości chciałbym ustalić zależność:

    (wartość_obu_rezystorów * napięcie_max_dla_uC ) / rezystor_od_strony_masy = max_napięcie mierzone

    czyli mierzone -- 2200k -- procek -- 47 -- masa daje napięcie 239V (sieciowe + zapas) ??
  • #13 6628763
    piotr5000
    Poziom 21  
    Wzór OK , ale musisz pamiętać o tym , że napięcie w sieci jest przemienne , sinusoidalne . 230V to wartość skuteczna . jest ona = 0,707 * Umax .
    Umax = 1,41 * U
    Umax = 324,3 V .
    Bez znaczenia jest fakt czy podzielisz napięcie - wyprostujesz - zmierzysz , czy napięcie wyprostujesz - podzielisz zmierzysz.
    Musisz dać kondensator pomiędzy masę a wej ADC procesora . Bez niego " złapiesz " wartość w chwili gdy wartość napięcia sinusoidalnego będzie np = 0 albo =30V
    Dołączenie kondensatora daje uproszczenie pomiaru ( zakładamy , że przebieg napięcia jest idealnie sinusoidalny bez harmonicznych i zniekształceń ) musisz jednak odczytaną wartość pomnożyć przez 0,707 . Zastosuj jednak układ : prostownik , dzielnik , odczyt , dlatego że spadek napięcia na diodach prostowniczych ( 0,7 V ) będzie mały ( ok 0,2% ). PAMIęTAJ żE NA WSZYSTKICH ELEMENTACH WYSTąPI NAPIęCIE NIEBEZPIECZNE DLA żYCIA , POWINIENEś ZASTOSOWAć TRNSFORMATOR SEPARUJąCY KTóRY OBNIżY NAPIęCIE Np DO 24V ALBO 12 . Przy napięciu 24V diody wprowadzą błąd ok 3% musisz to już uwzględnić
  • #14 6628853
    kubiaczek1982
    Poziom 12  
    bardziej chodziło mi o sam wzorek czy dobrze załapałem, ale dzięki i za to sprostowanie. Może kiedyś sie przyda a nawet jak nie mnie to może komuś innemu.
REKLAMA