Innehållsförteckning:

MAX7219 LED Dot Matrix Montering och testning: 6 steg (med bilder)
MAX7219 LED Dot Matrix Montering och testning: 6 steg (med bilder)

Video: MAX7219 LED Dot Matrix Montering och testning: 6 steg (med bilder)

Video: MAX7219 LED Dot Matrix Montering och testning: 6 steg (med bilder)
Video: Lesson 05: Introduction to Serial Monitor | Robojax Arduino Step By Step Course 2024, November
Anonim
Image
Image
Kontrollera paketet
Kontrollera paketet

En Dot-Matrix Display är en displayenhet som innehåller ljusdioder som är inriktade i form av matris. Denna Dot-matrisdisplayer används i applikationer där symbol, grafik, tecken, alfabet, siffror måste visas tillsammans i statisk och Scrolling motion. Dot Matrix Display är tillverkad i olika dimensioner som 5x7, 8x8, 16x8, 128x16, 128x32 och 128x64 där siffrorna representerar lysdioder i rader och kolumner. Dessa displayer finns också i olika färger som rött, grönt, gult, blått, Orange, vit.

I denna instruktionsbok kommer jag att gå igenom gränssnitt mellan en 8x8 Dot Matrix som har en MAX7219 -drivrutin till en Arduino Uno. Låt oss komma igång.

Tillbehör

MAX7219

Steg 1: Kontrollera paketet

Som du kan se har jag en smt -version av förarkortet, det är mycket viktigt att verifiera alla komponenter som behövs eftersom smd -komponenterna är mycket små i storlek och du kan enkelt förlora dem. Det finns också dip -version tillgänglig online men jag använde smt -versionen för sin storlek.

Steg 2: Lite om denna speciella prickmatris

Lite om denna speciella prickmatris
Lite om denna speciella prickmatris

en enda modul kan driva en gemensam katod på 8x8 punkter.

Driftspänning: 5 v

Mått: längd 3,2 cm X 3,2 cm bred X 1,3 cm hög, hål med fyra skruvar, diametern 3 mm

Moduler med ingångs- och utgångsgränssnitt, stöd för att kaskadera flera moduler.

Data IN och OUT terminaler specificeras på modulen.

Steg 3: MAX7219 -drivrutinen

MAX7219 -drivrutinen
MAX7219 -drivrutinen
MAX7219 -drivrutinen
MAX7219 -drivrutinen

MAX7219 är en IC utformad för att styra en 8x8 LED MATRIX. IC: n är seriell ingång common-cathode (Common Negative) bildskärmsdrivrutiner som gränssnitt mikroprocessorer (eller mikrokontroller) till 7-segment numeriska LED-displayer med upp till 8 siffror, stapeldiagram eller 64 individuella lysdioder.

Funktioner och specifikationer

Driftspänningsområde: +4,0 till +5,5V

Rekommenderad driftsspänning: +5V

Maximal matningsspänning: 6V

Maximal ström tillåten att dra genom varje segmentstift: 100mA

Maximal tillåten ström genom varje DIGIT -jordstift: 500mA

Låg energiförbrukning

Data-till-segment fördröjningstid: 2,2 mSek

Drifttemperatur: 0 ° C till +70 ° C

Lagringstemperatur: -65 ° C till +150 ° C

Steg 4: Kretsen

Kretsen
Kretsen
Kretsen
Kretsen

Kretsen är ganska enkel och kan byggas med manliga till kvinnliga bygelkablar. Följ bara pinout och bygg kretsen. Du kan senare montera det på ett kretskort om du gör en permanent applikation för matrisen.

Stiftkonfigurationen är följande:

  • Vcc till 5V Pin of Arduino.
  • Gnd till Gnd Pin av Arduino.
  • DIN till Digital Pin 12 på Arduino.
  • CS till Digital Pin 11 på Arduino
  • CLK till Digital Pin 10 på Arduino.

Steg 5: Koden

Här i denna instruktionsbok ger jag dig två olika koder. Man kommer att generera några engelska alfabet och smilies på Matrix. Den andra till kommer att lysa upp alla 64 lysdioder en efter en. Du måste använda lledcontrol -biblioteket för att få det att fungera.

