LED-Matrix MAX7219 + ESP32 Tutorial
Einleitung
Du möchtest wissen, wie du die MAX7219 LED Matrix mit einem ESP32 Mikrocontroller ansteuerst und programmierst? In diesem Tutorial erhältst du eine Schritt-für-Schritt-Anleitung, um die beliebte LED Matrix zum Laufen zu bringen. Die Programmierung erfolgt dabei komfortabel in der Arduino IDE.
Wir zeigen dir von den erforderlichen Komponenten über den Schaltungsaufbau bis hin zur ausführlichen Code-Erklärung und der praktischen Anwendung alles, was du für dein Projekt benötigst. Am Ende dieses Artikels wird deine LED Matrix mit dem ESP32 kommunizieren und in der Lage sein, Texte, Zahlen und Muster anzuzeigen.
Verschaltung
Teile
1x ESP32
1x MAX7219
5x Verbindungskabel
Bibliotheken
ChipNorm_LED_Matrix.h
Code
Übersicht – LED Matrix + ESP32
Für dieses spannende Projekt, bei dem wir die MAX7219 LED Matrix mit dem ESP32 zum Laufen bringen, benötigst du nur wenige Komponenten. Die ESP32 ist ein leistungsstarker Mikrocontroller, der perfekt für solche Ansteuerungen geeignet ist. Die LED Matrix ist ideal, um dir zum Beispiel Lauftexte, Grafiken oder Messwerte wie die Temperatur anzuzeigen.
Hier ist die einfache Liste der benötigten Teile:
1x ESP32 (Mikrocontroller)
1x MAX7219 LED Matrix (Das Display, das wir ansteuern)
5x Verbindungskabel (Dupont-Kabel)

Pinout – LED Matrix MAX7219
Die MAX7219 LED Matrix benötigt nur fünf Pins zur Kommunikation mit unserem ESP32 Mikrocontroller. Die Ansteuerung erfolgt über das SPI-Protokoll, daher sehen wir die typischen Pins für die serielle Datenübertragung. Du findest einen VCC-Pin für die Stromversorgung und einen GND-Pin für die Masse, sowie die drei Steuerpins CLK, CS und DIN.
Hier ist eine kurze Übersicht über die einzelnen Pins:
VCC-Pin: Dies ist der Pin für die Spannungsversorgung
GND-Pin: Dies ist der Masse-Anschluss.
DIN-Pin: (Data-In) Über diesen Pin werden die seriellen Daten vom ESP32 zur LED Matrix gesendet.
CLK-Pin: (Clock) Dieser Pin liefert den Taktpuls für die Datenübertragung.
CS-Pin: (Chip Select / Load) Dieser Pin aktiviert den MAX7219 Chip für die Datenübertragung.

Hardware Aufbau / Verkabelung / Schaltungsaufbau
Der Schaltungsaufbau ist schnell erledigt. Wir benötigen fünf Verbindungen zwischen dem ESP32 Mikrocontroller und der MAX7219 LED Matrix. Die Pins der LED Matrix werden wie folgt mit den GPIO-Pins des ESP32 verbunden: Verbinde den CLK-Pin mit dem D18-Pin, den CS-Pin mit D15 und den DIN-Pin mit dem D23-Pin des ESP32. Schließe schließlich den GND-Pin an GND und den VCC-Pin an den 3,3V- oder 5V-Ausgang (je nach Modul) des ESP32 an, um die Stromversorgung sicherzustellen.
ESP32 D18 → LED Matrix CLK-Pin
ESP32 D15 → LED Matrix CS-Pin
ESP32 D23 → LED Matrix DIN-Pin
ESP32 GND → LED Matrix GND
ESP32 3,3V → LED Matrix VCC

