Spisu treści:

Montaż i testowanie matrycy punktowej LED MAX7219: 6 kroków (ze zdjęciami)
Montaż i testowanie matrycy punktowej LED MAX7219: 6 kroków (ze zdjęciami)

Wideo: Montaż i testowanie matrycy punktowej LED MAX7219: 6 kroków (ze zdjęciami)

Wideo: Montaż i testowanie matrycy punktowej LED MAX7219: 6 kroków (ze zdjęciami)
Wideo: Sufit napinany z oświetleniem - poznaj oświetlenie cyfrowe i matryce LED 2024, Listopad
Anonim
Image
Image
Sprawdź pakiet
Sprawdź pakiet

Wyświetlacz z matrycą punktową to urządzenie wyświetlające, które zawiera diody elektroluminescencyjne ustawione w formie matrycy. Te wyświetlacze z matrycą punktową są używane w aplikacjach, w których symbole, grafika, znaki, alfabety, cyfry muszą być wyświetlane razem zarówno statycznie, jak i Ruch przewijania. Wyświetlacz Dot Matrix jest produkowany w różnych wymiarach, takich jak 5x7, 8x8, 16x8, 128x16, 128x32 i 128x64, gdzie liczby reprezentują diody LED w rzędach i kolumnach. Również te wyświetlacze są dostępne w różnych kolorach, takich jak czerwony, zielony, żółty, niebieski, Pomarańczowy, Biały.

W tej instrukcji przejdę przez połączenie matrycy punktowej 8x8, która ma sterownik MAX7219 z Arduino Uno. Zacznijmy.

Kieszonkowe dzieci

MAX7219

Krok 1: Sprawdź pakiet

Jak widać, mam wersję smt płyty sterownika, bardzo ważne jest, aby zweryfikować każdy potrzebny komponent, ponieważ komponenty smd są bardzo małe i można je łatwo zgubić. Dostępne są również wersje dip, ale użyłem wersja smt ze względu na swój rozmiar.

Krok 2: Trochę o tej konkretnej matrycy punktowej

Trochę o tej konkretnej matrycy punktowej
Trochę o tej konkretnej matrycy punktowej

pojedynczy moduł może sterować wspólną katodą 8x8 z matrycą punktową.

Napięcie robocze: 5 v

Wymiary: długość 3,2 cm X 3,2 cm szerokość X 1,3 cm wysokość, otwory na cztery śruby, średnica 3 mm

Moduły z interfejsami wejściowymi i wyjściowymi, obsługa kaskadowania wielu modułów.

Zaciski danych IN i OUT są określone w module.

Krok 3: Sterownik MAX7219

Sterownik MAX7219
Sterownik MAX7219
Sterownik MAX7219
Sterownik MAX7219

MAX7219 to układ scalony przeznaczony do sterowania matrycą LED 8x8. Układ scalony to sterowniki wyświetlacza z wejściem szeregowym ze wspólną katodą (Common Negative), które łączą mikroprocesory (lub mikrokontroler) z 7-segmentowymi numerycznymi wyświetlaczami LED o maksymalnie 8 cyfrach, wyświetlaczami słupkowymi lub 64 pojedynczymi diodami LED.

Funkcje i specyfikacje

Zakres napięcia roboczego: +4,0 do +5,5V

Zalecane napięcie robocze: +5V

Maksymalne napięcie zasilania: 6V

Maksymalny prąd dozwolony przez każdy pin segmentowy: 100mA

Maksymalny prąd, jaki może przepływać przez każdy pin uziemiający DIGIT: 500mA

Niski pobór mocy

Czas opóźnienia transmisji danych do segmentu: 2,2 mSec

Temperatura pracy: 0°C do +70°C

Temperatura przechowywania: od -65°C do +150°C

Krok 4: Obwód

Obwód
Obwód
Obwód
Obwód

