#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define DATA_PIN D11 // PA7
#define CLK_PIN D13 // PA5
#define CS_PIN D10 // PB6
MD_Parola display = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
String entrada = "";
bool recibiendo = false;
bool mensajeNuevo = false;
void setup() {
Serial.begin(115200);
Serial.println("Iniciando...");
display.begin();
display.setIntensity(3);
//display.displayClear();
display.displayText("HOLA", PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
Serial.println("Display iniciado correctamente.");
}
void loop() {
while (Serial.available()) {
char c = Serial.read();
if (!recibiendo) {
entrada = "";
recibiendo = true;
}
if (c == '\n' || c == '\r') {
if (entrada.length() > 0) {
mensajeNuevo = true;
recibiendo = false;
Serial.println("Mostrando: " + entrada + "\nDigita un nuevo texto:");
}
} else {
entrada += c;
}
}
if (mensajeNuevo) {
mostrarMensaje();
mensajeNuevo = false;
}
display.displayAnimate();
}
void mostrarMensaje() {
display.displayClear();
if (entrada.length() <= 6)
display.displayText(entrada.c_str(), PA_CENTER, 0, 0, PA_PRINT, PA_NO_EFFECT);
else
display.displayScroll(entrada.c_str(), PA_LEFT, PA_SCROLL_LEFT, 100);
display.displayReset();
}