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


Zur Library LED-Matrix MAX7219