7 Min. Lesezeit
Du willst eine 8×8 LED-Matrix mit Arduino steuern und Muster, Texte oder einfache Grafiken anzeigen? Perfekt – mit dem MAX7219-Treiber brauchst du dafĂĽr nur drei Verbindungen zum Arduino und eine einfache Bibliothek. In diesem Leitfaden zeigen wir dir, wie du eine Single-Matrix anschlieĂźt, programmierst und später sogar mehrere Module hintereinander schaltest.
1. Was ist eine 8×8 LED-Matrix?
Eine 8×8 LED-Matrix enthält 64 LEDs (Light Emitting Diodes), die in Form einer Matrix angeordnet sind – also 8 Reihen und 8 Spalten. Die 8×8 LED-Matrix-Anzeigen werden ĂĽblicherweise fĂĽr die Anzeige von Symbolen, einfachen Grafiken und Texten verwendet. Das Besondere: Du brauchst nicht alle 64 LEDs einzeln an den Arduino zu stecken. Der MAX7219-Treiber macht die Arbeit fĂĽr dich.
2. Die Rolle des MAX7219-Chips
MAX7219 ist ein kleiner Serial-Input/Output-Chip für Mikroprozessoren und Common-Cathode-LED-Anzeigen, mit BCD-Decoder, Scan-Controller, Word- und Bit-Treiber und 8×8-Speicher. Im Klartext: Der IC kann 64 einzelne LEDs mit nur 3 Drähten zum Arduino steuern, und man kann mehrere Treiber und Matrizen hintereinanderschalten und trotzdem die gleichen 3 Drähte verwenden.
3. Hardware-Anschluss
Die Verdrahtung ist sehr einfach. Du benötigst das Matrix-Modul mit MAX7219 und ein paar Jumper-Kabel zu deinem Arduino Uno.
3.1 Komponenten
Folgende Teile brauchst du fĂĽr ein Single-Matrix-Projekt:
- 1x Arduino Uno (oder Nano, Mega – alle funktionieren)
- 1x 8×8 LED-Matrix mit integriertem MAX7219-Modul
- 4x Jumper-Kabel (male-to-male oder female-to-male, je nach Anschlusstyp)
- Externe 5V-Stromversorgung (optional, aber fĂĽr mehrere Matrizen empfohlen)
- USB-Kabel zum Arduino und PC
3.2 Schritt-fĂĽr-Schritt Verdrahtung
Du brauchst nur 5 Pins vom Matrix-Modul zum Arduino anzuschlieĂźen, und der MAX7219-Chip macht es einfacher, das Matrix-Modul zu steuern, indem nur 3 digitale Pins des Arduino-Boards verwendet werden. Verbinde folgende Pins:
- VCC (Power) → Arduino 5V
- GND (Ground) → Arduino GND
- DIN (Data In) → Arduino Digital Pin 11
- CLK (Clock) → Arduino Digital Pin 13
- CS/LOAD → Arduino Digital Pin 10
Hinweis: Die MAX7219-Module mit 256 LEDs benötigen viel Strom – der Arduino und die meisten Laptop-USB-Ports können das nicht liefern. Eine externe 5V-Stromquelle mit mindestens 1A ist nötig. Der positive Anschluss geht zu VCC des MAX7219-Moduls, der negative (GND) zu GND des Moduls.
4. Software-Installation: Die LedControl-Bibliothek
Du kannst die LedControl-Bibliothek zu der Arduino IDE hinzufĂĽgen, um die 8Ă—8 LED-Matrix mit MAX7219 via SPI zu steuern. LedControl ist eine Bibliothek fĂĽr die MAX7219 und MAX7221 LED-Display-Treiber.
4.1 Installation im Arduino IDE
Folge diesen Schritten, um die Bibliothek zu installieren:
- Ă–ffne Arduino IDE
- Gehe zu Sketch → Bibliothek einbinden → Bibliotheken verwalten
- Suche nach „LedControl“ (von Evilynux)
- Klicke auf Installieren
Fertig! Die Bibliothek ist jetzt verfĂĽgbar.
4.2 Erste Beispiel-Programmierung
Hier ist ein einfaches Programm, das die Matrix aufwärmt und die LEDs einzeln aufblinken lässt:
#include <LedControl.h>
// DIN = Pin 11, CLK = Pin 13, CS = Pin 10
LedControl lc = LedControl(11, 13, 10, 1); // 1 = eine Matrix
void setup() {
// Matrix aufwecken (ist standardmäßig im Sparmodus)
lc.shutdown(0, false);
// Helligkeit auf mittleres Niveau (0-15)
lc.setIntensity(0, 8);
// Matrix löschen
lc.clearDisplay(0);
}
void loop() {
// Alle LEDs nacheinander aufblinken
for (int row = 0; row < 8; row++) {
for (int col = 0; col < 8; col++) {
lc.setLed(0, row, col, true); // LED einschalten
delay(100);
lc.setLed(0, row, col, false); // LED ausschalten
}
}
}5. Muster und Symbole anzeigen
Statt einzelne LEDs zu kontrollieren, kannst du auch ganze Reihen oder vordefinierte Byte-Muster anzeigen. Das ist schneller und sauberer.
5.1 Reihen mit Byte-Mustern setzen
Mit setRow() kannst du 8 LEDs einer Reihe auf einmal steuern – jedes Bit im Byte steht für eine LED:
#include <LedControl.h>
LedControl lc = LedControl(11, 13, 10, 1);
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 8);
lc.clearDisplay(0);
}
void loop() {
// Ein lächelndes Gesicht anzeigen
byte smile[8] = {
B00111100, // Reihe 0
B01000010, // Reihe 1
B10100101, // Reihe 2
B10000001, // Reihe 3
B10100101, // Reihe 4
B10011001, // Reihe 5
B01000010, // Reihe 6
B00111100 // Reihe 7
};
// Alle 8 Reihen setzen
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, smile[i]);
}
delay(2000); // 2 Sekunden halten
// Ein trauriges Gesicht
byte sad[8] = {
B00111100,
B01000010,
B10100101,
B10000001,
B10011001,
B10100101,
B01000010,
B00111100
};
for (int i = 0; i < 8; i++) {
lc.setRow(0, i, sad[i]);
}
delay(2000);
}5.2 Byte-Muster verstehen
Das B00111100-Format heiĂźt „Binary Literal“. Jedes 0 oder 1 steht fĂĽr eine LED: 1 = an, 0 = aus. Zum Beispiel:
B11111111= alle 8 LEDs der Reihe leuchtenB10000001= nur erste und letzte LED leuchtenB00000000= keine LED leuchtet
6. Text und Laufschrift mit MD_Parola
FĂĽr fortgeschrittene Effekte wie Laufschrift oder automatisch generierte Zeichen gibt es die MD_Parola-Bibliothek. Sie baut auf MAX7219 auf und macht Scroll-Effekte sehr einfach.
6.1 MD_Parola installieren
Die erste Bibliothek ist „MD_MAX72xx“, installierbar via Sketch-MenĂĽ → Include Library → Manage Libraries. In der Library Manager nach „MD_MAX72xx“ suchen und die Bibliothek von MajicDesigns installieren. Die zweite ist „MD_Parola“, ebenfalls ĂĽber den Arduino IDE Library Manager, suche nach „MD_Parola“ und installiere die Bibliothek von MajicDesigns.
6.2 Einfache Laufschrift
Hier ein Beispiel, das Text von rechts nach links ĂĽber die Matrix scrollt:
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// Hardware-Typ: FC16_HW fĂĽr Standard-8Ă—32-Module
#define HARDWARE_TYPE MD_MAX72XX::GENERIC_HW
#define MAX_DEVICES 1 // 1 = single 8x8 matrix
#define CS_PIN 10
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
myDisplay.begin();
myDisplay.setIntensity(8); // Helligkeit 0-15
myDisplay.displayClear();
}
void loop() {
myDisplay.setTextAlignment(PA_CENTER);
myDisplay.print("HALLO!");
delay(2000);
myDisplay.displayClear();
delay(500);
}Mit MD_Parola in Kombination mit der MD_MAX72XX Arduino-Bibliothek wird die Anzeige von scrollendem Text und anderen Animationen super einfach.
7. Mehrere Matrizen hintereinander schalten
Wenn man mehr als ein Modul anschließen möchte, verbindet man die Output-Pins des vorherigen Breakout-Boards mit den Input-Pins des neuen Moduls. Die Pins sind alle gleich, außer dass der DOUT-Pin des vorherigen Boards zum DIN-Pin des neuen Boards geht. Die Stromversorgung und der CLK-Pin gehen zu allen Modulen parallel.
Im Code brauchst du nur eine kleine Änderung:
// FĂĽr 4 hintereinandergeschaltete Matrizen:
LedControl lc = LedControl(11, 13, 10, 4); // 4. Parameter = Anzahl Module
// Dann kannst du auf alle Matrizen zugreifen:
lc.setRow(0, 0, B11110000); // Matrix 0
lc.setRow(1, 0, B00001111); // Matrix 1
lc.setRow(2, 0, B10101010); // Matrix 2
lc.setRow(3, 0, B01010101); // Matrix 38. Häufige Anfängerfehler
Hier sind ein paar Dinge, auf die du achten solltest:
- Nicht genug Strom: Wenn alle LEDs eines 8Ă—8-Matrix-Displays gleichzeitig leuchten, kann der Strombedarf mehrere 100 mA pro Display betragen. Bei mehreren Displays kannst du leicht die Limits des Arduinos ĂĽberschreiten. Nicht mehr als 500 mA solltest du einem Arduino UNO bzw. deinem USB-Anschluss zumuten.
- Falsche Pin-Verbindungen: ĂśberprĂĽfe dreimal, dass DIN, CLK und CS mit den richtigen Arduino-Pins verbunden sind.
- Modul nicht aufgeweckt: Vergiss nicht,
lc.shutdown(0, false)im Setup aufzurufen – sonst bleibt das Display dunkel. - Falsche Byte-Reihenfolge: Wenn das Muster spiegelverkehrt oder gedreht aussieht, versuche, die Bits umzukehren oder die Reihenfolge zu ändern.
9. Nächste Schritte und Projekte
Du hast jetzt die Grundlagen! Hier sind ein paar Ideen zum Ausprobieren:
- Digitale Uhr: Verwende RTC-Module und zeige Stunden und Minuten an.
- Temperatur-Anzeige: Verbinde einen Temperatursensor und zeige Werte live an.
- Musik-Visualizer: Lese Audio-Daten aus und lass LEDs pulsieren.
- Game-Projekt: Baue ein einfaches Pong- oder Snake-Spiel auf der Matrix.
10. Häufig gestellte Fragen
10.1 Kann ich die Matrix an andere Arduino-Pins anschlieĂźen?
Ja! Die Pin-Nummern im Code sind frei wählbar. Wenn du DIN an Pin 12, CLK an Pin 9 und CS an Pin 8 anschließt, ändere einfach: LedControl lc = LedControl(12, 9, 8, 1);
10.2 Wie helle ich die Matrix auf oder ab?
Mit lc.setIntensity(0, value), wobei value zwischen 0 (dunkel) und 15 (super hell) liegt. Beispiel: lc.setIntensity(0, 15); macht die Matrix maximum hell.
10.3 Warum funktioniert die Scroll-Bibliothek MD_Parola nicht?
Es gibt verschiedene Hardware-Typen wie PAROLA_HW, GENERIC_HW, ICSTATION_HW und FC_16_HW. Wenn die Schrift falsch scrollt, probiere einen anderen HARDWARE_TYPE im Code. Alle haben unterschiedliche Orientierungen der 8×8-LED-Matrix. Versuche, PAROLA_HW durch GENERIC_HW zu ersetzen.
10.4 Kann ich mehrere verschiedene Symbole hintereinander zeigen?
Ja, klar! Speichere mehrere Byte-Arrays (wie das smile/sad-Beispiel oben) und wechsle zwischen ihnen in einer Schleife oder mit if-Bedingungen.
Quellen
- MD_Parola GitHub Repository – Text Animations for LED Displays (zugegriffen: 11. Mai 2026)
- MD_MAX72xx GitHub Repository – MAX7219/MAX7221 Library (zugegriffen: 11. Mai 2026)


