Die LED-Matrix mit der Bezeichnung MAX7219 besteht aus 8×8 LEDs.

Sie wird über ⇒SPI angesteuert. Deshalb sind neben 5V und GND für die Ansteuerung nur drei Pins nötig.
Die einzelnen LEDs werden in Reihen und Spalten angesprochen.
Die Schreibweise für jede Reihe kann binär angegeben werden: 0 = aus, 1 = an.

Wenn die LED-Matrix in das Steckbrett eingesetzt wird, verlaufen die Reihen vertikal und die Spalten horizontal.

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void PfeilUnten() { byte Zeichen[8] = { 0b00010000, // 1. Reihe 0b00110000, // 2. Reihe 0b01111111, // 3. Reihe 0b11111111, // 4. Reihe 0b01111111, // 5. Reihe 0b00110000, // 6. Reihe 0b00010000, // 7. Reihe 0b00000000 // 8. Reihe }; // Matrix anzeigen for (int i = 0; i < 8; i++) { LEDMatrix.setRow(0, i, Zeichen[i]); } } |
Benötigte Bibliothek:

Bei der Kompilierung des Programms für andere Mikrocontroller kommt es zu einer Reihe von Fehlermeldungen:
B10000000 DEPRECATED(0b10000000)
Es handelt sich um Warnungen, das Programm wird einwandfrei kompiliert.
Die binäre Schreibweise hat sich geändert, ich habe die ⇒Dateien entsprechend korrigiert.
Wenn du die Dateien austauschst, verschwinden die Fehlermeldungen
Funktionen der Bibliothek LEDControl
| Schlüsselwort | Aktion |
|---|---|
| LedControl Name_der_Matrix(Data-In, CLK, CS, AnzahlMatrix) | LED-Matrix initialisieren: LedControl LEDMatrix = LedControl(12, 11, 10, 1); |
| shutDown(NummerMatrix, true/false) | Matrix aufwecken: shutDown(0, false); |
| setIntensity(NummerMatrix, Helligkeit) | Helligkeit setzen (0-20) setIntensity(0, 8); |
| clearDisplay(NummerMatrix) | clearDisplay(0); |
| setLed(NummerMatrix, Zeile, Spalte, true/false); | einzelne LED schalten setLed(0, 0, 0, true); |
| setRow(NummerMatrix, Zeile, Byte) | zeilenweise ein Byte schreiben: setRow(0, Zeile, B10000000); setRow kann Werte zwischen 0 und 7 haben ![]() Wenn die LED-Matrix in das Steckbrett gesetzt wird, verlaufen die Reihen vertikal. |
| setColumn(NummerMatrix, Spalte, Byte) | spaltenweise ein Byte schreiben: setColumn(0, Spalte, B10000000); setColumn kann Werte zwischen 0 und 7 haben ![]() Wenn die LED-Matrix in das Steckbrett gesetzt wird, verlaufen die Spalten horizontal. |
Beispielprogramm Lauflicht
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
#include "LedControl.h" /* VCC -> 5V GND Pin 11 -> DIN (COPI) Pin 13 -> CLK-pin Pin 10 -> CS-pin */ // Pins Arduino DIN, CLK, CS, Anzahl Displays LedControl LEDMatrix = LedControl(11, 13, 10, 1); int Zeit = 50; void setup() { // Matrix "aufwecken" LEDMatrix.shutdown(0, false); // mittlere Helligkeit setzen LEDMatrix.setIntensity(0, 2); } void loop() { /* setRow/setColumn erwartet drei Parameter: - die Addresse der LED-Matrix ⇒ 0 - die Angabe der Zeile - den Wert der LED 1 = an, 0 = aus */ // spaltenweise for (int i = 0; i < 7; i++) { // alle an LEDMatrix.setColumn(0, i, 0b11111111); delay(100); // alle aus LEDMatrix.setColumn(0, i, 0b00000000); delay(100); } // und zurück for (int i = 7; i >= 0; i--) { // alle an LEDMatrix.setColumn(0, i, 0b11111111); delay(100); // alle aus LEDMatrix.setColumn(0, i, 0b00000000); delay(100); } // zeilenweise for (int i = 0; i < 7; i++) { // alle an LEDMatrix.setRow(0, i, 0b11111111); delay(100); // alle aus LEDMatrix.setRow(0, i, 0b00000000); delay(100); } // und zurück for (int i = 7; i >= 0; i--) { // alle an LEDMatrix.setRow(0, i, b11111111); delay(100); // alle aus LEDMatrix.setRow(0, i, 0b00000000); delay(100); } } |
Letzte Aktualisierung:
