#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include "RTClib.h"
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define CS_PIN 53 // Pin CS per matrix
#define MATRICI_PER_RIGA 15
#define RIGHE 13
#define MAX_DEVICES (MATRICI_PER_RIGA * RIGHE) // 195
RTC_DS1307 rtc;
MD_Parola P(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
void setup() {
P.begin(RIGHE); // inizializza 13 zone
P.setIntensity(8); // luminosità media
// definizione delle 13 zone (righe)
for (uint8_t i = 0; i < RIGHE; i++) {
uint8_t start = i * MATRICI_PER_RIGA;
uint8_t end = start + MATRICI_PER_RIGA - 1;
P.setZone(i, start, end);
}
P.displayZoneText(0, "16:00 MILANO", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(1, "16:10 TORINO", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(2, "16:20 ROMA", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(3, "16:30 NAPOLI", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(4, "16:40 FIRENZE",PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(5, "16:50 BOLOGNA",PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(6, "17:00 VENEZIA",PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(7, "17:10 GENOVA", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(8, "17:20 BARI", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(9, "17:30 PALERMO",PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(10, "17:40 CATANIA",PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(11, "17:50 PISA", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
P.displayZoneText(12, "18:00 TRENTO", PA_LEFT, 0, 0, PA_PRINT, PA_NO_EFFECT);
}
void loop() {
P.displayAnimate(); // anima tutte le zone
}