Inhaltsverzeichnis:

MAX7219 LED-Punktmatrix-Montage und -Tests - Gunook
MAX7219 LED-Punktmatrix-Montage und -Tests - Gunook

Video: MAX7219 LED-Punktmatrix-Montage und -Tests - Gunook

Video: MAX7219 LED-Punktmatrix-Montage und -Tests - Gunook
Video: LED Laufschrift 6 Stellen DOT Matrix 2024, November
Anonim
Image
Image
Überprüfen Sie das Paket
Überprüfen Sie das Paket

Ein Dot-Matrix-Display ist ein Anzeigegerät, das in Form einer Matrix ausgerichtete Leuchtdioden enthält Scrollende Bewegung. Dot Matrix Display wird in verschiedenen Abmessungen wie 5x7, 8x8, 16x8, 128x16, 128x32 und 128x64 hergestellt, wobei die Zahlen LEDs in Reihen und Spalten darstellen. Auch diese Displays sind in verschiedenen Farben wie Rot, Grün, Gelb, Blau, Orange, Weiß.

In diesem Instructable werde ich eine 8x8 Dot Matrix mit einem MAX7219-Treiber an ein Arduino Uno anbinden. Lassen Sie uns beginnen.

Lieferungen

MAX7219

Schritt 1: Überprüfen Sie das Paket

Wie Sie sehen können, habe ich eine SMT-Version der Treiberplatine. Es ist sehr wichtig, alle benötigten Komponenten zu überprüfen, da die SMD-Komponenten sehr klein sind und Sie sie leicht verlieren können die smt-version für ihre größe.

Schritt 2: Ein wenig über diese spezielle Punktmatrix

Ein wenig über diese spezielle Punktmatrix
Ein wenig über diese spezielle Punktmatrix

Ein einzelnes Modul kann eine gemeinsame Kathode mit 8x8-Punktmatrix ansteuern.

Betriebsspannung: 5 V

Abmessungen: Länge 3,2 cm x 3,2 cm breit x 1,3 cm hoch, Löcher mit vier Schrauben, der Durchmesser von 3 mm

Module mit Eingangs- und Ausgangsschnittstellen, Unterstützung für die Kaskadierung mehrerer Module.

Die Klemmen Data IN und OUT sind auf dem Modul angegeben.

Schritt 3: Der MAX7219-Treiber

Der MAX7219-Treiber
Der MAX7219-Treiber
Der MAX7219-Treiber
Der MAX7219-Treiber

Der MAX7219 ist ein IC zur Steuerung einer 8x8 LED MATRIX. Der IC besteht aus Anzeigetreibern mit gemeinsamer Kathode (Common Negative) mit seriellem Eingang, die Mikroprozessoren (oder Mikrocontroller) mit numerischen 7-Segment-LED-Anzeigen mit bis zu 8 Stellen, Balkendiagrammanzeigen oder 64 einzelnen LEDs verbinden.

Funktionen und Spezifikationen

Betriebsspannungsbereich: +4,0 bis +5,5 V

Empfohlene Betriebsspannung: +5V

Maximale Versorgungsspannung: 6V

Maximaler Strom, der durch jeden Segment-Pin gezogen werden darf: 100 mA

Maximaler Strom, der durch jeden DIGIT-Erdungsstift fließen darf: 500 mA

Energieeffizient

Daten-zu-Segment-Verzögerungszeit: 2,2 ms

Betriebstemperatur: 0°C bis +70°C

Lagertemperatur: -65°C bis +150°C

Schritt 4: Die Schaltung

Die Rennbahn
Die Rennbahn
Die Rennbahn
Die Rennbahn

Die Schaltung ist recht einfach und kann mit männlichen zu weiblichen Überbrückungsdrähten aufgebaut werden. Folgen Sie einfach der Pinbelegung und bauen Sie die Schaltung auf. Sie können es später auf einer Leiterplatte montieren, wenn Sie die Matrix dauerhaft verwenden.

Die Pin-Konfiguration ist wie folgt:

  • Vcc zu 5V Pin von Arduino.
  • Gnd zu Gnd Pin des Arduino.
  • DIN auf Digital Pin 12 des Arduino.
  • CS an Digital Pin 11 des Arduino
  • CLK an Digital Pin 10 des Arduino.

Schritt 5: Der Code

Hier in diesem Instructable werde ich Ihnen zwei verschiedene Codes zur Verfügung stellen. Man wird einige englische Alphabete und Smilies auf der Matrix generieren. Beim anderen leuchten alle 64 LEDs nacheinander auf. Sie müssen die lledcontrol-Bibliothek verwenden, damit es funktioniert.

Dies ist der Code für englische Alphabete und Lächeln

