Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

atmega8 - Niestabilne działanie wejść w mikrokontrolerze

SpeedFightMAN 09 Sie 2013 22:31 867 2
  • #1 09 Sie 2013 22:31
    SpeedFightMAN
    Poziom 6  

    Witam!
    Jakieś dwa lata temu kupiłem sobie atmegę 8 i programator stk200, i chciałem ten zestawik jakoś zaprogramować, ale z powodu braku odpowiedniej wiedzy, źle podłączałem zasilanie i programator co często kończyło się mocnym nagrzaniem procka. Pomyślałem że kasa poszła w błoto, ale ostatnio znowu zachciało mi się pobawić elektroniką. Po przeszukaniu internetu i spędzeniu wielu godzin na testowaniu udało mi się zaprogramować za pomocą starego komputera migającą diodę. Od razu postanowiłem podłączyć jakiś przycisk, ale tu już jest problem, bo kod do bascoma pobrałem z neta, tylko zmieniłem piny na te co ja mam. Efekt był bardzo dziwny, bo dioda miała się zapalać kiedy kliknę jeden przycisk a gasnąć gdy klikam drugi. Reakcja diody była następująca: bez dotykania niczego zgasała i zapalała się w nierównych odstępach czasu. Gdy klikałem przycisk czasem jeden działał, ale drugi działał z wielkim opóźnieniem (jeśli w ogóle). Próbowałem wielu jak najprostszych kombinacji w programie, ale nadal to samo. Testowałem różne piny i różne diody, ale nadal nic. Jak zrobię program na miganie diod to migają że aż miło.
    Dołączam kod z bascoma (to nie jest jedyna wersja jaką testowałem)

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    dołączam także bardzo uproszczony schemat zrobiony w paintcie

    atmega8 - Niestabilne działanie wejść w mikrokontrolerze

    Atmega jest ofiarą wielokrotnego przegrzania (aż parzyło) i nawet się nie spodziewałem że ruszy bo myślałem że spalona

    0 2
  • #2 09 Sie 2013 22:41
    mietekn
    Poziom 35  

    Pomiędzy piny które służą do przełączania a masę daj dodatkowe rezystory (np 10 KΩ).

    0
  • Pomocny post
    #3 09 Sie 2013 22:52
    piotrva
    Moderator na urlopie...

    Ehh, mity i mityczne rady.
    Procesory AVR są "przystosowane" niejako do "podłączania przycisków" tak, aby zwierały do masy. Procesor ma wewnętrzne rezystory podciągające, które aktywujemy konfigurując dany pin jako wejście (Config PinX.N = Input) oraz potem wpisując 1 do odpowiedniego bitu rejestru wyjściowego (PortX.N = 1).

    Poza tym, błagam, używajcie jakiegoś Eagle/Proteus do schematów, a nie konkurujcie z Picasso.

    I ponadto - amegę mimo wszystko włożyłbym do pudełka "Potencjalnie uszkodzone" - nie wiadomo co się w środku podpiekło i potem będziesz się dziwił innym wybrykom kostki.

    0