Die korrekte und sorgfältige Verdrahtung ist von entscheidender Bedeutung, um sicherzustellen, dass der ESP32 Mikrocontroller die Signale der MAX7219 LED Matrix ordnungsgemäß ansteuern kann. Nachdem du diese Verbindungen erfolgreich hergestellt hast, bist du bereit, mit der Programmierung fortzufahren. Im nächsten Abschnitt werden wir ausführlich darauf eingehen, wie du die notwendige Bibliothek einbindest und den Code für die LED Matrix programmierst.
Software Programmierung
Sobald der erfolgreiche Hardware-Aufbau abgeschlossen ist, können wir uns der Programmierung des ESP32 zuwenden. In diesem Abschnitt werden wir ausführlich die essentiellen Schritte zur Codeerstellung behandeln und die Schlüsselfunktionen, die du zur Ansteuerung der MAX7219 LED Matrix verwenden wirst, im Detail erläutern.
Schritt 1: IDE Projekt
Öffne die Arduino-IDE und erstelle ein neues Projekt.
Um mit der Arduino-IDE zu arbeiten, öffnest du zunächst die Anwendung auf deinem Computer. Falls du die Arduino-IDE noch nicht installiert hast, findest du unter folgendem Link eine Anleitung hierzu: [Link zur Installationsanleitung einfügen].
Nachdem du die Arduino-IDE geöffnet hast, erstellst du ein neues Projekt, indem du auf „Datei“ klickst und anschließend auf „Neu“. Dadurch wird ein neues Sketch-Fenster geöffnet, in dem du deinen Code eingeben kannst.
// Hier kommt dein Code
void setup(){
// Initialisierung
}
void loop(){
// Schleife
}
Schritt 2: Bibliothek einbinden
Um die MAX7219 LED Matrix anzusteuern, ist es notwendig, eine geeignete Bibliothek in deine Arduino-IDE einzubinden. Gehe dazu in der Menüleiste auf „Sketch“ und wähle „Bibliothek einbinden“ aus. Klicke dann auf „Bibliotheken verwalten…“.
Wir benötigen die Bibliothek ChipNorm_LED_Matrix.h. Gib den Namen in das Suchfeld ein und installiere die Bibliothek. Nur so erhältst du die erforderlichen Funktionen, um die LED Matrix einfach und effizient anzusteuern und verschiedene Inhalte darauf auszugeben.
#include "ChipNorm_LED_Matrix.h"

