//Incluimos las librerias que se van a usar
#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 módulos en cascada
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
//declaro pines de los pulsadores
const int pulsador1 = 3;
const int pulsador2 = 4;
const int pulsreset = 5;
//declaro variables
bool pulsador1ahora = 1;
bool pulsador1anterior = 1;
bool pulsador2ahora = 1;
bool pulsador2anterior = 1;
int contador1 = 0;
int contador2 = 0;
void setup() {
Serial.begin(9600); //Inicio comunicacion serial
//Serial.print("Escriba un texto para mostrar en la matriz. ");
P.begin(); //Inicio el objeto P (del modulo matriz 8x8 de 4)
//P.displayText(curMessage, scrollAlign, scrollSpeed, scrollPause, scrollEffect, scrollEffect);
P.setTextAlignment(PA_CENTER); //Defino posicion estatica (LEFT,RIGHT,UP,DOWN)
P.print(String(contador1) + " " + String(contador2)); //Mensaje a mostrar
pinMode(pulsador1, INPUT_PULLUP);
pinMode(pulsador2, INPUT_PULLUP);
pinMode(pulsreset, INPUT_PULLUP);
}
void loop() {
//funcion para pulsador 1
pulsador1ahora = digitalRead(pulsador1); //lee el pulsador
if (pulsador1ahora == 0 && pulsador1anterior == 1) { //entra si detecta que el pulsador entro y que el estado anterior estaba sin presionar
contador1++; //aumenta en uno el contador
P.setTextAlignment(PA_CENTER); //Defino posicion estatica (LEFT,RIGHT,UP,DOWN)
P.print(String(contador1) + " " + String(contador2)); //Mensaje a mostrar
delay(100);
Serial.println("1");
//Limpia la matriz
P.displayReset();
}
pulsador1anterior = pulsador1ahora; // actualiza el estado anterior
//funcion para pulsador 2
pulsador2ahora = digitalRead(pulsador2); //lee el pulsador
if (pulsador2ahora == 0 && pulsador2anterior == 1) { //entra si detecta que el pulsador entro y que el estado anterior estaba sin presionar
contador2++; //aumenta en uno el contador
P.setTextAlignment(PA_CENTER); //Defino posicion estatica (LEFT,RIGHT,UP,DOWN)
P.print(String(contador1) + " " + String(contador2)); //Mensaje a mostrar
delay(100);
Serial.println("2");
//Limpia la matriz
P.displayReset();
}
pulsador2anterior = pulsador2ahora; // actualiza el estado anterior
if (contador1 > 99) {
contador1 = 99;
}
if (contador2 > 99) {
contador2 = 99;
}
//reset
if (digitalRead(pulsreset) == 0) {
contador1 = 0;
contador2 = 0;
P.setTextAlignment(PA_CENTER); //Defino posicion estatica (LEFT,RIGHT,UP,DOWN)
P.print(String(contador1) + " " + String(contador2)); //Mensaje a mostrar
Serial.println("resetear");
//Limpia la matriz
P.displayReset();
}
delay(100);
}