#include <LedControl.h>
// Definiera antalet grupper och deras DIN-pinnar
#define NUM_GROUPS 8
int dinPins[NUM_GROUPS] = {22, 23, 24, 25, 26, 27, 28, 29};
int csPin = 10; // Gemensam CS
int clkPin = 13; // Gemensam CLK
// Skapa en array av LedControl-objekt
LedControl lc[NUM_GROUPS] = {
{dinPins[0], clkPin, csPin, 4},
{dinPins[1], clkPin, csPin, 4},
{dinPins[2], clkPin, csPin, 4},
{dinPins[3], clkPin, csPin, 4},
{dinPins[4], clkPin, csPin, 4},
{dinPins[5], clkPin, csPin, 4},
{dinPins[6], clkPin, csPin, 4},
{dinPins[7], clkPin, csPin, 4}
};
// Funktion för att tända alla dioder i ett segment
void lightUpSegment(int group, int segment) {
// Tänd alla dioder i det här segmentet
for (int row = 0; row < 8; row++) {
for (int col = 0; col < 8; col++) {
lc[group].setLed(segment, row, col, true); // Tänd varje LED i det aktuella segmentet
}
}
}
void setup() {
// Initiera alla MAX7219-enheter
for (int g = 0; g < NUM_GROUPS; g++) {
for (int i = 0; i < 4; i++) {
lc[g].shutdown(i, false);
lc[g].setIntensity(i, 8); // Justera ljusstyrka
lc[g].clearDisplay(i);
}
}
}
void loop() {
int segmentNum = 0; // Håll reda på vilket segment vi är på
for (int group = 0; group < NUM_GROUPS; group++) {
// Tänd alla dioder i varje segment
lightUpSegment(group, segmentNum);
segmentNum++;
delay(500); // Vänta en stund innan vi går till nästa segment
}
delay(1000); // Vänta en sekund innan vi börjar om
}