Inhoudsopgave:

MAX7219 LED Dot Matrix-montage en testen - Ajarnpa
MAX7219 LED Dot Matrix-montage en testen - Ajarnpa

Video: MAX7219 LED Dot Matrix-montage en testen - Ajarnpa

Video: MAX7219 LED Dot Matrix-montage en testen - Ajarnpa
Video: MakeCode and MAX7219 8x8 LED matrix with Micro:Bit 2024, Juni-
Anonim
Image
Image
Controleer het pakket
Controleer het pakket

Een Dot-Matrix Display is een weergaveapparaat dat lichtgevende diodes bevat die in de vorm van een matrix zijn uitgelijnd. Scrollende beweging. Dot Matrix Display is vervaardigd in verschillende afmetingen zoals 5x7, 8x8, 16x8, 128x16, 128x32 en 128x64 waarbij de cijfers LED's in rijen en kolommen vertegenwoordigen. Ook deze displays zijn verkrijgbaar in verschillende kleuren zoals rood, groen, geel, blauw, Oranje, wit.

In deze Instructable zal ik een 8x8 Dot Matrix met een MAX7219-stuurprogramma naar een Arduino Uno gaan interfacing. Laten we beginnen.

Benodigdheden

MAX7219

Stap 1: Controleer het pakket

Zoals je kunt zien, heb ik een smt-versie van het driverbord, het is erg belangrijk om alle benodigde componenten te verifiëren, aangezien de smd-componenten erg klein zijn en je ze gemakkelijk kunt verliezen. Er is ook een dip-versie online beschikbaar, maar ik gebruikte de smt-versie voor zijn grootte.

Stap 2: Een beetje over deze specifieke puntmatrix

Een beetje over deze specifieke puntenmatrix
Een beetje over deze specifieke puntenmatrix

enkele module kan de 8x8 dot matrix gemeenschappelijke kathode aansturen.

Bedrijfsspanning: 5 v

Afmetingen: lengte 3,2 cm X 3,2 cm breed X 1,3 cm hoog, gaten met vier schroeven, de diameter van 3 mm

Modules met input en output interfaces, ondersteuning voor het cascaderen van meerdere modules.

Data IN en OUT aansluitingen zijn gespecificeerd op de module.

Stap 3: Het MAX7219-stuurprogramma

Het MAX7219-stuurprogramma
Het MAX7219-stuurprogramma
Het MAX7219-stuurprogramma
Het MAX7219-stuurprogramma

De MAX7219 is een IC ontworpen om een 8x8 LED MATRIX aan te sturen. Het IC is een seriële input common-kathode (Common Negative) displaydrivers die microprocessors (of microcontroller) koppelen aan 7-segment numerieke LED-displays van maximaal 8 cijfers, staafdiagramdisplays of 64 individuele LED's.

Functies en specificaties

Bedrijfsspanningsbereik: +4,0 tot +5,5V

Aanbevolen bedrijfsspanning: +5V

Maximale voedingsspanning: 6V

Maximale stroom die door elke segmentpen mag worden getrokken: 100mA

Maximale stroom toegestaan door elke DIGIT-aardingspin: 500mA

Laag energieverbruik

Vertragingstijd data-naar-segment: 2,2 mSec

Bedrijfstemperatuur: 0°C tot +70°C

Opslagtemperatuur: -65 °C tot +150 °C

Stap 4: Het circuit

Het circuit
Het circuit
Het circuit
Het circuit

Het circuit is vrij eenvoudig en kan worden gebouwd met behulp van mannelijke naar vrouwelijke jumperdraden. Volg gewoon de pinout en bouw het circuit. Je kunt het later op een PCB monteren als je een permanente toepassing voor de Matrix maakt.

De pinconfiguratie is als volgt:

  • Vcc naar 5V Pin van Arduino.
  • Gnd naar Gnd Pin van de Arduino.
  • DIN naar digitale pin 12 van de Arduino.
  • CS naar digitale pin 11 van de Arduino
  • CLK naar digitale pin 10 van de Arduino.

Stap 5: De code

Hier in deze Instructable zal ik je twee verschillende codes geven. Men zal enkele Engelse alfabetten en smilies op de Matrix genereren. De andere zal alle 64 LED's één voor één laten oplichten. U moet de lledcontrol-bibliotheek gebruiken om het te laten werken.

