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

Sterowanie matrycą LED 20x20 3mm – ATMega32, drivery, multipleksowanie, prąd

lord_dagoth 11 Mar 2008 20:40 2477 9
REKLAMA
  • #1 4898297
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    Witam.

    Jak można wywnioskować z tytułu tematu, mam kilka pytań odośnie robienia matryc LED. Chciałbym tutaj na starcie rozwiać kilka moich wątpliwości, gdyż jestem właśnie świeżo po wybudowaniu matrycy 10 na 10 diód, połączonych multipleksowo ze sobą (działającej :)). Teraz zamierzam zbudować mały wyświetlacz 20x20 diód led 3mm (3mm w celu uzyskania większej "rozdzielczości" do wyświetlania takich małych pseudoanimacji ;)). I moje pytania brzmią:

    -Czy mógłbym nimi wszystkimi sterować jednym mikrokontrolerem ATMega32? Walnąłbym kilka multiplexerów i demultiplexerów.
    -Jeżeli chciałbym korzystać ze specjalnych driver'ów do ledów, to z tego co zrozumialem z not katalogowych, musiałbym ich użyć kosmiczną ilość żeby wysterować aż 400 diód -.- ale pewnie coś źle zrozumiałem... No i jaka jest dostępność ów driverów w polsce?
    -Jaki byłby optymalny czas zapalenia jednej diody, i dopuszczalny prąd jaki mógłbym przez nią przepuścić, aby świeciła pełną jasnością przy zapalonych wszystkich diodach i aby nie było widać efektu migania?
    -Zna może ktoś jakieś strony, materiały bądź artykuły dotyczące projektowania wyświetlaczy led?
    -I ostatnie pytanie (nie do końca związane z wyświetlaczem:P). Zna ktoś może jakąśbiblioteke bądź gotową funkcję (w C) dla atmeg (dokładniej na Atmege 8, 16 i 32) na zliczanie czasu? to znaczy chodzi mi funkcję opóźniające ;)

    Ogólna zasada działania tego nowego wyświetlacza 20x20 byłaby podobna do tego mojego poprzedniego ( https://www.elektroda.pl/rtvforum/topic951969.html ), tylko że chciałbym zastosować tranzystory npn zamiast pnp no i ATmege32 i zestaw dodatkowych potrzebnych scalaków. Z góry dzięki za odpowiedzi na nurtujące mnie pytania ;)
  • REKLAMA
  • Pomocny post
    #2 4898725
    K_o_n_r_a_d
    Poziom 23  
    Posty: 318
    Pomógł: 86
    Ocena: 9
    lord_dagoth napisał:
    -Czy mógłbym nimi wszystkimi sterować jednym mikrokontrolerem ATMega32? Walnąłbym kilka multiplexerów i demultiplexerów.
    Dałoby się to zrobić nawet na jakimś małym ATTiny stosując rejestry przesuwne, multipleksery itp.
    lord_dagoth napisał:
    -Jeżeli chciałbym korzystać ze specjalnych driver'ów do ledów, to z tego co zrozumialem z not katalogowych, musiałbym ich użyć kosmiczną ilość żeby wysterować aż 400 diód -.- ale pewnie coś źle zrozumiałem... No i jaka jest dostępność ów driverów w polsce?
    Nie wiem o jakich driverach konkretnie piszesz więc nie pomogę. Podsj konkretny typ. Jeśli chcesz multipleksować to nie będziesz ich potrzebował dużo. Jeśli chciałbyś sterować diody statycznie czyli bez multipleksowania no to kazdą diodę musiałbyś podłączyć oddzielnie i wtedy musiałbyś mieć ich tyle aby to zrobić :)
    lord_dagoth napisał:
    -Jaki byłby optymalny czas zapalenia jednej diody, i dopuszczalny prąd jaki mógłbym przez nią przepuścić, aby świeciła pełną jasnością przy zapalonych wszystkich diodach i aby nie było widać efektu migania?
    Aby nie było efektu migania to odświeżanie w praktyce 85 razy na sekundę wystarczy. Mniej niż 85x jest zauważalne. Jaki prąd to zależy od typu diod jakie zastosujesz. Wyczytasz to na stronie producenta.

    Na przyszłość: nie piszemy/mówimy "dióda" tylko dioda, dlatego piszemy/mówimy diod a nie "diód". :)
  • #3 4899477
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    hehe... sorry, mała literówka :P
    Jeżeli chodzi o drivery to miałem na myśli MBI5025 ( http://www.andpol.com.pl/pdf/karty/MBI5025.pdf?PHPSESSID=c7c6ab0595c5fef50cb8cb4939311711 ). Ale teraz już chyba rozumiem... jak mam diody połączone multiplexowo to wystarczą dwa takie (w moim wypadku), po podłączam do tego tylko anody, a ich w sumie będzie 20 ;)

    A jaka jest zasada działania tego drivera? i jak z jego dostępnością w Polsce?
  • REKLAMA
  • Pomocny post
    #4 4900006
    K_o_n_r_a_d
    Poziom 23  
    Posty: 318
    Pomógł: 86
    Ocena: 9
    Multipleksowanie 40 diod w sposób 20x20 jest złym pomysłem, jakie nie zastosowałbyś diody to będzie mało czytelny wyświetlacz. Jedna dioda świeciłaby wtedy tylko przez 1/20 czasu. Multipleksowanie więcej jak 8 (no może nawet 10) w praktyce nie wygląda dobrze.
    Dlatego proponuję podzielić wyświetlacz na lewą i prawą połowę (lub dolną i górną - w zależności co będzie później łatwiej oprogramować Tobie) i w ten sposób czas świecenia danej diody zwiększysz do 1/10. Wtedy będziesz potrzebował 3 takich driverów. Można je łączyć szeregowo więc ile byś ich zastosował to i tak do sterowania potrzebujesz tyle samo pinów a dodatkowo można podłączyć pod sprzętowe SPI w ATmega.

    W nocie do której link podałeś masz opisane jak działa ten driver. Wysyłasz dane szeregowo a one pojawiają się na wyjściu równoległym wysoko prądowym z którego możesz sterować diody do 45mA.
    Gdzie są dostępne to musisz poszukać.Widziałem w Kamami.pl jakieś, nie wiem czy dokładnie te ale jakieś bardzo podobne były.
  • REKLAMA
  • #6 4909475
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    To może dobrym pomysłem byłoby podzielić ten wyświetlacz na 4 części, każda byłaby matrycą 10x10? A jaki maxymalny prąd mógłbym przepuścić przez diodę, zakładając że czas jej świecenia wynosiłby jedną mikrosekundę?
  • REKLAMA
  • #8 4909951
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    No tak... ale jeżeli dobrze zrozumiałem, to multiplexując diody w matryce 10x10 to musiałbym w sumie kupić 3 takie drivery do mojego wyświetlacza, a to aż 60 zł... troszke dużo, tym bardziej dla takiego amatora-elektronika jak ja ;)
  • Pomocny post
    #9 4911217
    K_o_n_r_a_d
    Poziom 23  
    Posty: 318
    Pomógł: 86
    Ocena: 9
    lord_dagoth napisał:
    To może dobrym pomysłem byłoby podzielić ten wyświetlacz na 4 części, każda byłaby matrycą 10x10?

    Możesz podzielić sobie jak chcesz, aby tylko było Ci wygodnie to oprogramować.
    W związku z tym, że drivery są 16 lub 8bitowe to ja zrobiłbym wyświetlacz jako 10x40 i po prostu drugą połowę umieścił pod pierwsza wtedy wyszedłby właśnie wyświetlacz 20x20. W takim przypadku zastosowałbym szeregowo połączone 2 drivery 16bitowe + 1 driver 8bitowy (razem 40). Sterowanie czymś takim byłoby bardzo proste, dodatkowo oszczędne jeśli chodzi o sprzęt (nic by nie było na darmo).

    lord_dagoth napisał:
    A jaki maxymalny prąd mógłbym przepuścić przez diodę, zakładając że czas jej świecenia wynosiłby jedną mikrosekundę?
    Skąd wyszła Ci 1us (jedna milionowa sekundy)? Będziesz multipleksował załóżmy 100Hz ekran w każdej klatce obrazu 10 wierszy, więc przełączanie wierszy co 1ms (jedna tysięczna sekundy).
    A jaki prąd możesz puścić w impulsie 1ms z 9ms przerwy to nikt Ci nie powie jeśli nie powiesz jakich konkretnie diod użyjesz. O maksymalnym prądzie w impulsie możesz przeczytać w nocie do konkretnego typu diody.
  • #10 4912043
    lord_dagoth
    Poziom 25  
    Posty: 860
    Pomógł: 68
    Ocena: 6
    Sorka za błąd, miałem na myśli jedną milisekundę, a odruchowo napisałem mikro, bo tyle używałem w poprzednim wyświetlaczu a to było za mało :P No dobra, wielkie dzięki za pomoc:) Jak znajde troszke czasu to narysuje schemat i wrzuce, ale nie wiem kiedy to będzie... widmo zbliżającej się matury staj się coraz wyraźniejsze:(

Podsumowanie tematu

✨ Dyskusja dotyczy sterowania matrycą LED 20x20 o diodach 3mm za pomocą mikrokontrolera ATMega32 oraz odpowiednich driverów i multipleksowania. Zastosowanie jednego mikrokontrolera ATMega32 jest możliwe, wykorzystując multipleksery i demultipleksery. Przy multipleksowaniu liczba potrzebnych driverów LED jest znacznie mniejsza niż przy sterowaniu statycznym. Driver MBI5025 umożliwia sterowanie diodami poprzez szeregowe przesyłanie danych i wyjścia prądowe do 45mA, co pozwala na efektywne sterowanie matrycą. Zaleca się unikanie multipleksowania powyżej 8-10 linii, gdyż czas świecenia pojedynczej diody staje się zbyt krótki, co pogarsza czytelność wyświetlacza. Proponowane jest podzielenie matrycy na mniejsze części (np. 2x10x20 lub 4x10x10) w celu zwiększenia czasu świecenia diod i ułatwienia programowania. Optymalna częstotliwość odświeżania to około 85 Hz, co eliminuje efekt migotania. Maksymalny prąd diody zależy od jej typu i danych producenta, a czas świecenia w multipleksowaniu zwykle wynosi około 1 ms, a nie 1 µs. Dostępność driverów MBI5025 i podobnych w Polsce jest możliwa m.in. w sklepach Kamami i Maritex. Alternatywnie polecany jest driver firmy Allegro (np. model 6276) z regulacją prądu wyjściowego, dostępny w sklepie Elfa. Sterowanie driverami odbywa się szeregowo, często z wykorzystaniem sprzętowego SPI w mikrokontrolerze. Koszt kilku driverów może być istotny dla amatorów, dlatego ważne jest optymalne rozplanowanie matrycy i sterowania.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA