Die LED-Matrix soll ein Lauflicht anzeigen.
So sieht es aus:
Die einzelnen LEDs werden in Reihen und Spalten angesprochen.
Die Schreibweise für jede Reihe kann binär angegeben werden: 0 = aus, 1 = an. Den Werten wird ein "B" vorangestellt.
Die LED-Matrix wurde in das Steckbrett eingesetzt, daher verlaufen die Reihen vertikal und die Spalten horizontal.
Beispiele:
void PfeilUnten()
{
// Array für die 8 Reihen
byte Zeichen[8] =
{
B00010000, // 1. Reihe
B00110000, // 2. Reihe
B01111111, // 3. Reihe
B11111111, // 4. Reihe
B01111111, // 5. Reihe
B00110000, // 6. Reihe
B00010000, // 7. Reihe
B00000000 // 8. Reihe
};
// Matrix anzeigen
for (int i = 0; i < 8; i ++)
{
LEDMatrix.setRow(0, i, Zeichen[i]);
}
}
void Kreuz()
{
byte Zeichen[8] =
{
B10000001, // 1. Reihe
B01000010, // 2. Reihe
B00100100, // 3. Reihe
B00011000, // 4. Reihe
B00011000, // 5. Reihe
B00100100, // 6. Reihe
B01000010, // 7. Reihe
B10000001 // 8. Reihe
};
// Matrix anzeigen
for (int i = 0; i < 8; i ++)
{
LEDMatrix.setRow(0, i, Zeichen[i]);
}
}
Schließe die LED-Matrix an.
Pinbelegung LED-Matrix
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Als Erstes musst du eine Bibliothek installieren:
Jedem Befehl muss der Name der Matrix mit abschließendem . vorangestellt werden.
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. |
Im Kopf des Programms musst du die Bibliothek einbinden und die Pinbelegung der LED-Matrix festlegen:
# include "LedControl.h"
/*
VCC → 5V
GND
Pin 12 -> DATA IN Pin
Pin 10 -> CLK Pin
Pin 11 -> CS Pin
1 -> eine Matrix angeschlossen
*/
LedControl LEDMatrix = LedControl(12, 11, 10, 1);
Verändere das Beispiel so, dass in jeder Zeile die LEDs nacheinander leuchten.
Die LED-Matrix wurde in das Steckbrett eingesetzt, daher verlaufen die Reihen vertikal und die Spalten horizontal.
// Bibliothek LedControl einbinden
# include "LedControl.h"
/*
Pinbelegung
VCC → 5V
GND
Pin 12 -> DATA IN Pin
Pin 10 -> CLK Pin
Pin 11 -> CS Pin
1 -> eine Matrix angeschlossen
*/
LedControl LEDMatrix = LedControl(12, 11, 10, 1);
void setup()
{
// Matrix "aufwecken"
LEDMatrix.shutdown(0, false);
// mittlere Helligkeit setzen
LEDMatrix.setIntensity(0, 8);
}
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, B11111111);
delay(100);
// alle aus
LEDMatrix.setColumn(0, i, B00000000);
delay(100);
}
// und zurück
for (int i = 7; i >= 0; i--)
{
// alle an
LEDMatrix.setColumn(0, i, B11111111);
delay(100);
// alle aus
LEDMatrix.setColumn(0, i, B00000000);
delay(100);
}
// zeilenweise
for (int i = 0; i < 7; i ++)
{
// alle an
LEDMatrix.setRow(0, i, B11111111);
delay(100);
// alle aus
LEDMatrix.setRow(0, i, B00000000);
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, B00000000);
delay(100);
}
}
Für die Erstellung von Matrixen kannst du einen 🔗Editor (externer Link abgerufen am 19.12.23) verwenden.
Verwandte Anleitungen:
- Automatische Tür mit Hall-Sensoren
- Countdown mit einer einstelligen 7-Segment-Anzeige
- Countdown mit einem OLED-Display
- Datum und Zeit mit dem NTP-Protokoll anzeigen
- ESP32-Wroom – BMP280/DHT Zeit und Messdaten auf TFT anzeigen
- Farbenspiele mit einer RGB-Matrix
- Glücksrad mit NeoPixel-Ring
- Labyrinth-Spiel mit TFT und Fernbedienung
- Labyrinthspiel mit Joystick und TFT
- Länder-Info
- LED-Matrix - Countdown
- LED-Matrix - Joystick-Spiel
- LED-Matrix Würfeln
- Lottozahlen - Anzeige auf einem LCD
- Lottozahlen - Anzeige auf einem OLED-Display
- Multiplikations-Taschenrechner
- Spiel mit einer RGB-Matrix
- Spielautomat mit einer RGB-Matrix
- Taschenrechner Grundrechenarten
- Würfeln einstellige 7-Segment-Anzeige und Fernbedienung
- Würfeln - Anzeige auf einem OLED-Display
- Würfelspiel mit einer vierstelligen Anzeige
- Würfeln mit einer einstelligen Anzeige
Letzte Aktualisierung: