#include <MD_Parola.h>
#include <SPI.h>
//#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 7
#define CS_PIN 10
#define CLK_PIN 13
#define DIN_PIN 11
#define SPEED 50
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
#define buttonPin A0
bool messageState = 0;
bool lastButtonState = 1;
bool run = false;
bool flag = false;
int count = 0;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 30;
void setup() {
Serial.begin(115200);
myDisplay.begin();
myDisplay.setIntensity(4);
myDisplay.displayClear();
pinMode(buttonPin, INPUT_PULLUP);
}
void DisplayMessage(char msg[]) {
if (myDisplay.displayAnimate()) {
myDisplay.displayScroll(msg, PA_CENTER, PA_SCROLL_LEFT, SPEED);
myDisplay.displayReset();
count++;
if (count >= 2)
run = true;
}
}
//--------------------------------------------------------------------
void loop() {
lastDebounceTime = millis();
while (digitalRead(buttonPin) == LOW) {
if ((millis() - lastDebounceTime) > debounceDelay) {
if (digitalRead(buttonPin) == LOW and flag == false) {
count = 0;
run = false;
messageState = !messageState;
myDisplay.displayClear();
}
}
}
flag = false;
if (messageState == 0) {
if (run == false)
{
DisplayMessage("Andy is IN");
}
else
myDisplay.print("Andy is IN");
}
if (messageState == 1) {
if (run == false)
{
DisplayMessage("Andy is OUT");
}
else
myDisplay.print("Andy is OUT");
}
}