Detta är koden för engelska alfabet och leenden

#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte åtta [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bytepunkt [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // MAX72XX är i energisparläge vid start lc.setIntensity (0, 15); // Ställ in ljusstyrkan till maximivärdet lc.clearDisplay (0); // och rensa displayen} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte rynka [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (leende); fördröjning (1000); printByte (neutral); fördröjning (1000); printByte (rynka pannan); fördröjning (1000); printEduc8s (); lc.clearDisplay (0); fördröjning (1000); } void printEduc8s () {printByte (e); fördröjning (1000); printByte (d); fördröjning (1000); printByte (u); fördröjning (1000); printByte (c); fördröjning (1000); printByte (åtta); fördröjning (1000); printByte (s); fördröjning (1000); printByte (punkt); fördröjning (1000); printByte (c); fördröjning (1000); printByte (o); fördröjning (1000); printByte (m); fördröjning (1000); } void printByte (byte tecken ) {int i = 0; för (i = 0; i <8; i ++) {lc.setRow (0, i, tecken ); }}

och koden för att testa alla 64 lysdioder

// Vi måste alltid inkludera biblioteket#inkludera "LedControl.h"

/*

Nu behöver vi en LedControl att arbeta med. ***** Dessa pin -nummer fungerar förmodligen inte med din maskinvara ***** pin 12 är ansluten till DataIn pin 10 är ansluten till CLK pin 11 är ansluten till LOAD Vi har bara en enda MAX72XX. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * vi väntar alltid lite mellan uppdateringar av displayen */

osignerad lång fördröjning = 100;

void setup () {

/ * MAX72XX är i energisparläge vid start, vi måste göra ett väckningssamtal */ lc.stängning (0, falskt); / * Ställ in ljusstyrkan till ett medelvärde */ lc.setIntensity (0, 8); / * och rensa displayen */ lc.clearDisplay (0); }

/*

Denna metod visar tecknen för ordet "Arduino" en efter en på matrisen. (du behöver minst 5x7 lysdioder för att se hela tecknen) */ void writeArduinoOnMatrix () {/ *här är data för tecknen */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * visa dem nu en efter en med en liten fördröjning */

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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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]); fördröjning (fördröjningstid); 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); fördröjning (fördröjningstid); }

/*

Denna funktion tänder några lysdioder i rad. Mönstret kommer att upprepas på varje rad. Mönstret blinkar tillsammans med radnumret. rad nummer 4 (index == 3) blinkar 4 gånger etc. */ ogiltiga rader () {för (int rad = 0; rad <8; rad ++) {fördröjning (fördröjningstid); lc.setRow (0, rad, B10100000); fördröjning (fördröjningstid); lc.setRow (0, rad, (byte) 0); för (int i = 0; i

/*

Denna funktion lyser upp några lysdioder i en kolumn. Mönstret kommer att upprepas på varje kolumn. Mönstret blinkar tillsammans med kolumnnumret. kolumn nummer 4 (index == 3) blinkar 4 gånger etc. */ void columns () {for (int col = 0; col <8; col ++) {delay (delaytime); lc.setColumn (0, col, B10100000); fördröjning (fördröjningstid); lc.setColumn (0, col, (byte) 0); för (int i = 0; i

/*

Denna funktion lyser upp varje LED på matrisen. Lysdioden blinkar tillsammans med radnumret. rad nummer 4 (index == 3) blinkar 4 gånger etc. */ void enkel () {för (int rad = 0; rad <8; rad ++) {för (int col = 0; col <8; col ++) { fördröjning (fördröjningstid); lc.setLed (0, rad, kol, true); fördröjning (fördröjningstid); för (int i = 0; i

void loop () {

writeArduinoOnMatrix (); rader (); kolumner (); enda(); }

Steg 6: Utgången

Image
Image
Utgången
Utgången
Utgången
Utgången
Utgången
Utgången

Se hela videon här: -MAX7219 8x8 LED MATRIX MONTERING OCH TESTNING med hjälp av ARDUINO

Allt detta hårda arbete, lönar sig säkert ganska bra när du ser resultatet. Det är värt det !!

Prenumerera på min youtube-kanal: -Creative Stuff

Rekommenderad: