Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Überprüfen Sie das Paket
- Schritt 2: Ein wenig über diese spezielle Punktmatrix
- Schritt 3: Der MAX7219-Treiber
- Schritt 4: Die Schaltung
- Schritt 5: Der Code
- Schritt 6: Die Ausgabe
Video: MAX7219 LED-Punktmatrix-Montage und -Tests - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:18
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 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 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 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
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:
Video-Tutorials De Tecnologías Creativas 04: ¿Para Qué Servirá Un Potenciómetro Y Un Led?: 4 Schritte
Video-Tutorials De Tecnologías Creativas 04: ¿Para Qué Servirá Un Potenciómetro Y Un Led?: En este Tutorial vamos a prender como modificar la intensid de la luz de un led con einer potenciómetro sobre una placa Arduino Uno. Este ejercicio lo realizaremos mediante simulación y para ello utilizaremos Tinkercad Circuits (utilizando una cuen
Arduino Ampel-Controller mit RBG Led - 4-Wege: 3 Schritte
Arduino Ampel-Controller mit RBG Led | 4-Wege: In diesem Beitrag erfahren Sie, wie Sie einen Arduino-Ampelcontroller herstellen. Mit diesem Ampelsteuergerät wird der Verkehrsfluss gesteuert. Diese können in stark frequentierten Bereichen angewendet werden, um Verkehrsblockaden oder Unfälle zu vermeiden
Ein riesiges leuchtendes LED-Schild herstellen – wikiHow
Wie man ein riesiges leuchtendes LED-Schild herstellt: In diesem Projekt zeige ich Ihnen, wie Sie ein riesiges Schild mit einem benutzerdefinierten Schriftzug bauen, der mit Hilfe von RGB-LEDs aufleuchten kann. Das Schild kann aber auch als primäre Lichtquelle in Ihrem Raum verwendet werden, indem warmweiße LED-Streifen verwendet werden. Lass uns st
Nachtsicht-Laserschnabel! (ODER wie man eine Nachtsicht-erhaltende LED Throwie, Transformer Toy Mashup Taschenlampe herstellt!): 5 Schritte
Nachtsicht-Laserschnabel! (ODER Wie man eine Nachtsicht-erhaltende, LED-Throwie, Transformator-Spielzeug-Mashup-Taschenlampe herstellt!): Ein Instructable von einem Noob für den Noob Spielzeug? Ein instructable mit einem wirklich langen Namen! Wir nennen es "Nightvision Laserbeak" zum
Max7219 8x8 Dot Matrix mit "skiiiD" verwenden: 9 Schritte
So verwenden Sie Max7219 8x8 Dot Matrix mit "skiiiD": Dies ist eine Videoanleitung von Max7219 8x8 Dot Matrix über "skiiiD". /Erste Schritte-W