Moduł z panelem diodowym – uruchomienie

Testowałem ostatnio panel z 64 diodami świecącymi:

ledPanel_04Panel sterowany jest przez układ MAX7219. Do jego obsługi wystarczy 5 kabelków.


Sprzęt do testów dostarczył: silong_pl
silong


Moduł

Moduł składa się z panelu 35x35mm z 64 LED’ami (8 rzędów po 8 kolumn). Obok panelu znajdziecie sterownik MAX7219 w wersji PDIP (można go więc wymienić w razie nieszczęścia).

Na płytce umieszczono również 2 zestawy wyprowadzeń. Każde składa się z 5 pinów:

  • VCC: zasilanie modułu,
  • GND: masa,
  • CS: chip select, wybór czipu, np.  podłącz do pinu 12 Arduino,
  • DIN: wejście danych, np. podłącz do pinu 13 Arduino,
  • CLK: zegar, np. do pinu 11 Arduino,

Drugi zestaw pinów pozwala na „łańcuchowe” podłączenie kolejnego modułu. Jego pin DOUT należy podłączyć do DIN poprzedniego modułu.

Biblioteka

Do obsługi tego modułu użyłem bibliotekę wayoda LedControl. Możecie ją pobrać z githuba. Przykładowo, dla Windows:

  • Otwórzcie stronę https://github.com/wayoda/LedControl,
  • W prawym górnym rogu znajdźcie opcję „Clone or Download”,
    led_panel
  • Wybierzcie opcję „Download ZIP”,
  • Zapiszcie plik na dysku.

Zapisane archiwum rozpakujcie do podkatalogu „./libraries” wskazanego przez ustawienia Arduino IDE – u mnie „/home/arek/sketchbook/libraries”. Katalog ten możecie odczytać w okienku File/Preferences (Plik/Preferencje):

IR_01Po tym jak rozpakujecie pliki, zamknijcie Arduino IDE. Po jego ponownym uruchomieniu, bibliotekę znajdziecie w „Sketch/Include libraries” („Szkic/Dołącz bibliotekę”) pod nazwą „LedControl”.

Możecie też pobrać tą bibliotekę wykorzystując git’a. Przejdę do „/home//arek/sketchbook/libraries” i pobiorę pliki bezpośrednio z repozytorium:

Wkrótce w podkatalogu ~/sketchbook/libraries pojawi się  LedControl z kodem biblioteki.

Uruchamianie biblioteki

Otwórzcie teraz nowy szkic. Użyjcie menu „Sketch/Include libraries/LedControl” („Szkic/Dołącz bibliotekę/LedControl”). W Waszym szkicu pojawi się nagłówek biblioteki:


Bibliotekę tą musicie dodać przez menu. „Ręczne” wpisanie linii:

…nie zadziała i skończy się błędami przy kompilacji szkicu!

Zaczniemy od stworzenia obiekty klasy LedControl:

Parametry <DIN>, <CLK>, <CS> ustawcie na piny Arduino, do których podłączyliście panel. <IlośćModułów> oznacza ilość połączonych „łańcuchowo” modułów – u mnie 1, a więc:

Czas zainicjować moduł:

Zwróćcie uwagę na linijkę:

Domyślnie panel znajduje się w trybie uśpienia, kiedy to zużywa minimalną ilość prądu. Wywołanie matrix.shutdown(0,false); przełącza panel w tryb normalnej pracy. Wywołanie matrix.shutdown(0,true); przełącza panel w tryb oszczędzania energii. Parametr „0” odnosi się do numeru modułu w łańcuch (ja mam tylko jeden).

Kolejna linijka:

…ustawia jasność panelu 0 (czyli pierwszego w kolejności). Kolejny parametr wywołania funkcji (tu: 8) oznacza jasność wyświetlacza. Wartość ta może się zmieniać się w zakresie 0-15.

Ostatnia z instrukcji:

Czyści panel pierwszego z modułów w łańcuchu – gasi wszystkie diody na panelu.

Wyświetlmy coś…

Pojedyncza dioda.

Biblioteka dostarcza funkcję setLed() do zapalenia pojedynczej diody:

Parametr <stan>: jeżeli true: zapala diodę; false – gasi. Zapalenie górnej lewej diody na panelu:

ledPanel_00Górna prawa dioda:

ledPanel_01Dolna lewa dioda:

ledPanel_02Dolna prawa dioda:

ledPanel_03Cały rząd/kolumna

Możecie również zapalać całe rzędy i kolumny. Służą do tego funkcje:

Wtedy:

ledPanel_04

„B…” oznacza liczbę binarną – podajemy wtedy: 0: dioda zgaszona; 1: zapalona. Oczywiście liczby binarne możecie przerobić na np. szesnastkowe (zaczynają się od „0x”) lub dziesiętne.

Uwaga na zasilanie

Panele potrafią być całkiem prądożerne. Sprawdziłem to przy zapalonych wszystkich diodach, gdzie: matrix.setRow(0, z, 0xFF); dla z = 0..7.

W zależności od jasności (ustawianej funkcją LedControl::setIntensity()):

Jasność: Pobór prądu ([mA]) Jasność: Pobór prądu ([mA])
0  14 8  109
1  29 9  118
2  43 10  126
3  56 11  134
4  68 12  142
5  79 13  149
6  90 14 156
7  100 15  162

Zauważcie, że przy maksymalnej jasności ( LedControl::setIntensity(15)), panel pobiera nawet 160mA natężenia prądu.

Podsumowanie

Panel tego typu  może stawić bardzo ciekawe uzupełnienie Waszych problemów. Jest tani, nie wymaga żadnych elementów dodatkowych a – dzięki ogólnie dostępnym bibliotekom – jego obsługa nie powinna sprawić Wam żadnych kłopotów. Co ciekawe – można je łączyć łańcuchowo.

Zwróćcie uwagę na wysoki pobór prądu przy maksymalnych jasnościach.

Źródła

Jedna myśl w temacie “Moduł z panelem diodowym – uruchomienie”

Dodaj komentarz