Funktionen der Library MyLedMatrix
Die in den nachfolgenden Funktionen verwendeten Angaben für Zeile (row) und Spalte (col = column) beziehen sich auf No-Name "max7219 led matrix module" (erhältlich z.B. bei Ebay), die - wie in der nachfolgenden Darstellung von 3 Modulen ersichtlich - verschaltet sind. Bei Verwendung anderer Module könnten sich durch die interne Verschaltungen der LEDs in Bezug auf die Ansteuerung durch den MAX7219-LED-Treiber andere Zeilen-Spalten-Organisationen ergeben. Das habe ich allerdings noch nicht getestet!
Bild: Darstellung des Signalweges vom Arduino zu den Modulen und Anordnung der Zeilen und Spalten am Beispiel von 3 Modulen
MyLedMatrix MyLedMatrix(byte dataPin, byte loadPin, byte clockPin, byte anz)
Funktion: Erzeugt eine neue Instanz
Parameter: dataPin: Arduino-Pin verbunden mit Matrix-Modul-Pin DIN
loadPin: Arduino-Pin verbunden mit Matrix-Modul-Pin CS/Load
clockPin: Arduino-Pin verbunden mit Matrix-Modul-Pin CLK
anz: Anzahl der angeschlossenen LED-Matrix-Module (max.8)
void setIndensity(byte indensity)
Funktion: Einstellen der Helligkeit der Anzeige
Parameter: indensity: Intensität der Anzeige (0 <= indensity <= 15)
0: schwache Intensität (Standardeinstellung)
15: starke Intensität
Rückgabe: keine
void writeCol(byte col, byte val)
Funktion: Schreiben einer Matrix-Spalte
Parameter: col: Spalte, die geschrieben werden soll (0 <= col <= ((Anzahl Module * 8) - 1))
col = 0 ... 7 für 1. Modul (links außen)
col = 8 ... 15 für 2. Modul
col = 16 ... 23 für 3. Modul, etc.
val: Wert (B00000000 <= val <= B11111111) -> 0: LED Aus, 1: LED Ein
Rückgabe: keine
Achtung: writeCol() ist die grundlegende Funktion der Library. Fast alle anderen Funktionen in dieser Library greifen auf sie zu!!
void writeFig(int8_t col, byte* fig, byte numbCol)
Funktion: Schreiben eine Figur oder ein Zeichen
Parameter: col: Erste Spalte, der Figur (-8 <= col <= ((Anzahl Matrix-Module * 8) - 1))
fig: Array, das ein Zeichen darstellt (siehe Beispiel)
numbCol: Anzahl von Spalten, die der Breite der Figur entspricht
Rückgabe: keine
Beispiel: Array für einen Pfeil nach Links:
byte fig1[8] = {B000100,
B001100,
B011111,
B111111,
B011111,
B001100,
B000100,
B000000
};
void writeChar(int8_t col, byte val)
Funktion: Schreiben eines Zeichens
Parameter: col: Erste Spalte, des Buchstaben (-8 <= col <= ((Anzahl Matrix-Module * 8) - 1))
val: Ascii-Zeichen 32 bis 127 (siehe Ascii-Tabelle, z.B. www.asciitable.com/)
Rückgabe: keine
Bemerkung: Die Datei MyLedMatrixChar.h beinhaltet Arrays für die folgenden Ascii-Codes 32 bis 127:
Blank ! " # $ % & ' ( ) * + , - . / 0-9 : ; < = > ? @ A-Z [ \ ] ^ _ ` a-z { ' } ← →
Beispiel:
MyMatrix.writeChar(1, 'A');
// oder
MyMatrix.writeChar(1, 65); //65 ist der Ascii-Code für den Buchstaben "A"
void writeNumber(int8_t col, byte val)
Funktion: Schreiben einer Zahl
Parameter: col: Erste Spalte, des Buchstaben (-8 <= col <= ((Anzahl Matrix-Module * 8) - 1))
val: Ascii-Code einer Zahl (48 <= val <= 57 -> siehe Ascii-Tabelle)
oder eine Zahl (0 <= val <= 9)
Rückgabe: keine
Beispiel:
MyMatrix.writeNumber(3, '8'); // Die Zahl 8 wird ab Spalte 3 ausgegeben
//oder
MyMatrix.writeNumber(3, 50); // Die Zahl 2 (Ascii-Code 50) wird ab Spalte 3 ausgegeben
//oder
MyMatrix.writeNumber(3, 5); // Die Zahl 5 wird ab Spalte 3 ausgegeben
void setDot(byte col, byte row, bool val)
Funktion: Setzen einer einzelnen LED
Parameter: col: Spalte, in der die LED gesetzt werden soll (0 <= col <= ((Anzahl Module * 8) - 1))
col = 0 ... 7 für 1. Modul (links außen)
col = 8 ... 15 für 2. Modul
col = 16 ... 23 für 3. Modul, etc.
row: Zeile, in der die LED gesetzt werden soll (0 <= row <= 8)
val: Wert, mit dem die LED gesetzt werden soll -> 0: LED Aus, 1: LED Ein
Rückgabe: keine
bool statusDot(byte col, byte row)
Funktion: Gibt den Zustand einer LED zurück
Parameter: col: Spalte, in der die LED abgefragt werden soll (0 <= col <= ((Anzahl Module * 8) - 1))
col = 0 ... 7 für 1. Modul (links außen)
col = 8 ... 15 für 2. Modul
col = 16 ... 23 für 3. Modul, etc.
row: Zeile, in der die LED abgefragt werden soll (0 <= row <= 8)
Rückgabe: Status der LED -> 0: LED ist Aus, 1: LED ist Ein
Bemerkung: Da der Status der LEDs aus dem MAX7219 nicht auslesbar ist, wird der Status aus dem Daten-Puffer der Library ausgelesen.
void clearAll(void)
Funktion: Löschen der gesamten Matrix (alle Module)
Parameter: keine
Rückgabe: keine
void clearModule(byte modNum)
Funktion: Löschen eines Matrix-Moduls
Parameter: modNum: Nummer des zu löschenden Matrix-Moduls (1 <= modNum <= 8)
1: linkestes Modul
n: rechtestes Modul
Rückgabe: keine
void clearSector(byte fromCol, byte toCol)
Funktion: Löschen eines Matrix-Moduls
Parameter: fromCol: Spalte, ab der gelöscht wird (0 <= fromCol <= ((Anzahl Module * 8) - 1))
toCol: Spalte, bis zu der gelöscht wird (1 <= toCol <= ((Anzahl Module * 8) - 1))
Rückgabe: keine
void setBlankOn(void)
Funktion: Dunkelsetzen der gesamten Matrix (alle Module)
Parameter: keine
Rückgabe: keine
Bemerkung: Im Gegensatz zum Löschen erfolgt keine Löschung des Daten-Puffers der Library. Solange die Matrix dunkel gesetzt ist, werden keine "Set- oder Schreibfunktionen" ausgeführt. Aufhebung der Funktion erfolgt mit "setBlankOff()".
void setBlankOff(void)
Funktion: Hellsetzen der gesamten Matrix (alle Module)
Parameter: keine
Rückgabe: keine
Bemerkung: Die im Daten-Puffer der Library gespeicherten Daten werden wieder angezeigt
bool statusSetBlank(void)
Funktion: Gibt den Status zurück, ob die Matrix mit der Funktion "setBlankOn()" auf "dunkel" gesetzt ist
Parameter: keine
Rückgabe: TRUE, wenn Matrix ist dunkel gesetzt, sonst FALSE
void shiftLeft(void)
Funktion: Shifted die gesamte Matrix um eine Spalte nach links
Parameter: keine
Rückgabe: keine
Bemerkung: Spalten, die nach außerhalb der Matrix verschoben wurden, können nicht mehr zurückgeholt werden
void shiftRight(void)
Funktion: Shifted die gesamte Matrix um eine Spalte nach rechts
Parameter: keine
Rückgabe: keine
Bemerkung: Spalten, die nach außerhalb der Matrix verschoben wurden, können nicht mehr zurückgeholt werden
void shiftUp(void)
Funktion: Shifted die gesamte Matrix um eine Zeile nach oben
Parameter: keine
Rückgabe: keine
Bemerkung: Reihen, die nach außerhalb der Matrix verschoben wurden, können nicht mehr zurückgeholt werden
void shiftDown(void)
Funktion: Shifted die gesamte Matrix um eine Zeile nach unten
Parameter: keine
Rückgabe: keine
Bemerkung: Reihen, die nach außerhalb der Matrix verschoben wurden, können nicht mehr zurückgeholt werden
void rotateLeft(void)
Funktion: Rotiert die gesamte Matrix um eine Stelle nach links
Parameter: keine
Rückgabe: keine
void rotateRight(void)
Funktion: Rotiert die gesamte Matrix um eine Stelle nach rechts
Parameter: keine
Rückgabe: keine