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

Multipleksowe sterowanie wyswietlaczem 7 seg na 12V

zdzbia 12 Mar 2012 00:16 3788 18
REKLAMA
  • #1 10665773
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    Witam.
    Zaprojektowałem zegar na atmega8, który wyświetla również sekundy. Wyświetlacze są sterowane multipleksowo przy pomocy driverów ULN2003, a anody za pomocą kluczy na tranzystorach PNP. Wszystko działa pięknie... jeżeli mikrokontroler i wyświetlacze zasilane są napięciem 5V. Posiadam duże wyświetlacze, ale na napięcie 12V... i tu mam problem. Układ nie działa jeżeli emitery kluczy tranzystorowych podłącze do napięcia 12V, a atmega8 zasilana jest napięciem 5V. Dlaczego tak się dzieje? Czy ktoś miał taki sam problem i go rozwiązał? Proszę o pomoc.
  • REKLAMA
  • #2 10665791
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Bo źle zaprojektowałeś układ. Załącz schemat. Zapewne pociągnąłeś bazy tych tranzystorów bezpośrednio do wyjść atmegi i tranzystory są cały czas załączone.
  • REKLAMA
  • #3 10665829
    hotdog
    Poziom 26  
    Posty: 1106
    Pomógł: 95
    Ocena: 108
    excray napisał:
    Bo źle zaprojektowałeś układ. Załącz schemat. Zapewne pociągnąłeś bazy tych tranzystorów bezpośrednio do wyjść atmegi i tranzystory są cały czas załączone.


    Dokładnie, niezależnie czy podasz na bazę 5V czy 0V tranzystor i tak jest otwarty (prąd płynie, ponieważ na emiterze masz 12V).
  • #4 10666023
    jarekz_2
    Poziom 16  
    Posty: 138
    Pomógł: 18
    hotdog napisał:
    (...)Dokładnie, niezależnie czy podasz na bazę 5V czy 0V tranzystor i tak jest otwarty (prąd płynie, ponieważ na emiterze masz 12V).

    Do sterowania anod polecam układ Toshiba TD62783.
  • REKLAMA
  • REKLAMA
  • #6 10666426
    tmf
    VIP Zasłużony dla elektroda
    Posty: 14318
    Pomógł: 2090
    Ocena: 2203
    No i nie zadziała, bo baza ciągle jest spolaryzowana ujemnie względem emitera i tranzystor jest otwarty. Musisz zastosować dwa tranzystory, jeden sterujący LED i drugi sterujący tym tranzystorem - to ze względu na ochronę pinu IO przed napięciem >Vcc.
  • #7 10666930
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    "No i nie zadziała, bo baza ciągle jest spolaryzowana ujemnie względem emitera i tranzystor jest otwarty. Musisz zastosować dwa tranzystory, jeden sterujący LED i drugi sterujący tym tranzystorem - to ze względu na ochronę pinu IO przed napięciem >Vcc."

    A możesz podrzucić rysunek jak te tranzystory ze sobą podłączyć i z całym układem? Będę bardzo wdzięczny. Raz już coś takiego zbudowałem na dwóch tranzystorach i sterowałem pojedynczą diodą LED. Ładnie to działało, ale tylko na tej diodzie, po podłączeniu do wyświetlacza i zastosowania sterowania multipleksowego... lipa. Nie działało. Pewnie źle to wymyśliłem.
  • #8 10667021
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    Te tranzystory podłącz przez drugiego ULN2803 dodając jeszcze opornik pomiędzy bazę i emiter tranzystorów, nie powiem jakiej wartości mają być te oporniki, bo nie podałeś jakie są te oporniki które zastosowałeś na schemacie. Jedynie w programie będziesz musiał zanegować sterowania tymi anodami, ponieważ ULN wprowadza dodatkową negację.
  • #9 10667145
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    GienekS napisał:
    Te tranzystory podłącz przez drugiego ULN2803 dodając jeszcze opornik pomiędzy bazę i emiter tranzystorów, nie powiem jakiej wartości mają być te oporniki, bo nie podałeś jakie są te oporniki które zastosowałeś na schemacie. Jedynie w programie będziesz musiał zanegować sterowania tymi anodami, ponieważ ULN wprowadza dodatkową negację.


    Wejścia ULN podłączam do mikrokontrolera, a wyjścia do tranzystorów?

    Dodano po 1 [godziny] 37 [minuty]:

    Wymyśliłem coś takiego:
    Co tu należy zmienić by to zadziałało?
    Załączniki:
    • Multipleksowe sterowanie wyswietlaczem 7 seg na 12V 2T.jpeg (14.37 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #10 10667582
    PiotrPitucha
    Poziom 34  
    Posty: 2658
    Pomógł: 201
    Ocena: 424
    Witam
    Jest jeszcze jedno proste rozwiązanie o ile Twoje 12V jest w miarę stabilne.
    W zasadzie nie musisz zmieniać układu tylko w szereg z rezystorami w bazie daj diody Zenera na 9V, gdyby wyświetlacze lekko smużyły to z baz tranzystorów do 12V daj rezystory rzędu 10K.
    Piotr
  • #12 10668090
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    tmf napisał:
    zdzbia: schemat jest poprawny, tego ULN możesz wyrzucić bo nic nie wnosi.

    Nawet musi wyrzucić. Bo inaczej nie wysteruje bazy NPNa. Baza przez opornik bezpośrednio do PB.0
  • #13 10668783
    GienekS
    Poziom 32  
    Posty: 1971
    Pomógł: 139
    Ocena: 15
    ULN-na możesz zostawić bo jest tylko jeden. Wywalić musisz te tranzystory n-p-n bo właśnie taki jest w ULN-nie (no prawie taki). Lepiej dać 1-go ULN-na niż sześć tranzystorów i oporników.
    Jeszcze najważniejsza sprawa. Ten ULN, który będzie sterował te tranzystory p-n-p musisz mu zasilanie podłączyć do tych 12V
  • #14 10669524
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Bez sensu taki miks. Mocny ULN tylko po to aby sterować bramkami PNP. Bardziej się przyda przy sterowaniu katodami. Do anod lepiej od razu dać UDN2981..2. O ile tych wyświetlaczy jest więcej. Bo dla 2-óch zdecydowanie lepiej na tranzystorach.
  • #15 10669611
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    excray napisał:
    Bez sensu taki miks. Mocny ULN tylko po to aby sterować bramkami PNP. Bardziej się przyda przy sterowaniu katodami. Do anod lepiej od razu dać UDN2981..2. O ile tych wyświetlaczy jest więcej. Bo dla 2-óch zdecydowanie lepiej na tranzystorach.


    Podłączyłem UDN2981 do anod wyświetlaczy bez żadnych dodatkowych tranzystorów i oporników... nie działa... idzie się załamać :cry: . Eksperymentuje na 4 wyświetlaczach, docelowo ma ich być sześć.
  • #16 10670305
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    To znaczy że źle podłączyłeś. Pamiętałeś o zasilaniu na Vs?
  • #17 10672159
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    excray napisał:
    To znaczy że źle podłączyłeś. Pamiętałeś o zasilaniu na Vs?


    Sprawdziłem wszystkie połączenia i jest ok. Napięcie Vs=12V do UDN też podłączyłem.
    Odłączyłem 3 wyświetlacze i pozostawiłem tylko jeden... zadziałało, po podłączeniu dwóch wyświetlaczy jeszcze prawidłowo wyświetla cyfry na obu wyświetlaczach, ale segmenty, które nie powinny świecić lekko się żarzą. Przy podłączeniu trzech wyświetlaczy... tragedia, na wyświetlaczach świecą segmenty, ale nie ma to nic wspólnego z cyframi... chyba dam sobie już spokój z tymi wyświetlaczami i zrobię ten zegar na diodach LED. Tylko zaopatrzę się w dobry zasilacz na 5V i potężny do niego radiator...
  • Pomocny post
    #18 10672337
    excray
    Poziom 41  
    Posty: 5500
    Pomógł: 739
    Ocena: 656
    Więc sterowanie działa. Poszukaj błędów w kodzie.
  • #19 10672433
    zdzbia
    Poziom 11  
    Posty: 19
    Ocena: 16
    Kod programu:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Może ktoś wychwyci jakiś błąd? Ja nie dam rady...

    Dodano po 28 [minuty]:

    Znalazłem :D . Działa.
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Dziękuje wszystkim za pomoc i sugestie, które mi pomogły rozwiązać ten problem.

Podsumowanie tematu

✨ Użytkownik zaprojektował zegar na mikrokontrolerze ATmega8 z wyświetlaczami 7-segmentowymi, które są sterowane multipleksowo. Problem pojawił się przy zasilaniu wyświetlaczy napięciem 12V, podczas gdy mikrokontroler działa na 5V. Użytkownicy wskazali, że tranzystory PNP są cały czas załączone z powodu niewłaściwego podłączenia bazy do wyjść ATmega. Sugerowano zastosowanie układów ULN2003 i UDN2981 do sterowania, a także dodanie diod Zenera dla stabilizacji napięcia. Po kilku próbach z różnymi konfiguracjami, użytkownik zauważył, że przy podłączeniu większej liczby wyświetlaczy segmenty, które nie powinny świecić, lekko się żarzą. Ostatecznie zasugerowano, aby skupić się na błędach w kodzie programu, który również został przedstawiony.
REKLAMA