Schritt 3: Initialisierung
Im ersten Teil des Codes, also vor dem void setup() Block, definieren wir die benötigten Pins und initialisieren das Objekt für unsere LED Matrix. Zuerst binden wir die Bibliothek ChipNorm_LED_Matrix.h ein. Anschließend werden die digitalen Pins (GPIOs) des ESP32 für die Kommunikation mit der LED Matrix festgelegt – in unserem Fall sind das DIN (23), CLK (18) und CS (15). Zuletzt erstellen wir ein Objekt der Klasse ChipNorm_LED_Matrix mit dem Namen matrix, dem wir die definierten Pins übergeben.
#define SPI_MOSI 23 // MOSI (DIN) mit D23 verbinden
#define SPI_CLK 18 // CLK mit D18 verbinden
#define SPI_CS 15 // CS mit D15 verbinden
ChipNorm_LED_Matrix matrix(SPI_MOSI, SPI_CLK, SPI_CS); //Initialisiert die LED-Matrix
Schritt 4: Void Setup
Die void setup() Funktion wird nur einmal beim Start des ESP32 Mikrocontrollers ausgeführt. Hier konfigurieren wir die grundlegenden Einstellungen für die MAX7219 LED Matrix. Mit matrix.setBrightness(15) stellen wir die maximale Helligkeit (Wert zwischen 0 und 15) ein. Anschließend sorgen matrix.clear() und matrix.update() dafür, dass die LED Matrix initial leer ist, bevor wir mit der eigentlichen Programmlogik starten.
void setup() {
matrix.setBrightness(15); //Helligkeit einstellt (zwischen 0 und 15)
matrix.clear();
matrix.update();
}
Schritt 5: Loop Setup
Die void loop() Funktion läuft unendlich oft und enthält die Hauptlogik für die Anzeige auf der LED Matrix. In den Beispielen sehen wir verschiedene Möglichkeiten, die LED Matrix zu verwenden: von der einfachen Ausgabe einzelner Zeichen mit matrix.write() über manuelle Pixel-Ansteuerung mit matrix.write_manuell() bis hin zu beeindruckendem Text-Scrolling mit matrix.scroll_text(). Nach jedem Beispiel gibt es eine kurze Pause (delay()), damit du das Ergebnis sehen kannst, bevor das Display gelöscht wird (matrix.clear()) und der nächste Codeabschnitt startet.
void loop() {
matrix.clear();
// Beispiel 1: Einzelne Buchstaben / Zahlen / Zeichen
matrix.write('A');
delay(2000);
matrix.clear();
matrix.write('1');
delay(2000);
matrix.clear();
// Beispiel 2: Manueller Modus: Rahmen zeichnen
matrix.write_manuell(0, 0, 0b11111111);
matrix.write_manuell(0, 1, 0b10000001);
matrix.write_manuell(0, 2, 0b10000001);
matrix.write_manuell(0, 3, 0b10000001);
matrix.write_manuell(0, 4, 0b10000001);
matrix.write_manuell(0, 5, 0b10000001);
matrix.write_manuell(0, 6, 0b10000001);
matrix.write_manuell(0, 7, 0b11111111);
delay(2000);
// Beispiel 3: Manuell den Inhalt nach links schieben
for (int row = 0; row < 8; ++row) {
matrix.moveLeft();
matrix.update();
delay(500);
}
matrix.clear();
// Beispiel 4: Text Scrollen "CHIPNORM"
const char* textToScroll = "C H I P N O R M";
const int Anzahl_seg = 1;
const int durchlauf = 2;
matrix.scroll_text(textToScroll, Anzahl_seg, durchlauf);
delay(3000);
}
Gesamter Code
Hier zeigen wir dir nochmal zur besseren Übersicht den gesamten Programmier-Code für die Ansteuerung der MAX7219 LED Matrix mit dem ESP32 Mikrocontroller auf. Dieser Code beinhaltet die Pin-Definitionen, die Initialisierung, die Konfiguration im setup() und die verschiedenen Anwendungsbeispiele in der loop()-Funktion.
#include "ChipNorm_LED_Matrix.h"
#define SPI_MOSI 23 // MOSI (DIN) mit D23 verbinden
#define SPI_CLK 18 // CLK mit D18 verbinden
#define SPI_CS 15 // CS mit D15 verbinden
ChipNorm_LED_Matrix matrix(SPI_MOSI, SPI_CLK, SPI_CS); //Initialisiert die LED-Matrix
void setup() {
matrix.setBrightness(15); //Helligkeit einstellt
matrix.clear();
matrix.update();
}
void loop() {
matrix.clear();
// Beispiel 1: Einzelne Buchstaben / Zahlen / Zeichen
matrix.write('A');
delay(2000);
matrix.clear();
matrix.write('1');
delay(2000);
matrix.clear();
// Beispiel 2: Manueller Modus: Rahmen zeichnen
matrix.write_manuell(0, 0, 0b11111111);
matrix.write_manuell(0, 1, 0b10000001);
matrix.write_manuell(0, 2, 0b10000001);
matrix.write_manuell(0, 3, 0b10000001);
matrix.write_manuell(0, 4, 0b10000001);
matrix.write_manuell(0, 5, 0b10000001);
matrix.write_manuell(0, 6, 0b10000001);
matrix.write_manuell(0, 7, 0b11111111);
delay(2000);
// Beispiel 3: Inhalt nach links schieben
for (int row = 0; row < 8; ++row) {
matrix.moveLeft();
matrix.update();
delay(500);
}
matrix.clear();
// Beispiel 4: Text scrollen
const char* textToScroll = "C H I P N O R M";
const int Anzahl_seg = 1;
const int durchlauf = 2;
matrix.scroll_text(textToScroll, Anzahl_seg, durchlauf);
delay(3000);
}
Ausführung / Anwendung
Nachdem der Code nun in die Arduino-IDE eingegeben ist, muss dieser noch kompiliert und auf den ESP32 Mikrocontroller übertragen werden. Nur so beginnt deine MAX7219 LED Matrix mit der Ausgabe des programmierten Inhalts.
Hierzu gehst du wie folgt vor:
Schritt 1: Kompilieren
Klicke auf das Haken-Symbol (Überprüfen/Kompilieren) in der Arduino-IDE. Damit wird dein Code auf Fehler untersucht und in ein ausführbares Format umgewandelt.
Schritt 2: Hochladen
Klicke auf das Pfeil-Symbol (Hochladen). Der Code wird nun auf den über USB verbundenen ESP32 Mikrocontroller übertragen. Achte darauf, dass das korrekte Board und der richtige Port in der IDE ausgewählt sind.
Schritt 3: Ausführung
Sobald der Upload abgeschlossen ist, startet der ESP32 automatisch neu, und deine LED Matrix beginnt sofort damit, den programmierten Inhalt auszugeben (Buchstaben, Zahlen, Rahmen oder den gescrollten Text).




