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

Atmega88 - prądy pinów, podwójny wyświetlacz 7s - czy ten schemat jest poprawny?

p.kaczmarek2 23 Sty 2015 21:45 2115 22
  • #1 14361467
    p.kaczmarek2
    Moderator Smart Home
    Witajcie moi drodzy.
    Uznałem, że zanim zacznę robić jakiś lepszy programator, pouczę się jeszcze z tym jaki mam. Postanowiłem uruchomić drugą cyfrę na moim wyświetlaczy 7 segmentowym.
    Czytałem trochę o ograniczeniach prądowych na artykule autorstwa dondu (któremu tu bardzo dziękuję za pomoc), ale mimo to mam pewne wątpliwości.

    1. Czy ten schemat jest poprawny? Z tego co tu widać, to bezpośrednio przez piny atmegi będzie tu przepływać dość duży prąd, czy to nie będzie problem?
    Atmega88 - prądy pinów, podwójny wyświetlacz 7s - czy ten schemat jest poprawny?
    2. A jeśli nie, to czy muszę zamiast bezpośrednio podłączenia pinów zastosować jakieś tranzystory?

    Od strony kodu oczywiście zamierzam bardzo szybko "przełączać" obie cyferki, tak, by wykorzystać tylko te 7 + 2 pinów do sterowania całym podwójnym segmentem wyświetlacza.

    z góry dziękuję za pomoc!
    Pomogłem? Kup mi kawę.
  • #2 14361498
    xamrex
    Poziom 28  
    Nie jest poprawny! i takie podłączenie może się skończyć źle dla uC
    Musisz zastosować tranzystor, gdyż zbyt duży prąd chcesz pociągnąć z uC
    Dodatkowo nie masz rezystorów ograniczających prąd diod.

    Vcc ma być podłączone do zasilania bezpośrednio, a nie przez rezystor!
  • #3 14361505
    Drake160
    Poziom 17  
    Atmega da radę wysterować te wyświetlacze, ale rezystory musisz dołożyć.
  • #4 14361525
    p.kaczmarek2
    Moderator Smart Home
    Znalazłem go w jakimś artykule o "elektronicznej kostce" na avr-tutorials i miałem nadzieję, że będzie dobry. Jak widać, nawet internet kłamie!

    Czyli trzeba zrobić tak:
    Atmega88 - prądy pinów, podwójny wyświetlacz 7s - czy ten schemat jest poprawny?
    jak podłączę te same 7 pinów do drugiej cyfry oraz dam jej osobny (drugi) tranzystor na inny pin to zadziała?
    Pomogłem? Kup mi kawę.
  • #5 14361547
    Drake160
    Poziom 17  
    W roli Q1 sugeruję zastosować tranzystor pnp.
  • #6 14362006
    Konto nie istnieje
    Konto nie istnieje  
  • #7 14362094
    dondu
    Moderator na urlopie...
    p.kaczmarek2 napisał:
    1. Czy ten schemat jest poprawny? Z tego co tu widać, to bezpośrednio przez piny atmegi będzie tu przepływać dość duży prąd, czy to nie będzie problem?

    Dlaczego nie spróbowałeś tego sam obliczyć skoro czytałeś o prądach pinów, itp. i miałeś wątpliwości? :)
    Śmiało spróbuj, a w razie błędów poprawimy Ciebie - to rozwijające ćwiczenie dające sporo doświadczeń.
  • #8 14365953
    p.kaczmarek2
    Moderator Smart Home
    1. Mój wyświetlacz ma wspólną anodę i wymaga zasilania 1.9V i 5mA na jeden segment.
    Zgodnie z http://kalkulator.majsterkowicza.pl/oblicz/rezystor_do_LED wartość rezystora jest 620 Ohm.
    Skoro przez jeden segment wyświetlacza popłynie prąd 5mA, to (w najgorszym wypadku, licząc razem z kropką) przez 8 segmentów popłynie 8*5mA = 40mA.
    W Datasheet Atmega jest napisane: "max DC Current Per I/O Pin: 40mA", więc w tym przypadku byłoby na styk z limitem.
    Czy tutaj mam rację?

    2. Ale załóżmy, że chciałbym troszkę prąd jednego segmentu zmniejszyć (będzie słabiej świecić). Na segment przypada 1.9V, więc na rezystorze musi wytracić się 3.1V (ogólnie jest 5V).
    R = U / I
    Było:
    620 = 3.1 / 0.005
    I tu mam trudność, co stanie się jak dam rezystor 1k? O ile spadnie napięcie na diodzie (segmencie) i prąd przepływający przez układ?

    Dążę do tego, by przez jeden segment przepływał prąd np 4mA, świecił ten segment słabiej, a przez cały wyświetlacz z zapalonymi 8 segmentami przepływało 8*4mA = 32mA, czyli mniej niż limit przypadający na pin wynoszący w tym przypadku 40mA. Mógłby ktoś wyjaśnić to? Coś czuję, że chyba bym musiał skorzystać z wykresu w datasheecie wyświetlacza, ale tam nie widziałem wykresu...

    Z kalkulatora wynika, że przy prądzie 3mA na diodzie rezystor jest właśnie koło 1kOhm...
    Pomogłem? Kup mi kawę.
  • #9 14366071
    BlueDraco
    Specjalista - Mikrokontrolery
    Czy to ma być wyświetlacz statyczny, czy dynamiczny (> 1 cyfra, segmenty zwarte). jeśli to pierwsze - tranzystor u góry jest zbędny. Jeśli to drugie - potrzebny jest w anodzie każdej cyfry tranzystor PMOS lub pnp.

    Albertb: oglądałem setki różnych wyświetlaczy, w tym takie "z duchami". W żadnym z nich "duchy" nie były spowodowane użyciem niewłaściwych elementów kluczujących (a były różne niezbyt fortunne), a wyłącznie błędami w oprogramowaniu, po których usunięciu "duchy" znikały. Czas przełączania tranzystora - to max. mikrosekundy, nawet przy wyprowadzaniu z głębokiego nasycenia pnp.
  • #10 14366105
    p.kaczmarek2
    Moderator Smart Home
    Nie znam tego podziału wyświetlaczy, ale ten ma dwie cyfry, i chyba ich piny nie są zwarte, mogę je podłączyć jak chcę, i chciałbym nim sterować jak na najprostszym schemacie z pierwszego postu.
    Oto informacje o tym wyświetlaczu:
    Atmega88 - prądy pinów, podwójny wyświetlacz 7s - czy ten schemat jest poprawny?
    Pomogłem? Kup mi kawę.
  • #11 14366130
    BlueDraco
    Specjalista - Mikrokontrolery
    Czyli w multipleksie - potrzebujesz dwóch tranzystorów PMOS w anodach, np. TSM2301CX, BSS83P, BSS84 lub coś podobnego.
  • Pomocny post
    #12 14366375
    Konto nie istnieje
    Konto nie istnieje  
  • #13 14366455
    Drake160
    Poziom 17  
    albertb napisał:
    BlueDraco napisał:
    Czas przełączania tranzystora - to max. mikrosekundy, nawet przy wyprowadzaniu z głębokiego nasycenia pnp.

    Tak, i to nie raz wystarcza do powstania tych duchów. Sprawdź ;-)
    A poza tym układ z tranzystorem NPN jest sprawniejszy.
    Trochę bo trochę, ale zawsze. Ziarnko do ziarnka ..
    Więc czemu rekomendować jego zmianę na pnp
    jeśli nie trzyma nas moc tranzystora ani napięcie zasilania?

    Albert


    Zbaczając trochę z tematu - Albert czy mógłbyś mi wyjaśnić czemu układ z npn będzie sprawniejszy od tego z pnp? Npn nie będzie pracował w nasyceniu bo jest w układzie wtórnika więc będzie się grzał jak sam wcześniej zauważyłeś. Jeśli się mylę to proszę mnie poprawić :)
  • Pomocny post
    #14 14366618
    Konto nie istnieje
    Konto nie istnieje  
  • Pomocny post
    #15 14366815
    BlueDraco
    Specjalista - Mikrokontrolery
    NPN się nie nasyci, więc będzie dawał zmienny spadek napięcia. Ja bym głosował za PMOSFET.
  • #16 14366930
    Drake160
    Poziom 17  
    Układ na jednym tranzystorze a my kombinujemy jakby to był element promu kosmicznego :) To ja proponuję N-Mosfet i pompa ładunkowa do wyzwalania bramki :)
  • Pomocny post
    #17 14367317
    Konto nie istnieje
    Konto nie istnieje  
  • #18 14376810
    p.kaczmarek2
    Moderator Smart Home
    Zrobiłem na tranzystorze BC (chyba 327, albo 237, sprawdzę i zedytuję post) i rzeczywiście działa, ale jest przy dwóch cyfrach powstawanie duchów.

    Próbowałem to naprawić programowo dodając przerwe 2-3 msek między zapalaniami ale i tak wciąż lekko widać niepożądane efekty.

    Jeden MOSFET typu P może zastąpić lepiej tego wolnego BC? Jakie powinien mieć parametry, tzn. napięcia itp? czym się kierować w doborze?
    Pomogłem? Kup mi kawę.
  • Pomocny post
    #19 14376822
    BlueDraco
    Specjalista - Mikrokontrolery
    Pokaż oprogramowanie! Zapewne to tam jest błąd, a nie w elektryce.
  • #20 14376841
    p.kaczmarek2
    Moderator Smart Home
    Robię w taki sposób (kod przepisany na brudno bo programuję na starym PC z LPT bez internetu):


    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
    [/code]
    Pomogłem? Kup mi kawę.
  • Pomocny post
    #21 14377420
    BlueDraco
    Specjalista - Mikrokontrolery
    No i mamy całą serię błędów. Po pierwsze - nigdy nie robi się odświeżania inaczej niż w przerwaniu timera. Po drugie - podejrzewam, że pod nazwą "segment" występuje u Ciebie cyfra. Ciekawe, jak nazywasz segmenty.

    Nie przepisuj kodu na brudno - pokaż, jaki jest naprawdę. W każdym przerwaniu timera należy kolejno:
    - wyłączyć poprzednią cyfrę (lub wszystkie cyfry - niekiedy prościej,
    - ustawić sterowanie segmentów nowej cyfry
    - włączyć nową cyfrę

    Na AVR musi to zadziałać bez żadnych dodatkowych opóźnień, chyba, że w bazie tranzystora masz rezystor poniżej 500R.
  • #22 14377445
    p.kaczmarek2
    Moderator Smart Home
    BlueDraco napisał:
    Po pierwsze - nigdy nie robi się odświeżania inaczej niż w przerwaniu timera.

    Prawda, dopiero muszę o tym poczytać, jakieś linki?


    BlueDraco napisał:
    Po drugie - podejrzewam, że pod nazwą "segment" występuje u Ciebie cyfra. Ciekawe, jak nazywasz segmenty.

    Rzeczywiście, ale nie nazywam ich wcale, po prostu mam w zaleznosci od podanej cyfry switcha i w niej gasze/zapalam odpowiednie z 7 pinów.


    BlueDraco napisał:
    Na AVR musi to zadziałać bez żadnych dodatkowych opóźnień, chyba, że w bazie tranzystora masz rezystor poniżej 500R.

    Zapomniałem o tym rezystorze - bramki były podłączone bezpośrednio do pinów.
    Naprawię ten błąd, spróbuję z przerwaniami, i w razie czego napiszę dalej. Tylko czym grozi pominięcie tego rezystora?
    Pomogłem? Kup mi kawę.
  • #23 14377467
    BlueDraco
    Specjalista - Mikrokontrolery
    Przy PMOS może nie być rezystorów, przy pnp - muszą być.

    Przykłady multipleksowania znajdziesz wszędzie - na tym forum dwa razy w tygodniu. Nie dalej jak dzisiaj kol. TMF odesłał adepta do przykładów ze swojej książki.
REKLAMA