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

AVR/ATmega8/C - uC nie odpowiada na przycisk i nie działa prawidłowo

Kertoip95 26 Paź 2014 10:22 1431 12
REKLAMA
  • #1 14074303
    Kertoip95
    Poziom 10  
    Zrobiłem układ, który ma sterować 18 diodami LED, 8mm za pomocą ATmegi8. Rezystory do LEDów mają po 100Ω. Gdy wciskałem S1 miała następować zmiana programu diód, np miganie. Po złożeniu wszystkiego i sprawdzeniu czy wszystkie LEDy działają było ok. Później przy włączaniu i odłączaniu zasilania niektóre się gasiły, a później po tej samej operacji włączały, niektóre w ogóle nie chciały się zapalić. Zmiana trybu też nie działała, nie było efektu.

    Oto schemat:

    AVR/ATmega8/C - uC nie odpowiada na przycisk i nie działa prawidłowo
  • REKLAMA
  • #2 14074344
    Krzysiek2468
    Poziom 11  
    AREF powinno podłączać się ceramicznym 100uF do masy. Sprawdź dokładnie czy nie ma zwarć i czy switch jest dobry.
  • #3 14074356
    Kertoip95
    Poziom 10  
    Ale czy AREF mógłby aż takie zmiany uczynić? Switch jest sprawny.
  • REKLAMA
  • #4 14074358
    Krzysiek2468
    Poziom 11  
    10uF- poprawka
  • REKLAMA
  • #5 14074359
    czolgowy
    Poziom 11  
    Jeszcze przydałby się program. Brak kondensaorów filtrujących przy Atmedze. Jeśli zaświeciłeś wszystkie 18 LED'ów na raz to na 99% upaliłeś procesor. Przy 100 om'ach ledy pobiorą zbyt duży prąd jak na wyjścia mikrokontrolera.
  • #6 14074384
    Krzysiek2468
    Poziom 11  
    Nie powinno wiele zmieniać, ale dobrym przyzwyczajeniem jest podłączyć wszystko tak jak mówi nota.
    Spróbuj wgrać zwyczajne mruganie jedna diodą żeby sprawdzić czy uC jest caly, a później jeszcze raz program sterujący diodami. Może się wysypał...
  • #7 14074394
    Kertoip95
    Poziom 10  
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    [/code]

    Na płytce kondensatory filtrujące są blisko pinów zasilania, jeśli o to chodzi jest ok. Czyli muszę albo zmienić LED'y albo rezystory. Możliwe jest to, że przez duży pobór prądu napięcie spadało i przez to na pinie PB6 nie pojawiała się logiczna 1?
  • #8 14074461
    czolgowy
    Poziom 11  
    Zamien rezystory na min 500 om. W zależności jeszcze od rodzaju diody (jaki spadek napięcia) będziesz miał ok 5 mA = 90 mA total. Przy 100 omach pracujesz na ok. 25 mA (zakladając 2,5V spadku) co jest za dużo jak na diody. Zwykle max to 20 mA przy pracy ciągłej.
  • #9 14074516
    Kertoip95
    Poziom 10  
    Tylko tutaj zaczyna się problem z mocą ich świecenia, no ale innego wyjścia nie ma. Jak skończę zmiany dam znać.
  • REKLAMA
  • Pomocny post
    #10 14074592
    czolgowy
    Poziom 11  
    Do testów słabsze świecenie wystarczy. Potem niestety zaczynają się schody. Prąd max dla jednego pinu może być 40 mA, ale już dla pinu zasilania tylko max 300 mA, więc trzeba tymi 300 mA trzeba będzie "obdzielić" piny. Napisz dokładnie jaki masz mikrokontroler (całe oznaczenie).
  • #11 14074662
    Kertoip95
    Poziom 10  
    ATmega8A-PU. Wychodzi wtedy ~16mA na pin + żeby udało się wzbudzić stan wysoki na PB6. RST jest podciągnięty z VCC przez 10k.
  • Pomocny post
    #12 14075147
    piotrva
    VIP Zasłużony dla elektroda
    Ehh, przycisk zwiera Ci do zasilania (logiczne 1), natomiast jeśli jest puszczony to na pinie panuje stan nieustalony (oczekujesz, że wtedy będzie tam zero woltów -> logiczne 0 - tak nie jest co możesz zweryfikować mierząc napięcie na tym pinie względem GND i VCC - paradoksalnie za każdym razem przy puszczonym przycisku otrzymasz pomiar zbliżony do 0V)

    Rozwiązania:
    1. Podłączyć przycisk, tak aby zwierał do masy i zmodyfikować program, aby oczekiwał na logiczne 0 oraz włączał wewnętrzny rezystor podciągający pin do zasilania
    lub
    2. Do aktualnego układu dodać rezystor rzędu 10k łączący pin PB6 z masą

    https://www.google.pl/search?q=avr+przyciski
  • #13 14081526
    Kertoip95
    Poziom 10  
    Dzięki wszystkim za pomoc, podciągnąłem PB6 do masy, i zmieniłem rezystory na 470om i wszystko działa tak jak powinno.
REKLAMA