Mika Tuupola

Fri, Nov 4, 2011

matryce Led to zabawne zabawki. Kto by nie kochał blinkenlights? Elektronika jest trudna. Elektronika jest znacznie trudniejsza niż programowanie. Trudno mi było zrozumieć, jak działają matryce led. Jak najlepiej się czegoś nauczyć? Sam sobie zbuduj.

struktura matrycy Led

w formacie matrycowym Diody LED są rozmieszczone w wierszach i kolumnach. Można je również traktować jako współrzędne y i X. Załóżmy, że mamy macierz 4×4.Wiersze będą oznaczone od A do D, A kolumny od 1 do 4. Teraz możemyadresować każdą diodę za pomocą wiersza i kolumny. Górna lewa dioda LED byłaby (a, 1). Dioda LED do dołu byłaby (D, 4).

matryce Led występują w dwóch smakach. Common-row anode (z lewej) i common-rowcathode (z prawej).

matryce Led

powyższy rysunek pokazuje różne konfiguracje. Różnica między tymi dwiema konfiguracjami polega na tym, jak zapaliłeś diodę led. Ze źródłami anodowymi wspólnego rzędu (dodatnie napięcie) są dołączone do rzędów A..D andcurrents tonie (napięcie ujemne, masa) do kolumn 1..4. Do rzędów a dołączone są wspólne katodowe zlewy prądowe..D i currentssources do kolumn 1..4.

na przykład. Aby oświetlić dolną diodę led (D,4) wspólnej matrycy katodowej, należy podać dodatnie napięcie do kolumny 4 i połączyć rząd D z uziemieniem. Forsake of clarity użyję katody common-row w przykładach do reszty tego artykułu.

Budowa matrycy LED

do zbudowania matrycy katodowej 4×4 będziesz potrzebował 16 diod LED, czterech rezystorów, kilku nagłówków i płyty do prototypowania. Zacząłem od przyklejenia desek do prototypowania klejem epoksydowym. W ten sposób łatwiej jest miećpośrednice pięknie wyrównane. Podczas klejenia diod LED upewnij się, że długie i krótkie są wyrównane w ten sam sposób.

klejenie matrycy led

gdy klej jest suchy, nadszedł czas na zginanie i lutowanie. Najpierw zginać wszystkie katodesto lewo jak najbliżej do prototypowania pokładzie, jak to możliwe. Przylutuj wszystkie katody w każdym rzędzie razem. Gdy katody są gotowe, zgiąć wszystkie anody. Anody nie muszą dotykać katod. Użyłem kawałka plastikowej rurki, aby pomóc zginać anody, tworząc most nad katodami.

zginanie nóg

teraz lutuj wszystkie anody w każdym rzędzie. Przylutuj nagłówki i podłącz rzędy katod bezpośrednio do nagłówka.

Dolne

wiersze anod są połączone z nagłówkiem z rezystorami ograniczającymi prąd.Wartość rezystora zależy od zastosowanej diody LED. Sprawdź kartę danych LED dla napięcia i prądu. LEDcalculator pomoże Ci znaleźć opornik wyjściowy. Matrix jest teraz gotowy do testów.

Top

adresowanie pojedynczej diody LED

podłączenie uziemienia do wiersza A i dodatniego napięcia do kolumny 1 zapali prawą górną diodę LED (a,1).

pojedyncza dioda led świeci

podłączenie masy do rzędu D i dodatniego napięcia do kolumny 4 zapali dolną diodę LED (D,4).

pojedyncza dioda LED świeci

intuicja powiedziałaby,że oświetlenie zarówno (a,1), Jak I (D, 4) w tym samym czasie jest po prostu podłączeniem wszystkich czterech przewodów. Tak nie jest. Świecą cztery diody LED. Dzieje się tak, ponieważ prąd przepływa również przez(a, 4) i (D,1).

cztery diody LED świeciły

multipleksowanie i trwałość widzenia

multipleksowanie może być używane do wyświetlania dowolnych wzorów za pomocą matryc LED. Multipleksowanie jest czasami nazywane również skanowaniem. Skanuje wiersze (zwykle od góry do dołu) i jednocześnie świeci diody LED tylko w jednym rzędzie. Coś jak podążanie za:

  1. zacznij od odłączenia wszystkiego.
  2. podłącz napięcie dodatnie wszystkie potrzebne kolumny.
  3. podłącz rząd do ziemi. To świeci potrzebne diody LED w rzędzie.
  4. odłącz wiersz i wszystkie kolumny.
  5. wykonaj te same kroki jeden po drugim do wszystkich wierszy, a następnie zacznij od początku.

zrób to powoli, a zobaczysz migające wiersze LED. Zrób to bardzo szybko, a ludzkie oko zobaczy cały wzór. Zjawisko nazywa sięosobistość widzenia.

narysuj wzór

napiszmy prosty kod do rysowania wzoru na macierzy. Uwaga!Mimo, że używam Arduino pokładzie nie używam Arduino biblioteki norIDE dla rozwoju. Podoba mi się jednak schemat numeracji pinów Arduino.Funkcje pin_mode()i digital_write() działają dokładnie tak samo jak ich odpowiedniki Arduino.

zaczynamy od ustawienia pinów i stanu domyślnego dla nich.

uint8_t column_pins = { 2, 3, 4, 5 };uint8_t row_pins = { 11, 10, 9, 8 };static void init(void) { /* Turn all columns off by setting then low. */ for (uint8_t x=0; x<4; x++) { pin_mode(column_pins, OUTPUT); digital_write(column_pins, LOW); } /* Turn all rows off by setting then high. */ for (uint8_t y=0; y<4; y++) { pin_mode(row_pins, OUTPUT); digital_write(row_pins, HIGH); }}

do wyświetlenia wzorca na macierzy używamy funkcji draw().Bitmapa jest przekazywana jako tablica dwuwymiarowa. Opóźnienie jest używane tylko dlamonstrować trwałość widzenia.

uint8_t pattern = {{1,0,0,1}, {0,1,0,0}, {0,0,1,0}, {1,0,0,1}};void draw(uint8_t buffer, uint8_t delay) { for (uint8_t row=0; row<4; ++row) { /* Connect or disconnect columns as needed. */ for (uint8_t column=0; column<4; ++column) { digital_write(column_pins, buffer); } /* Turn on whole row. */ digital_write(row_pins, LOW); _delay_ms(delay); /* Turn off whole row. */ digital_write(row_pins, HIGH); }}

aby zbadać trwałość efektu widzenia, rysujemy wzór zróżnymi opóźnieniami.

uint8_t main(void) { init(); /* With 100ms delay eye can see updating row by row. */ for (uint8_t i=0; i<10; i++) { draw(pattern, 100); } /* With 10ms delay pattern appears but flickers. */ for (uint16_t i=0; i<100; i++) { draw(pattern, 10); } /* Withoud delay solid pattern appears. */ while (1) { draw(pattern, 1); } return 0;}

Pełny kod można znaleźć na stronie github.Sprawdź wyjście z wideo poniżej.

więcej czytania

umiejętności obwodu: Matryca LED przez magazyn Make. Prowadzenie diody LED z rezystorem lub Bez przez Alexandra Webera. Wprowadzenie do prowadzenia matryc LED (PDF) technote firmy Avago Technologies. Diody elektroluminescencyjne (LED) firmy Electronics Club.

Posted in

AVR Electronics

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.