Sterowanie matrycą LED

Jesli jesteś początkującym elektronikiem, to tu z pewnością znajdziesz pomoc. Miejsce dobre do dyskusji nad podstawami elektroniki w zakresie teorii i praktyki.
ODPOWIEDZ
Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Sterowanie matrycą LED

Post autor: M@ciej » 09 kwie 2008, 8:12

Witam serdecznie :)

Niedawno zakupiłem matryce LED 8x8 punktów. Steruje je przez mikrokontroler. Anody sterowane są sekwencyjnie (jedna po drugiej w takt impulsów zegarowych) a katody przez mikrokontroler, przy czym pojawił się pewien problem.

Im więcej diod w słupku się zaświeca,tym słabiej świeci cały słupek. Domyślam się, że dla anod trzeba by zastosować źródło prądowe, tylko jakie? Posiadam kostkę UDN2981, czy się nada?

pozdrawiam :)

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 09 kwie 2008, 10:44


Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 09 kwie 2008, 14:15

Tak mniej więcej sobie to wyobrażałem, jak jest na tych schematach, tylko moja matryca będzie znacznie większa!Będzie 12 matryc 8x8 ułożone po 24 wiersze i 32 kolumny. Myślę, ze układy z bramkami i negatorami nie poradzą sobie z takim prądem.

Oczywiście użyję ULN2803 do załączania katod i UDN2981 do załączania anod. Jenak już pierwsze próby na płytce stykowej pokazały, że jasność całego słupka zależy silnie od liczby zapalonych w nim diod,a testowałem jedynie na 8 diodach i bez multipleksowania. Jak dojdzie multipleksowanie, jasność jeszcze bardziej siądzie - sprawdzałem na matrycy 32x8.

Ciekawe jak to jest zrobione w fabrycznych wyświetlaczach tego typu, np. w kantorach czy biurach podróży.

Oto jak to pomyślałem, zamiast tranzystorów "u góry" użyję tego UDNa
Załączniki
WyswietlaczLED_1.jpg

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 09 kwie 2008, 15:13

Bo widzisz....problem polega na tym, ze rezystor ograniczający prąd (te 100R)
jest "wspólny" dla całego słupka (czy kolumny) i wraz ze zwiększającym się
prądem (bo diodek coraz więcej) - spadek napięcia na nim wzrasta co skutkuje
zmniejszającą się jasnością.
Trzeba zrobić tak, że w jednej chwili czasowej - układ jednego punktu świecącego
to: klucz "górny" - np. tranzystor pnp, diodka, rezystor, klucz "dolny" - tranz. npn.
Popatrz na schemat z załącznika - takie coś narysowałam: matryca 4x4, bo szybciej.
I wyobraź sobie że chcę zapalić na niej kwadracik - czyli naokoło ledy się świecą,
w środku nie. Programowo robimy tak:

while ( 1 ) {
1a. uaktywniamy T1 (baza przez jakiś R na potencjał GND)
1b. uaktywniamy Ta,Tb,Tc,Td - teraz pali się cały górny rządek

2a. wyłaczamy T1 a uaktywniamy T2
2b. uaktywniamy tylko Ta i Td - pali się prawa i lewa, dwie w środku - nie

3a. wyłaczamy T2 a uaktywniamy T3
3b. uaktywniamy tylko Ta i Td - pali się prawa i lewa, dwie w środku - nie

4a. wyłaczamy T3, właczamy T4
4b. uaktywniamy całość - Ta,Tb,Tc,Td - teraz pali się cały dolny rządek
}

zauważ że:
* przemiatamy poziomo, czyli w jednym momencie uaktywniamy jeden rządek,
wzorkiem na nim sterują te dolne klucze Ta..Td
* wprawdzie im więcej diod tym prąd Tx (x=1,2,3,4) większy, ale jemu i tak to
wszystko jedno, ponieważ pracuje w nasyceniu (Ucesat ~0.2V), jego Ic max
musi utrzymać cały komplet zapalonych ledów w rządku

Zrób sobie druciaka 8x8 a'la mój schemat i jakoś oprogramuj, zobaczysz różnicę.

[ Dodano: 2008-04-09, 16:15 ]
ps.
w/g tego schematu możesz też sterować wystawiając wzorek na T1..T4,
a kluczując tym razem kolumny przy pomocy Ta..Td - będziesz miał taki
właśnie efekt spadającej jasności, czyli będzie źle.
Załączniki
maciek1.gif
(8.49 KiB) Pobrany 10002 razy

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 09 kwie 2008, 15:25

Widzę, że sprzętowo jest to zrobione podobnie jak u mnie, tylko sposób sterowania się zmieni?Chodzi o to,żeby w danej chwili świeciło jak najmniej diod w słupku (kolumnie),a jak najwięcej w linijce (wierszu)?

Ten sposób przypomina mi rysowanie obrazu w lampie CRT (telewizor,monitor), czyli niemalże punkt po punkcie. Muszę się zastanowić nad tym układem. Chodzi o to, żeby nie kupować nowych kostek,tylko użyć te,co już mam, jak ULN2803, UDN2981 i MAX6969 oraz Atmega8 + jakieś elementy bierne.

Kupiłem takie dziwne matryce, już teraz wiem,dlaczego były takie tanie.