Dit is de code voor Engelse alfabetten en smiles

#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}; acht byte[8]= {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s[8]= {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte-punt[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); // De MAX72XX staat in de energiebesparende modus bij het opstarten lc.setIntensity (0, 15); // Stel de helderheid in op maximale waarde lc.clearDisplay (0); // en wis het scherm } void loop(){ byte smile[8]= {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutraal[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte frons[8]= {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(glimlach); vertraging (1000); printByte(neutraal); vertraging (1000); printByte (frons); vertraging (1000); printEduc8s(); lc.clearDisplay(0); vertraging (1000); } void printEduc8s() { printByte(e); vertraging (1000); printByte(d); vertraging (1000); printByte(u); vertraging (1000); printByte(c); vertraging (1000); printByte(acht); vertraging (1000); printByte(s); vertraging (1000); printByte(punt); vertraging (1000); printByte(c); vertraging (1000); printByte(o); vertraging (1000); printByte(m); vertraging (1000); } void printByte (byteteken ) { int i = 0; for(i=0;i<8;i++) { lc.setRow(0, i, character); } }

en de code voor het testen van alle 64 LED's

//We moeten altijd de bibliotheek #include "LedControl.h" opnemen

/*

Nu hebben we een LedControl nodig om mee te werken. ***** Deze pinnummers werken waarschijnlijk niet met uw hardware ***** pin 12 is verbonden met de DataIn pin 10 is verbonden met de CLK pin 11 is verbonden met LOAD We hebben maar een enkele MAX72XX. */ LedControl lc=LedControl (12, 11, 10, 1);

/* we wachten altijd een beetje tussen updates van het scherm */

unsigned lange vertragingstijd=100;

ongeldige setup() {

/* De MAX72XX staat in de energiebesparende modus bij het opstarten, we moeten een wake-up call doen */ lc.shutdown(0, false); /* Stel de helderheid in op gemiddelde waarden */ lc.setIntensity(0, 8); /* en wis het scherm */ lc.clearDisplay(0); }

/*

Met deze methode worden de tekens voor het woord "Arduino" één voor één op de matrix weergegeven. (je hebt minimaal 5x7 leds nodig om de hele tekens te zien) */ void writeArduinoOnMatrix() { /* hier zijn de gegevens voor de tekens */ 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};

/* toon ze nu één voor één met een kleine vertraging */

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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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]); vertraging (vertragingstijd); 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); vertraging (vertragingstijd); }

/*

Deze functie laat een aantal Leds achter elkaar branden. Het patroon wordt op elke rij herhaald. Het patroon knippert samen met het rijnummer. rij nummer 4 (index==3) knippert 4 keer enz. */ void rows() { for(int row=0;row<8;row++) { delay(delaytime); lc.setRow(0, rij, B10100000); vertraging (vertragingstijd); lc.setRow(0, rij, (byte)0); for(int i=0;i

/*

Deze functie verlicht een aantal Leds in een kolom. Het patroon wordt op elke kolom herhaald. Het patroon knippert samen met het kolomnummer. kolom nummer 4 (index==3) knippert 4 keer enz. */ void columns() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, col, B10100000); vertraging (vertragingstijd); lc.setColumn(0, col, (byte)0); for(int i=0;i

/*

Deze functie zal elke Led op de matrix oplichten. De led knippert samen met het rijnummer. rij nummer 4 (index==3) knippert 4 keer enz. */ void single() { for(int row=0;row<8;row++) { for(int col=0;col<8;col++) { vertraging (vertragingstijd); lc.setLed(0, rij, col, waar); vertraging (vertragingstijd); for(int i=0;i

lege lus() {

schrijfArduinoOnMatrix(); rijen(); kolommen(); enkel(); }

Stap 6: De uitvoer

Image
Image
Het resultaat
Het resultaat
Het resultaat
Het resultaat
Het resultaat
Het resultaat

Bekijk hier de volledige video: -MAX7219 8x8 LED MATRIX MONTAGE EN TESTEN met ARDUINO

Nou, al dit harde werk loont zeker goed als je het resultaat ziet. Het is het waard !!

Abonneer je op mijn youtube-kanaal:-Creative Stuff

Aanbevolen: