#include <LedControl.h>
//LED Matrix 1 und 2
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
//LED Matrix 3
#define CLK_PIN2 7
#define DATA_PIN2 6
#define CS_PIN2 5
// Anzahl der Module
int numDevices = 8;
int numDevices2 = 8;
//Initialisierung des LEDControl-Objekts
LedControl lc1 = LedControl(DATA_PIN, CLK_PIN, CS_PIN, numDevices);
LedControl lc2 = LedControl(DATA_PIN2, CLK_PIN2, CS_PIN2, numDevices2);
void setup() {
//Initialisierung der Anzeigen
for (int i = 0; i < numDevices; i++){
lc1.shutdown(i, false); // Aktiviert die Anzeige
lc1.setIntensity(i, 8); // Setzt die Helligkeit auf 0-15
lc1.clearDisplay(i); //Löscht den Display-Inhalt
}
for (int i = 0; i < numDevices2; i++){
lc2.shutdown(i, false); // Aktiviert die Anzeige
lc2.setIntensity(i, 8); // Setzt die Helligkeit auf 0-15
lc2.clearDisplay(i); //Löscht den Display-Inhalt
}
}
void ausgabe(byte data[12][2], int breite, int hohe){
// Schleife für Display 1 von oben nach unten
for( int i = 0 ; i < 8; i++){
// Variable für Array
int k = 0;
// Schleife für links nach rechts
for( int j = breite / 8 - 1; j >= 0 ; j--){
lc1.setRow(j, i, data[i][k]);
k++;
}
}
// Schleife für Display 2 von oben nach unten
for( int i = 0 ; i < 8; i++){
// Variable für Array
int k = 0;
// Abfrage für überflüssige Zeilen
if( i + 9 <= hohe){
// Schleife für links nach rechts
for( int j = breite / 4 - 1; j >= breite / 8 ; j--){
lc1.setRow(j, i, data[i + 8][k]);
k++;
}
}
}
// Schleife für Display 3 von oben nach unten
if(hohe > 16){
for( int i = 0 ; i < 8; i++){
// Variable für Array
int k = 0;
// Abfrage für überflüssige Zeilen
if( i + 17 <= hohe){
// Schleife für links nach rechts
for( int j = breite / 8 - 1; j >= 0 ; j--){
lc2.setRow(j, i, data[i + 16][k]);
k++;
}
}
}
}
}
void loop() {
delay(1000000);
}