[ Dodano: 2008-04-09, 16:47 ]
Już prawie wszystko wiem. Pytanie tylko, jaki prąd będzie płynął przez jeden "dolny" tranzystor NPN? Dla MAX6969 jest 50mA/kanał. Czy kolumna 8 diod da radę?
Załączniki
Matryca.jpg
Matryca.jpg (62.54 KiB) Przejrzano 12809 razy

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 09 kwie 2008, 16:06

Przez jeden dolny tranzystor będzie płynął prąd:
Ic = ( Ucc - Ucesat(pnp) - Ucesat(npn) - Uled ) / R

a co do Twoich matryc - no nie wiem, ale w/g mnie co jest rzędem a co kolumną
to sprawa umowna...jak się ten schemat obróci deczko to chyba się nada
do tego co ja narysowałam....patrz - załącznik.
Co do Twoich części - MAX6969 daj na dół - do ustawiania wzorka dla danego rządka diod,
a przy pomocy UDN2981 wybieraj rządki (sterowanie od góry).
Jednym MAX-em obsłużysz dwie matryce - 16 kolumn.
Załączniki
matryca_109_zamiana.jpg
matryca_109_zamiana.jpg (29.24 KiB) Przejrzano 12796 razy

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 09 kwie 2008, 16:21

Właśnie tak dałem. Firma dała dwie próbki i właśnie tak to chcę zrobić (schemat). Prosty i przejrzysty. Co do ustawienia matryc, to spaprałem już kilka płytek,bo nie chciało mi się pająka robić. Na odwrócenie matryc o 90 stopni w lewo też wpadłem. Obawiam się jednak,że MAX nie uciągnie więcej niż 8 diod w słupku.
Załączniki
WyswietlaczLED_MAX6969.jpg

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 09 kwie 2008, 16:30

Maciek, ten ostatni schemat jest ok....chyba właśnie o to mi chodziło,
MAX da radę, tylko trzeba inaczej sterować - nie zajmujemy się słupkiem
tylko kolumną (Jezu, jak to brzmi...).
Multipleksowanie robisz tak:
do rejestru 32 bity (bo masz dwa MAXy w kaskadzie) wpisujesz "obraz" jednego rządka.
potem uaktywniasz pierwszy od góry tranzystor UDN-a - zapala się pierwszy rowek.
Potem wpisujesz obraz bitowy drugiego rowka i przełączasz kanał UDN-a na następny.

Jeden kanał MAX-a (jedno wyjście) ma w jednej chwili czasowej zapiętą tylko jedną diodę.
Jeden kanał UDN-a ma ich zapiętych 32 - a ile się naprawdę świeci - to zależy co zostało
wpisane do MAX-a (gdzie 0 a gdzie 1)

Łapiesz?

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 09 kwie 2008, 17:11

Tasza, ja to wszystko wiem. Nad tymi MAXami spędziłem już trochę czasu, zobacz inny mój post w dziale "Technika Cyfrowa". Rysując powyższy schemat od razu obmyślałem, jak to sterować programowo, inaczej nie doszedłbym do ładu.

Apropos MAXów, to trochę się nagłowiłem, zanim doszedłem, ze maja one wyjścia typu OC, czy coś takiego. Producent nie zaznaczył tego w nocie zbyt wyraźnie. Reszta komentarza jest we wspomnianym innym poście.

Co do większej liczby diod w kolumnie (ja mówię "słupek", ty "rowek" tez smisznie :P ) i sterowania MAXami, to co proponujesz?

[ Dodano: 2008-04-09, 20:08 ]
Należą Ci się Tasza podziękowania ode mnie za pomoc i cenne wskazówki.

Dziękuję!!! :)

tasza
Użytkownik
Posty: 1391
Rejestracja: 21 lut 2005, 15:02

Post autor: tasza » 10 kwie 2008, 10:08

M@ciej pisze:(...)to trochę się nagłowiłem, zanim doszedłem, ze maja one wyjścia
typu OC, czy coś takiego. Producent nie zaznaczył tego w nocie zbyt wyraźnie.
No, Maciek....nie załamuj mnie proszę...
http://datasheets.maxim-ic.com/en/ds/MAX6969.pdf pisze: The MAX6969 serial-interfaced LED driver provides 16 open-drain,
constant-current-sinking
LED driver outputs rated at 5.5V.
w wolnym tłumaczeniu - 16 wyjść typu otwarty dren ze stałym prądem wejściowym.

otwarty dren to podobne do otwarty kolektor, tylko że dla tranz. unipolarnych,
sztuczka ze stałym prądem wejściowym (sink current) pozwala:
- pominąć rezystory ograniczające prąd (bo to kostka sama robi)
- ustawić wspomniany prąd na taką wartość jak się chce - czyli regulacja jasności ledków
M@ciej pisze:Dziękuję!!! :)
i ja również...bo to słowo coraz rzadziej gości na forum....

Jak coś Ci wyjdzie - to proszę się pochwalić koniecznie.

Awatar użytkownika
M@ciej
Użytkownik
Posty: 736
Rejestracja: 13 sie 2005, 21:38
Lokalizacja: Szczecin

Post autor: M@ciej » 10 kwie 2008, 23:30

Oczywiście, że się pochwalę. Prawda jest taka, że ten wyświetlacz jest tylko częścią większego projektu, o którym na razie sza:) Jak dojdę do ładu z wyświetlaczem,opiszę i wyślę jakieś fotki.

Co do MAXów z Opened-drain to ... człowiek uczy się całe życie ... czytać notki katalogowe też :P

ODPOWIEDZ