Obwód jest dość prosty i można go zbudować za pomocą przewodów połączeniowych męskich i żeńskich. Po prostu podążaj za pinoutem i zbuduj obwód. Możesz później zmontować go na płytce drukowanej, jeśli robisz stałą aplikację dla Matrix.

Konfiguracja pinów jest następująca:

  • Pin Vcc do 5 V Arduino.
  • Gnd do Gnd Pin Arduino.
  • DIN do cyfrowego pinu 12 Arduino.
  • CS na cyfrowy pin 11 Arduino
  • CLK do cyfrowego pinu 10 Arduino.

Krok 5: Kodeks

Tutaj w tej instrukcji podam dwa różne kody. Jeden wygeneruje kilka angielskich alfabetów i emotikonów w Matrixie. Drugi sprawi, że wszystkie 64 diody LED zapalą się jedna po drugiej. Aby to zadziałało, musisz użyć biblioteki lledcontrol.

To jest kod dla angielskich alfabetów i uśmiechów

#zawiera int DIN = 12; wewn CS = 11; wewn CLK = 10; bajt e[8]= {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bajt d[8]= {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bajt u[8]= {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt c[8]= {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; bajt ósmy[8]= {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bajt s[8]= {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; kropka bajtu[8]= {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bajt o[8]= {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bajt m[8]= {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup(){ lc.shutdown(0, fałsz); // MAX72XX jest w trybie oszczędzania energii podczas uruchamiania lc.setIntensity(0, 15); // Ustaw jasność na maksymalną wartość lc.clearDisplay(0); // i wyczyść wyświetlacz } void loop(){ byte smile[8]= {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; neutralny bajt[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bajt marszczy brwi[8]= {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(uśmiech); opóźnienie (1000); printByte(neutralny); opóźnienie (1000); printByte(marszczy brwi); opóźnienie (1000); printEduc8s(); lc.clearWyświetlacz(0); opóźnienie (1000); } void printEduc8s() { printByte(e); opóźnienie (1000); printByte(d); opóźnienie (1000); printByte(u); opóźnienie (1000); printByte(c); opóźnienie (1000); printByte(osiem); opóźnienie (1000); printByte(ów); opóźnienie (1000); printByte(kropka); opóźnienie (1000); printByte(c); opóźnienie (1000); printByte(o); opóźnienie (1000); printByte(m); opóźnienie (1000); } void printByte(znak bajtu ) { int i = 0; for(i=0;i<8;i++) { lc.setRow(0, i, znak); } }

oraz kod do testowania wszystkich 64 diod LED

//Zawsze musimy dołączyć bibliotekę#include "LedControl.h"

/*

Teraz potrzebujemy LedControl do pracy. ***** Te numery pinów prawdopodobnie nie będą działać z twoim sprzętem ***** pin 12 jest podłączony do DataIn pin 10 jest podłączony do CLK pin 11 jest podłączony do LOAD Mamy tylko jeden MAX72XX. */ LedControl lc=LedControl(12, 11, 10, 1);

/* zawsze trochę czekamy między aktualizacjami wyświetlacza */

bez znaku długi czas opóźnienia=100;

pusta konfiguracja () {

/* MAX72XX jest w trybie oszczędzania energii podczas uruchamiania, musimy wykonać budzenie */ lc.shutdown(0, false); /* Ustaw jasność na średnie wartości */ lc.setIntensity(0, 8); /* i wyczyść wyświetlacz */ lc.clearDisplay(0); }