#include int DIN = 12; intCS = 11; intCLK = 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 acht[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); //Der MAX72XX befindet sich beim Start im Energiesparmodus lc.setIntensity (0, 15); // Setzen Sie die Helligkeit auf den maximalen Wert lc.clearDisplay(0); // und lösche die Anzeige aufrechtzuerhalten. Void Schleife () { byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; Byte neutral[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; Byte Stirnrunzeln [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(Lächeln); Verzögerung (1000); printByte(neutral); Verzögerung (1000); printByte (die Stirn runzeln); Verzögerung (1000); printEduc8s(); lc.clearDisplay(0); Verzögerung (1000); aufrechtzuerhalten. Void printEduc8s () { printByte (e); Verzögerung (1000); printByte(d); Verzögerung (1000); printByte(u); Verzögerung (1000); printByte(c); Verzögerung (1000); printByte(acht); Verzögerung (1000); printByte(s); Verzögerung (1000); printByte(Punkt); Verzögerung (1000); printByte(c); Verzögerung (1000); printByte(o); Verzögerung (1000); printByte(m); Verzögerung (1000); aufrechtzuerhalten. Void printByte (Bytezeichen ) { Int i = 0; for(i=0;i<8;i++) {lc.setRow(0, i, Zeichen); } }

und der Code zum Testen aller 64 LEDs

//Wir müssen immer die Bibliothek einbinden#include "LedControl.h"

/*

Jetzt brauchen wir eine LedControl, mit der wir arbeiten können. ***** Diese Pin-Nummern funktionieren wahrscheinlich nicht mit Ihrer Hardware ***** Pin 12 ist mit dem DataIn verbunden Pin 10 ist mit dem CLK verbunden Pin 11 ist mit LOAD verbunden Wir haben nur einen einzigen MAX72XX. */ LedControl lc=LedControl(12, 11, 10, 1);

/* wir warten immer ein bisschen zwischen den Aktualisierungen der Anzeige */

lange Verzögerungszeit ohne Vorzeichen = 100;

Leere Einrichtung () {

/* Der MAX72XX befindet sich beim Start im Energiesparmodus, wir müssen einen Weckruf ausführen */ lc.shutdown(0, false); /* Helligkeit auf mittlere Werte einstellen */ lc.setIntensity(0, 8); /* und Anzeige löschen */ lc.clearDisplay(0); }

/*

Diese Methode zeigt die Zeichen für das Wort "Arduino" nacheinander auf der Matrix an. (Sie benötigen mindestens 5x7 LEDs, um die gesamten Zeichen zu sehen) */ void writeArduinoOnMatrix() { /* Hier sind die Daten für die Zeichen */ 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};

/* jetzt mit einer kleinen Verzögerung nacheinander anzeigen */

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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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]); Verzögerung (Verzögerungszeit); 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); Verzögerung (Verzögerungszeit); }

/*

Diese Funktion leuchtet einige LEDs hintereinander auf. Das Muster wird in jeder Reihe wiederholt. Das Muster blinkt zusammen mit der Zeilennummer. Zeilennummer 4 (index==3) blinkt 4 mal usw. */ void rows() { for(int row=0;row<8;row++) { delay(delaytime); lc.setRow(0, Zeile, B1010000); Verzögerung (Verzögerungszeit); lc.setRow(0, Zeile, (Byte)0); for(int i=0;i

/*

Diese Funktion leuchten einige LEDs in einer Spalte auf. Das Muster wird in jeder Spalte wiederholt. Das Muster blinkt zusammen mit der Spaltennummer. Spaltennummer 4 (index==3) blinkt 4 mal usw. */ void column() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, Spalte, B1010000); Verzögerung (Verzögerungszeit); lc.setColumn(0, Spalte, (Byte)0); for(int i=0;i

/*

Diese Funktion lässt jede LED auf der Matrix aufleuchten. Die LED blinkt zusammen mit der Zeilennummer. Zeilennummer 4 (index==3) blinkt 4 mal usw. */ void single() { for(int row=0;row<8;row++) { for(int col=0;col<8;col++) { Verzögerung (Verzögerungszeit); lc.setLed(0, Zeile, Spalte, wahr); Verzögerung (Verzögerungszeit); for(int i=0;i

Leere Schleife () {

writeArduinoOnMatrix(); Reihen(); Säulen(); Einzel(); }

Schritt 6: Die Ausgabe

Image
Image
Die Ausgabe
Die Ausgabe
Die Ausgabe
Die Ausgabe
Die Ausgabe
Die Ausgabe

Sehen Sie sich hier das vollständige Video an:-MAX7219 8x8 LED MATRIX MONTAGE UND TESTEN mit ARDUINO

Nun, all diese harte Arbeit zahlt sich sicherlich ziemlich gut aus, wenn Sie das Ergebnis sehen. Das ist es wert !!

Abonniere meinen Youtube-Kanal:-Creative Stuff

Empfohlen: