#include <RTClib.h>
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 8 // Número de matrices 8x8
#define CLK_PIN 13 // CLK o SCK
#define DATA_PIN 11 // DATA o MOSI
#define CS_PIN 10 // CS o SS
MD_Parola letrero = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
byte vel = 40;
char hora[9];
char fecha[11];
char diaSem[7][12] = {"Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"};
void setup() {
Serial.begin(9600);
letrero.begin();
letrero.setIntensity(15);
letrero.displayClear();
letrero.displayScroll("BIENVENIDO", PA_CENTER, PA_SCROLL_LEFT, vel);
}
void loop() {
letrero.setTextAlignment(PA_CENTER);
letrero.displayClear();
for (int i=0; i<5; i++) {
asignarHora();
letrero.print(hora);
delay(300);
}
asignarFecha();
letrero.displayScroll(fecha, PA_CENTER, PA_SCROLL_LEFT, vel);
if (letrero.displayAnimate()) {
letrero.displayScroll(fecha, PA_CENTER, PA_SCROLL_LEFT, vel);
letrero.displayReset();
}
}
void asignarHora(){
RTC_Millis rtc;
DateTime now = rtc.now(); //Obtener hora actual.
int h = now.hour();
int m = now.minute();
int s = now.second();
sprintf(hora, "%.2d:%.2d:%.2d", h, m, s);
}
void asignarFecha(){
RTC_Millis rtc;
DateTime hoy = rtc.now(); //Obtener hora actual.
char nd[12];
nd[12] = diaSem[hoy.dayOfTheWeek()];
int d = hoy.day();
int m = hoy.month();
int y = hoy.year();
sprintf(fecha, "%s %.2d/%.2d/%.4d", nd, d, m, y);
}