/*

Ta metoda wyświetla jeden po drugim znaki słowa „Arduino” na matrycy. (potrzebujesz co najmniej 5x7 ledów, aby zobaczyć całe znaki) */ void writeArduinoOnMatrix() { /* tutaj są dane dla znaków */ byte a[5]={B01111110, B10001000, B10001000, B10001000, B01111110}; bajt r[5]={B00111110, B00010000, B00100000, B00100000, B00010000}; bajt d[5]={B00011100, B00100010, B00100010, B00010010, B11111110}; bajt u[5]={B00111100, B00000010, B00000010, B00000100, B00111110}; bajt i[5]={B00000000, B00100010, B10111110, B0000010, B00000000}; bajt n[5]={B00111110, B00010000, B00100000, B00100000, B00011110}; bajt o[5]={B00011100, B00100010, B00100010, B00100010, B00011100};

/* teraz wyświetlaj je jeden po drugim z małym opóźnieniem */

lc.setRow(0, 0, a[0]); lc.setRow(0, 1, a[1]); lc.setRow(0, 2, a[2]); lc.setRow(0, 3, a[3]); lc.setRow(0, 4, a[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, r[0]); lc.setRow(0, 1, r[1]); lc.setRow(0, 2, r[2]); lc.setRow(0, 3, r[3]); lc.setRow(0, 4, r[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, d[0]); lc.setRow(0, 1, d[1]); lc.setRow(0, 2, d[2]); lc.setRow(0, 3, d[3]); lc.setRow(0, 4, d[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, u[0]); lc.setRow(0, 1, u[1]); lc.setRow(0, 2, u[2]); lc.setRow(0, 3, u[3]); lc.setRow(0, 4, u[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, i[0]); lc.setRow(0, 1, i[1]); lc.setRow(0, 2, i[2]); lc.setRow(0, 3, i[3]); lc.setRow(0, 4, i[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, n[0]); lc.setRow(0, 1, n[1]); lc.setRow(0, 2, n[2]); lc.setRow(0, 3, n[3]); lc.setRow(0, 4, n[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, o[0]); lc.setRow(0, 1, o[1]); lc.setRow(0, 2, o[2]); lc.setRow(0, 3, o[3]); lc.setRow(0, 4, o[4]); opóźnienie (czas opóźnienia); lc.setRow(0, 0, 0); lc.setRow(0, 1, 0); lc.setRow(0, 2, 0); lc.setRow(0, 3, 0); lc.setRow(0, 4, 0); opóźnienie (czas opóźnienia); }

/*

Ta funkcja zapala kilka diod z rzędu. Wzór będzie powtarzany w każdym rzędzie. Wzór będzie migać wraz z numerem wiersza. wiersz numer 4 (indeks==3) mignie 4 razy itd. */ void rows() { for(int row=0;row<8;row++) { delay(delaytime); lc.setRow(0, wiersz, B10100000); opóźnienie (czas opóźnienia); lc.setRow(0, wiersz, (bajt)0); for(int i=0;i

/*

Ta funkcja zapala kilka diod w kolumnie. Wzór będzie się powtarzał w każdej kolumnie. Wzór będzie migał wraz z numerem kolumny. kolumna numer 4 (indeks==3) mignie 4 razy itd. */ void column() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, kolumna, B10100000); opóźnienie (czas opóźnienia); lc.setColumn(0, kolumna, (bajt)0); for(int i=0;i

/*

Ta funkcja zaświeci każdą diodę LED na matrycy. Dioda będzie migać wraz z numerem rzędu. wiersz numer 4 (indeks==3) mignie 4 razy itd. */ void single() { for(int row=0;row<8;row++) { for(int col=0;col<8;col++) { opóźnienie (czas opóźnienia); lc.setLed(0, wiersz, kolumna, prawda); opóźnienie (czas opóźnienia); for(int i=0;i

pusta pętla () {

writeArduinoOnMatrix(); wydziwianie(); kolumny(); pojedynczy(); }

Krok 6: Wynik

Image
Image
Wyjście
Wyjście
Wyjście
Wyjście
Wyjście
Wyjście

Zobacz pełny film tutaj:-MAX7219 8x8 LED MATRIX MONTAŻ I TESTOWANIE Z ARDUINO

Cóż, cała ta ciężka praca na pewno dobrze się opłaca, gdy zobaczysz wynik. To jest tego warte !!

Subskrybuj mój kanał na youtube:-Creative Stuff

Zalecana: