Moduł 4-znakowego wyświetlacza alfanumerycznego LED

Aktualnie w większości zastosowań królują wyświetlacze LCD. Są jednak pewne zastosowania, w których stary, dobry wyświetlacz LED jest po prostu niezastąpiony. Zwykle są używane wyświetlacze 7-segmentowe, jednak prezentowany moduł mający 35 kropki LED daje znacznie bardziej czytelne znaki oraz umożliwia wyświetlenie napisów. Dodatkowo, moduły są zaprojektowane w taki sposób, aby można je było łączyć w szeregi, co daje praktycznie nieograniczone możliwości wyświetlania dowolnych komunikatów. Moduł był opisywany w Elektronice Praktycznej nr 8/2010. Płytki do niego można nabyć poprzez stronę sklep.avt.pl.

Zastosowany w module, matrycowy wyświetlacz LED typu TC07-11 umożliwia wyświetlanie znaków wpisanych w matrycę 5×7 pikseli. Dzięki temu jest możliwe wyświetlenie wszystkich znaków ASCII oraz innych, np. zdefiniowanych przez użytkownika. Wyświetlacze LED wyróżniają się bardzo dobrą czytelnością również w kiepskich warunkach oświetlenia. Zastosowanie układów Premy typu PR4010 umożliwia konstrukcję modułów o minimalnej liczbie elementów, niewymagających rezystorów ustalających prąd segmentów.
Układ PR4010 jest 10-bitowym rejestrem z wejściem szeregowym i wyjściami równoległymi. Wbudowane zatrzaski wyjściowa latch pozwalają na uniknięcie migotania diod LED podczas zapisu danych. Najważniejsze jest jednak to, że producent wbudował w strukturę układu źródła prądowe o maksymalnym prądzie obciążenia pojedynczego wyjścia do 10 mA (płynącym poprzez diodę LED z „+” zasilania), ustalanym za pomocą pojedynczego rezystora włączanego pomiędzy masę, a wejście BRT. Zwalnia to konstruktora z konieczności zastosowania rezystorów ustalających prąd wyjść. Oczywiście, jest to bardzo dobre rozwiązanie, o ile są do nich podłączone diody LED o takim samym prądzie zasilania. Zastosowane rozwiązanie upewnia użytkownika, że np. przez każdy segment wyświetlacza popłynie ten sam prąd (producent gwarantuje co najwyżej 5% rozrzut) i dzięki temu wszystkie będą świecić z tą samą intensywnością. Ma to bardzo duże znaczenie w przypadku stosowania wyświetlaczy matrycowych, np. 5×7 pikseli. W tabeli 1 umieszczono opis funkcjonalny poszczególnych wyprowadzeń układu.

Tabela 1. Opis funkcjonalny sygnałów układu PR4010

OUT

Wyjście danych służące do kaskadowego łączenia układów

LOAD

Wejście sygnału zegarowego; zbocze narastające powoduje przepisanie stanu wewnętrznych rejestrów na wyjścia

CLK

Sygnał zegarowy interfejsu szeregowego (aktywne jest zbocze narastające)

BRT

Do podłączenie rezystora ustalającego prąd wyjść

BLANK

Stan wysoki powoduje wygaszenie wszystkich LED. Odłączone lub stan niski – normalne świecenie. Może służyć do regulacji jasności świecenia segmentów

CTRL

Otwarte lub „1” – brak funkcji. Stan niski powoduje negację danych podawanych na DIN.

DIN

Wejście danych interfejsu szeregowego.

SEG0...SEG9

Wyjścia sterujące diodami LED.

Vcc-Vee

Napięcie zasilania: 3...5,5 V (typowe = 5 V).

 

Rysunek 1. Schemat ideowy modułu 4-znakowego wyświetlacza alfanumerycznego

Na rysunku 1 pokazano schemat ideowy modułu. W związku z tym, że rejestry dołączają masę do katod poszczególnych diod, to wewnętrzna konstrukcja wyświetlacza wymusiła użycie siedmiu tranzystorów PNP typu BC858B do załączania zasilania anod. I tak otwarcie tranzystora T1 powoduje załączenie zasilania do pierwszego wiersza wszystkich wyświetlaczy matrycowych LED1...LED4, T2 – drugiego itd.
W module użyto 3 układów PR4010, co daje 30 wyjść, których można użyć do zasilania LED. 7 wyjść jest używanych do załączania tranzystorów T1...T7, więc do LED-ów pozostaje 30-7 tj. 23 wyjścia. Każdy z wyświetlaczy ma 5 pikseli w wierszu, więc można sterować maksymalnie 4 wyświetlaczami. 3 wyjścia układów pozostają w takiej sytuacji nieużywane.
Układ jest szeregowym rejestrem przesuwnym, więc bit przesłany jako pierwszy staje się najstarszym, 10-tym. Dane doprowadzane są do wejścia DIN i wpisywane przy każdym narastającym zboczu na wejściu CLK. Narastające zbocze sygnału na wejściu LOAD powoduje przepisanie stanów z wewnętrznych rejestrów przesuwnych na wyjścia układu. W związku z taką budową wewnętrzną układu, pierwsze przesłane do modułu bity (numer 21...27) odpowiadają za załączenie poszczególnych wierszy. Jako tranzystory klucze zastosowano BC858 o polaryzacji PNP, więc logiczna „1” powoduje zatkanie tranzystora i wyłączenie wiersza, natomiast „0” jego załączenie. Np. przesłanie do wyświetlacza sekwencji bitów (zapis zgodny z formatem języka C) 0b11111111, 0b10110111, 0b00011000, 0b11101111 w kolejności od najstarszego do najmłodszego, powoduje zaświecenie pierwszego wiersza obrazu ze zdjęcia modułu.
Wyświetlacz musi być multipleksowany. Oznacza to, że w danym momencie może być załączony tylko jeden wiersz, a przełączanie pomiędzy nimi powinno być na tyle szybkie, aby ludzkie oko go nie zauważyło. Zaleca się częstotliwość multipleksowania równą co najmniej 300 Hz. Oznacza to konieczność wysłania do rejestrów kompletu danych (4 bajty na moduł) co 1/300 sekundy.
Wartość prądu płynącego przez segmenty ustalają rezystory R1, R2, R3. Powinny one mieć tę samą rezystancję. Dodatkowo, jasność można regulować za pomocą sygnału PWM na wejściu BLANK. Moduły mają wyprowadzenia na krawędziach płytek, dzięki którym można je łatwo łączyć w łańcuchy (OUT do DIN następnego; CLK, LOAD, BRT, CTRL – wspólne). Producent zaleca, aby w takim łańcuchu nie było więcej niż 20 układów, co umożliwia wyświetlenie do 28 znaków (21 układów w szeregu).
Podczas pisania programu obsługi pewną trudność sprawia nietypowa, niepodzielna przez 8 długość rejestru. Na listingu 1 umieszczono fragment przykładowego programu w języku C wysyłającego 30 bitów przez wyjście DIN mikrokontrolera z rodziny 8051.

Listing 1. Funkcja wysyłająca 30 bitów przez DIN (kompilator RC51).

void send30bits(char * tptr)
{
    char i, j, x;
    for (j = 0; j < 3;)       //wysłanie 24 bitów
    {
        x = *tptr;            //pobranie bajta spod adresu tptr
        for (i = 0; i < 8;)
        {
            x <<= 1;          //przesunięcie zmiennej w lewo, najstarszy bit przenoszony do CY
            DIN = CY;         //przypisanie wyjściu danych stanu CY
            CLK = 1;          //impuls zegarowy
            CLK = 0;
            i++;
        }
        j++;
        tptr++;
    }
    x = *tptr;                //kolejny bajt
    for (i = 0; i < 6;)       //jeszcze 6 bitów
    {
        x <<= 1;

        DIN = CY;
        CLK = 1;
        CLK = 0;
        i++;
    }
    tptr++;
}

void main()
{
    CTRL = 1;                 //stan początkowy wyjść
    BLANK = DIN = CLK = LOAD = 0;
    ...
    send30bits(&rows);
    LOAD = 1;                 //impuls na wejściu LOAD
    LOAD = 0;
    ...
}

Na rysunku 2 pokazano schemat montażowy modułu wyświetlacza. Do jego budowy użyto elementów SMD, więc jego montaż wymaga pewnej wprawy. Najtrudniejsze ze względu na niewielki raster wyprowadzeń jest przylutowanie układów scalonych. Trudne ze względu na umieszczenie pomiędzy nóżkami wyświetlacza jest również przylutowanie tranzystorów. Wyświetlacze należy przylutować na końcu.

Rysunek 2. Schemat montażowy modułu wyświetlacza 4 znaki 5×7 pikseli LED

Moduł jest zasilany napięciem 5 V. Prąd segmentów ustalono na wartość ok. 5 mA. Po poprawnym zmontowaniu moduł nie wymaga żadnych czynności regulacyjnych i od razu jest gotowy do pracy.

Jacek Bogusz
j.bogusz@easy-soft.net.pl

 

Wykaz elementów:
R1...R3: 80 kOhm, ew. 82 kOhm (SMD, 0603)
C1, C2: 100 nF (SMD, 0603)
LED1...LED4: np. Kingbright TC07-11GWA
T1...T7: BC858B (SOT-23)
U1...U3: PR4010

http://www.tomaszbogusz.blox.pl/

ZałącznikWielkość
Schemat, płytka, dokumentacja960 KB

Dodaj nowy komentarz

Zawartość pola nie będzie udostępniana publicznie.