Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-23 15:01
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
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
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 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
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:
Een computer coderen en testen in machinetaal: 6 stappen
Een computer coderen en testen in machinetaal: in deze Instructable laat ik je zien hoe je een computerprogramma codeert en test in machinetaal. Machinetaal is de moedertaal van computers. Omdat het is samengesteld uit reeksen van enen en nullen, is het niet gemakkelijk te begrijpen door mensen. Om te werken
Temperatuursensoren testen - welke voor mij? 15 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Temperatuursensoren testen - welke voor mij?: Een van de eerste sensoren die nieuwkomers in fysiek computergebruik willen uitproberen, is iets om temperatuur te meten. Vier van de meest populaire sensoren zijn de TMP36, die een analoge uitgang heeft en een analoog naar digitaal converter nodig heeft, de DS18B20, die
6-assige sensormodule FSP200 Kalibratie en testen: 6 stappen
6-assige sensormodule FSP200 Kalibratie en testen: De FSP200 is een 6-assige inertiële meeteenheidprocessor die koers- en richtinguitvoer levert. Het voert een samensmelting van versnellingsmeter- en gyrosensoren uit voor een stabiele en nauwkeurige koers en richting. De FSP200 is geschikt voor gebruik in robotpr
Tinkercad gebruiken om uw hardware te testen en te implementeren: 5 stappen (met afbeeldingen)
Hoe Tinkercad te gebruiken om uw hardware te testen en te implementeren: Circuitsimulatie is een techniek waarbij computersoftware het gedrag van een elektronisch circuit of systeem simuleert. Nieuwe ontwerpen kunnen worden getest, geëvalueerd en gediagnosticeerd zonder het circuit of systeem daadwerkelijk te bouwen. Circuitsimulatie kan een
Tips voor het testen van componenten: 5 stappen
Tips voor het testen van componenten: Is het je ooit overkomen dat je een project hebt gemaakt en het niet werkte vanwege defecte transistors of defecte displays. Dus hier is een apparaat waarmee je componenten zoals transistor, diodes, LDR, LED, enz. kunt testen voordat je aan het project begint. Het