#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4
#define CLK_PIN 13
#define Data_PIN 11
#define CS_PIN 10
#define pinUp 2
#define pinDn 3
#define durAnimation 7000
MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
int lastAct = 0; //1= atas, 2 = bawah
int timeAnimation = 0;
void setup() {
myDisplay.begin();
myDisplay.setIntensity(0);
myDisplay.displayClear();
myDisplay.displayText("<<<<<<<<<<", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
pinMode(pinUp,INPUT_PULLUP);
pinMode(pinDn,INPUT_PULLUP);
}
void loop() {
if(digitalRead(pinUp)==LOW && lastAct==0){
myDisplay.displayClear();
myDisplay.displayText("<<<<<<<<<<<<<<<<", PA_CENTER, 100, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
lastAct = 1;
timeAnimation = durAnimation;
myDisplay.setZoneEffect(0, true, PA_FLIP_UD);
}
else if(digitalRead(pinDn)==LOW && lastAct==0){
myDisplay.displayClear();
myDisplay.displayText(">>>>>>>>>>>>>>>", PA_CENTER, 100, 0, PA_SCROLL_RIGHT, PA_SCROLL_RIGHT);
lastAct = 2;
timeAnimation = durAnimation;
}
if (myDisplay.displayAnimate() && timeAnimation > 0) {
myDisplay.displayReset();
}
if(timeAnimation <= 0 ){
lastAct = 0;
timeAnimation=0;
myDisplay.displayClear();
}
timeAnimation--;
delay(1);
}