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] Jak poprawnie podłączyć diody LED do Atmega8, by świeciły jasno?

ShadowDancer 19 Lis 2011 21:33 3000 10
REKLAMA
  • #1 10158210
    ShadowDancer
    Poziom 10  
    Posty: 45
    Witam,
    Moje pierwsze starcie z mikrokontrolerami. Wykonałem prosty układ, tak jak na tym schemacie: [Atmega8] Jak poprawnie podłączyć diody LED do Atmega8, by świeciły jasno?

    Z tym, że do portów B0-B5 podpiąłem zwykłe LED-y z opornikami 330omów.
    Problem jest taki, że jedna z tych diod świeci jasno, a pozostałe 5 ciemno, nie mam pojęcia dlaczego (mimo, że mają taki sam opornik). Boję się dać mniejszy rezystor, aby nie spalić µC. Jak podpiąć te diody, aby świeciły jasno?

    Dopiero zaczynam zabawę z mikrokontrolerami, więc mogłem popełnić jakiś oczywisty błąd, dlatego załączam 2 zdjęcia.
    Zasilacz:
    [Atmega8] Jak poprawnie podłączyć diody LED do Atmega8, by świeciły jasno?
    Układ:
    [Atmega8] Jak poprawnie podłączyć diody LED do Atmega8, by świeciły jasno?
  • REKLAMA
  • #2 10158268
    Zocha24
    Poziom 21  
    Posty: 386
    Pomógł: 44
    Ocena: 32
    Pokaż program, może zamiast ustawić stan wysoki ustawiasz pullup-y
  • Pomocny post
    #3 10158351
    snnaap
    Poziom 25  
    Posty: 677
    Pomógł: 83
    Ocena: 10
    Program ważna rzecz, ale z tego co widać anodę diody podłączyłeś do uK a katodę do masy, czyli niby prawidłowo a jednak nie. Uk mają to do siebie eż ich wydajność prądowa na port jest "mała".
    W przypadku Atmega8 absolutnie max prąd na pin wynosi 40mA.
    Diody powinny być podłączone odwrotnie czyli plusem do zasilania a minusem do portów uK. Wtedy dioda zapala się po podaniu stanu niskiego na danym pinie. Obecne podłączenie diod może grozić uszkodzeniem portu.
  • REKLAMA
  • #4 10158554
    ShadowDancer
    Poziom 10  
    Posty: 45
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    snnaap: Możesz rozwinąć? Co znaczy uK. I dlaczego grozi przepalniem portu? (możesz podać jakieś np. obliczenia, czy jakieś inne źródło? Dioda ma napięcie 2.5V i natężenie 20mA).
  • Pomocny post
    #5 10158574
    Zocha24
    Poziom 21  
    Posty: 386
    Pomógł: 44
    Ocena: 32
    Masz błąd bo tylko jeden pin ustawiasz jako wyjście DDRB=32; powinno być DDRB=0xFF; to ustawia wszystkie piny jako wyjście
  • #6 10158726
    ShadowDancer
    Poziom 10  
    Posty: 45
    Zocha: Faktycznie, powinno być 31, dzięki. Dziwi mnie to, że gdy diody były podpięte przez rezytor do masy (tak jak na początku), to "świeciły" (musiałem zgasić światło żeby coś widzieć, ale jednak). Świeciła oczywiście tylko ta jedna, która miała podłączone wyjście.

    Obróciłem diody, rezystory podpiąłem do zasilania i w programie zanegowałem zmienną - teraz działa jak złoto, dzięki wielkie.

    Ciekawi mnie jednak odpowiedź na pytania zadane w poprzednim poście.
  • REKLAMA
  • #7 10158728
    Fredy
    Poziom 27  
    Posty: 915
    Pomógł: 117
    Ocena: 28
    Tak patrzę na ten Twój schemat i mi coś nie pasuje. Jeśli to jest ATMEGA8 to napewno ta piniologia jest nie właściwa. Napewno na pinach 4 i 6 nie ma tam zasilania. Reset jest na 1 nodze a nie na 29.
  • REKLAMA
  • #8 10158739
    ShadowDancer
    Poziom 10  
    Posty: 45
    Na schemacie może jest w innej obudowie, na płytce podpiąłem wszystko wg datasheet.
  • #9 10158748
    Fredy
    Poziom 27  
    Posty: 915
    Pomógł: 117
    Ocena: 28
    Diody świeciły bo płynął bardzo mały prąd przez wewnętrzny pull up. Tam jest rezystor około 50K.
  • #10 10158764
    Zocha24
    Poziom 21  
    Posty: 386
    Pomógł: 44
    Ocena: 32
    uK to mikrokontroler, a jeśli chodzi o przepalenie portu to porównaj wydajność prądową piny dla stanu niskiego i dla wysokiego. dla niskiego o ile dobrze pamiętam ok 40mA a dla wysokiego to 15mA ale musisz doczytać co do wartości bo nie jestem pewien
  • #11 10158858
    ShadowDancer
    Poziom 10  
    Posty: 45
    Teraz wszystko jasne, dziękuje bardzo :)

Podsumowanie tematu

✨ Użytkownik miał problem z podłączeniem diod LED do mikrokontrolera Atmega8, gdzie jedna dioda świeciła jasno, a pozostałe słabo. Po analizie okazało się, że diody były podłączone odwrotnie, co groziło uszkodzeniem portu. Zmiana podłączenia diod (anoda do zasilania, katoda do portów) oraz poprawa kodu (ustawienie wszystkich pinów jako wyjścia) rozwiązały problem. Dodatkowo, wyjaśniono, że diody mogły świecić z powodu małego prądu płynącego przez wewnętrzny rezystor pull-up.
Wygenerowane przez model językowy.
REKLAMA