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.

Wyświetlacz LED 16x16 z czterech matryc

Carabus 15 Gru 2013 19:09 2070 5
  • #1 15 Gru 2013 19:09
    Carabus
    Poziom 2  

    Witam forumowiczów.
    Jestem studentem informatyki i jako projekt z przedmiotu Mikrokontrolery chciałbym zrobić wyświetlacz 16x16 złożony z czterech dwukolorowych matryc 8x8 i sterowany z płytki ewaluacyjnej STM32F0DISCOVERY. Oprócz wyświetlacza będą też przyciski i całość ma być swego rodzaju grą na której będzie można grać w Tetris, Snake i może coś jeszcze.
    O ile z zaprogramowaniem samego mikrokontrolera raczej spokojnie sobie poradzę, to z elektroniki jestem dość zielony, choć starałem się trochę uzupełnić swoją wiedzę czytając między innymi kilka wątków na tym forum.

    Jak na razie wymyśliłem coś takiego: (schemat nieaktualny)

    Spoiler:
    Wyświetlacz LED 16x16 z czterech matryc


    Mój plan zakłada że w danym momencie aktywna będzie jedna kolumna i wtedy na 16 wierszy (będących anodami) wysyłam równolegle sygnał z 16 portów mikrokontrolera i kontroluję naraz 16 diod.
    Kolumnę wybieram za pomocą demultiplekserów 4 do 16. Jeden demultiplekser kontroluje 16 kolumn zielonych, a drugi 16 kolumn czerwonych. Który demultiplekser jest w danym momencie aktywny wybieram za pomocą linii PB8 i PB9, które sterują dwoma tranzystorami. Jeśli tranzystor jest aktywny to prąd przepływa przez diody następnie przez demultiplekser przez tranzystor i do masy.
    W przeciwnym przypadku tranzystor blokuje przepływ prądu.

    A teraz pytania i wątpliwości:
    1. Czy podłączenie cyfrowego demultipleksera w ten sposób w ogóle ma sens? Tzn czy on zwiera wejście z jednym z 16 wyjść i może wtedy puścić prąd wstecz?
    Bo coś mi się wydaje że to nie tak działa i dopiero na każdym z tych 16 wyjść będę musiał mieć ten tranzystor który łączy z masą, czy tak?
    2. Po narysowaniu schematu jeszcze doczytałem, że układ 74HC154 daje na wskazane wyjście sygnał niski a nie wysoki, więc chyba i tak potrzebne będą tranzystory na wszystkich wyjściach.
    3 Jakie zastosować tranzystory? A jeśli potrzebuję ich 32 to jakie układy scalone z nimi ?
    4. Czy gdzieś trzeba wstawić rezystory ograniczające prąd? Wyczytałem że porty mikrokontrolera dają prąd 25mA, a diody w matrycy wytrzymują 30mA, więc miałem nadzieję że nie trzeba rezystorów, ale pewnie się mylę.
    5. Czy jak każda kolumna diod będzie włączona tylko przez 1/32 czasu to w ogóle będzie coś widać? Co zrobić jeśli nie?
    6. Jakie matryce LED wybrać?
    Water-clear czy dyfuzyjne? Wydaje mi się że dyfuzyjne bo jak się będzie używało całego tego wynalazku to wyświetlacze powinny być widoczne z różnych kątów.
    7. Którą jasność LED wybrać:
    - zwykłą (zielona 12.5 mcd, czerwona 10.5 mcd)
    - super-jasna (zielona 37 mcd, czerwona 27 mcd)
    Chcę żeby obraz był wyraźny, ale jednocześnie nie był uciążliwie jasny. Myślałem nad tą jaśniejszą bo jak zmultipleksuje kolumny to i tak wyjdzie znacznie ciemniejsze.

    Z góry dziękuję za pomoc.
    Pozdrawiam

    0 5
  • #2 20 Gru 2013 11:47
    conan02

    Poziom 29  

    Ad 1. Nie ma sensu, to jest dekoder, a nie demultiplekser analogowy, czyli wniosek z pt 2.
    I będą potrzebne tranzystory na wyjściach HC154.
    Ad 2. Skoro matryce są w układzie wspólnej anody (CA), to rezystory ograniczające prąd trzeba dać w obwodach katod, czyli 32 sztuki.
    Ogólnie to multipleks stosuje się w anodach (przy takiej konfiguracji wyświetlaczy), a dane idą do katod.
    Ad 3. Tranzystory przy takim wypełnieniu (1/32) będą potrzebne raczej mocniejsze, bo trzeba będzie użyć większego prądu impulsowego, żeby uzyskać średni w granicach 6-10mA w celu osiągnięcia przyzwoitej jasności. Najprościej będzie użyć PNP w układzie wtórnika emiterowego wzmacniającego prąd z wyjścia HC154, i bez użycia rezystorów. Wyjście do bazy, kolektor do masy, a emiter przez rezystor dobrany do prądu wyświetlacza na katodę. Tranzystory na wyższe prądy są (np. SS8550, BC640) dostępne w małych obudowach TO92.
    Ad 4. Odpowiedź powyżej.
    Ad 5. Tak, podnieść prąd chwilowy do 80-100mA w celu uzyskanie zamierzonego średniego.
    Ad 6,7. Przy takim taktowaniu z pewnością super jasne, dla lepszego efektu wizualnego dyfuzyjne.
    Anody również nie mogą być podłączane wprost pod wyjścia MCU, nie ma szans wysterować. Trzeba będzie również pomyśleć nad buforami na tranzystorach. Nie ma co rozmyślać nad wydajnością prądową wyjść MCU, bo przy mux 1/32 to nawet w nocy ledwie będzie widać coś na wyświetlaczu. (25mA/32 = 0,78mA średnio).
    Tutaj można zastosować tranzystory P-MOS ze źródłem do zasilania, bramką do wyjścia MCU i drenem na anodę matrycy. MCU zaprogramować na aktywny stan niski i wyjścia jako push-pull (dwustanowe), wtedy ładnie sobie poradzi ze sterowaniem mosfetami.
    Tranzystory przy bramkowaniu HC154 można sobie darować tylko wysterować wejście wprost z MCU, drugie wejście tak jak na schemacie do GND, układy będą włączane stanem niskim.

    0
  • #3 28 Gru 2013 22:35
    Carabus
    Poziom 2  

    Dzięki za odpowiedź i przepraszam że nie mogłem odpisać wcześniej.

    W międzyczasie zmieniłem trochę plany i postanowiłem jednak multipleksować wiersze gdyż wierszy mam tylko 16 a kolumn 32 dzięki czemu będę mógł zwiększyć czas świecenia każdej diody z 1/32 do 1/16.
    Jako że nie mogę poświęcić 32 nóżek mikrokontrolera na sterowanie katodami tak więc zamierzam użyć czterech rejestrów przesuwnych 74HC595, które z kolei będą sterowały tranzystorami.

    Ad.1. Tak myślałem.
    Ad.2,4 Też tak mi się wydawało z tymi rezystorami.
    Z multipleksowaniem anod (czyli wierszy) to jest dobry pomysł i tak właśnie zrobię.
    Ad 6,7. Też myślałem że najlepsze będą dyfuzyjne, super jasne.

    Ad.3. Jako że duży prąd będzie teraz na anodach rozumiem że tam są potrzebne mocne tranzystory, a na katodach mogę coś słabszego.
    Jeśli podniósłbym prąd chwilowy na każdej diodzie do powiedzmy 90mA to na danym wierszu mogę mieć nawet 32*90=2880mA czyli spory prąd.
    Czy taki prąd ale tylko przed 1/16 czasu wytrzymają tranzystory na 1.5A takie lub podobne jak zaproponowane, czy muszę szukać mocniejszych (i niestety droższych) albo użyć mniejszego prądu?

    Z kolei na katodach miałbym mniejsze prądy, maksimum 100mA, czy mogę więc jako tranzystorów użyć tu układów ULN2803?

    Tak więc cały obwód wyglądał by mniej więcej tak:
    MCU -> Dekoder 74HC154 -> tranzystory -> (anody) Matryca LED (katody) -> rezystory -> ULN2803 <- 74HC595 <- MCU
    (tranzystory oczywiście podłączone do zasilania diod, a ULN2803 do masy)

    Czy ma to sens?

    Czy zamiast rezystorów, ULN2803 i 74HC595, mógłbym po prostu umieścić układ MBI5026?


    Pozostaje jeszcze kwestia zasilania diod jako że płytka mikrokontrolera ma tylko 100mA na wyjściu zasilania, zatem potrzebuję innego tutaj źródła zasilania.
    Wiem że to temat rzeka, ale jakie rozwiązanie byłoby najtańsze i najprostsze?
    Da się z baterii (nawet jeśli miałaby działać bardzo krótko) czy potrzebny zasilacz, a jeśli tak to mniej więcej jaki?

    0
  • #4 29 Gru 2013 19:46
    conan02

    Poziom 29  

    Do multipleksu anod tak jak podałem użyć tranzystorów P-MOS, są nawet 10A w obudowach SO8, nie ma problemu z dostaniem podwójnych (2xP-MOS) po 4-5A, wtedy jedna obudowa SO8 na 2 anody.
    ULN jest dobrym pomysłem i też oszczędza miejsce i ma wystarczającą wydajność prądową.
    Z układami MBI jest sporo zabawy, trochę idiotyczne sterowanie długością impulsu LATCH dla wyboru sposobu działania (WORD, GLOBAL, CONFIG) - przerabiam to teraz na bieżąco w swoim projekcie. Jeśli uda się go opanować to jest wygodny układ. Przy takim prądzie katod trzeba będzie matryce zasilić obniżonym napięciem, bo się MBI przegrzeje robiąc za 16 lub 8 rezystorów zależnie od wersji. Zapoznaj się z datasheetem dla tych układów i jakie są ograniczenia.
    Użycie rejestru jest proste i szybkie, ważne tylko, żeby dać rejestr z zatrzaskiem wyjściowym, lub w czasie wsuwania danych wyłączyć wszystkie anody bo będą duchy.
    Co do zasilania wyświetlacza, to można użyć dodatkowego zasilania 3,3V. Zaoszczędzi niepotrzebnego grzania rezystorów, obciążenie można obliczyć z sumy prądów jednego wiersza - czyli te około 3A. Przy MBI trzeba będzie zejść do 2-2,5V, żeby zmieścić się w TDP układu. Zasilanie matryc z płytki MCU nie ma szansy powodzenia. Niższe napięcie na źródłach tranzystorów P-MOS kluczujących anody nic nie zaszkodzi, będą miały napięcie bramki powyżej źródła co spowoduje tylko lepsze "domknięcie" kanału, przy sterowaniu push-pull z MCU nie będą sprawiać problemów.

    0
  • #5 29 Gru 2013 23:09
    Carabus
    Poziom 2  

    Poszukałem tych tranzystorów P-MOS i znalazłem taki podwójny w obudowie SO8, a dokładniej model IRF7342PBF, ale niestety obudowy SO8 to ja nie dam rady przylutować, tym bardziej że cały układ montowany będzie na płytce uniwersalnej wierconej.
    Znalazłem też pojedynczy P-MOS w obudowie TO220 a dokładnie model IRF9520 i chyba takiego będę musiał użyć choć cena 2.08zł za sztukę trochę mnie odstrasza biorąc pod uwagę że potrzebuję ich 16. Z tego co poczytałem to nie mogę użyć tańszych PNP bo jeśli dobrze czytam charakterystyki to wszystkie te mocniejsze tranzystory bipolarne chcą mieć aż 100+mA na bazie żeby sterować prądem >1A, czy tak?

    Jeśli chodzi o układy MBI to zachęca mnie możliwość regulacji wszystkich prądów wyjściowych za pomocą jednego zewnętrznego rezystora. Mógłbym sobie dać dwa potencjometry tak żeby jeden regulował jasność diod czerwonych i a drugi zielonych.
    Co do tych sposobów działania wybieranych długością impulsu LATCH, to coś nie mogę znależć info na ten temat w datasheecie, w którym miejscu to jest?
    A co do jego ograniczeń z tego co czytam to mogę przez niego przepuścić łącznie 1440mA czyli tyle ile maksymalnie zamierzam, chyba że chodzi o wydzielaną moc, jak to oszacować? Zresztą średnio zapalonych będzie mniej niż 20% wszystkich diod więc w praktyce prądy i moce będą sporo mniejsze od maksymalnych.

    Co do zatrzasku wyjściowego to o ile wiem zarówno 74HC595 jak i MBI5026 go posiadają, więc tu chyba nie będzie problemów.

    Co do zasilania to nie mogłem znaleźć nic na 3.3V o wystarczającej mocy i w przystępnej cenie więc stwierdziłem że kupię zasilacz do taśm led na 12v np. <taki> i do niego podepnę stabilizator liniowy regulowany którym zrobię jakieś 2.5V albo 3V, i którym zasilę matryce led. Jak już będę miał taki zasilacz to mogę do niego też podpiąć drugi stabilizator na 5V 100mA którym załatwię sprawę zasilania płytki MCU. Dodam że jako nowicjusz boję robić jakiś układ który by pracował na napięciu sieciowym, wolę mieć bezpieczne napięcie z gotowego zasilacza.
    Czy w takim razie to jest odpowiedni zasilacz i czy takie rozwiązanie ma sens?

    Jeszcze w tym momencie sobie przypomniałem że maksymalny prąd jakiego mój układ będzie potrzebował to raczej maksymalnie 1.5A a nie 3A, gdyż nie planuję w żadnym momencie zapalać całego wiersza matryc na żółto (tj. wszystkich czerwonych i wszystkich zielonych diod, łącznie 32). Jeśli już któryś wiersz będzie cały zapalony to tylko na czerwono lub tylko na zielono.
    W związku z tym raczej nie będę potrzebował więcej niż 1.6A zasilania, a także więcej niż 1.5A na tranzystorze, czy w takim razie jest możliwość zastosowania jakiś tańszych tranzystorów?

    0
  • #6 30 Gru 2013 22:33
    Carabus
    Poziom 2  

    Wątek już nieaktualny, udzielono mi już pomocy i informacji których potrzebowałem.
    W takim razie zamykam.

    0