#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <RTClib.h>
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define Baris 3
#define Kolom 15
#define MAX_DEVICES (Baris * Kolom)
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
RTC_DS1307 rtc;
int i=1;
bool isInverted = false;
bool gantiTeks = true;
char teksBaris0[35] = { "HSE e-BOARD" };
char teksBaris1[35] = { "NPK PKC" };
char teksBaris2[35] = { "" };
void setup()
{
Serial.begin(57600);
rtc.begin();
P.begin(3);
P.setZone(0, 0, 14);
P.setZone(1, 15, 29);
P.setZone(2, 30, 44);
P.setInvert(true);
P.setIntensity(0);
P.displayClear();
}
void loop()
{
//P.setInvert(isInverted);
if (gantiTeks){
gantiTeks=false;
P.displayZoneText(0, teksBaris0, PA_CENTER, 100, 0, PA_NO_EFFECT, PA_NO_EFFECT);
P.displayZoneText(1, teksBaris1, PA_CENTER, 100, 0, PA_NO_EFFECT, PA_NO_EFFECT);
P.displayZoneText(2, "HSE Golden Rule:", PA_CENTER, 10, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
if (P.getZoneStatus(0)) {
P.displayReset(0);
}
if (P.getZoneStatus(1)) {
P.displayReset(1);
}
if (P.getZoneStatus(2)) {
DateTime now = rtc.now();
String dayStr = (now.day() < 10) ? "0" + String(now.day()) : String(now.day());
String monthStr = (now.month() < 10) ? "0" + String(now.month()) : String(now.month());
String tanggal = "NPK PKC-" + dayStr + "/" + monthStr + "/" + String(now.year());
tanggal.toCharArray(teksBaris1, 35);
P.setInvert(isInverted);
P.displayReset(1);
P.displayReset(2);
P.displayClear();
P.displayZoneText(1, teksBaris1, PA_CENTER, 100, 0, PA_NO_EFFECT, PA_NO_EFFECT);
P.displayZoneText(2, "HSE Golden Rule:", PA_CENTER, 10, 0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
isInverted = !isInverted;
}
P.displayAnimate();
delay(10);
}
void buang(){
P.displayAnimate();
// Animate display continuously
if (P.displayAnimate()) {
// Reset the display once the animation completes to loop it
P.displayReset(0); // Reset zone 0
P.displayReset(1); // Reset zone 1
}
i=i+1;
Serial.print(i);
Serial.print(": ");
Serial.print("0 = ");
Serial.println(P.getZoneStatus(2));
//Serial.println(P.displayAnimate());
i=i+1;
//Serial.print(i);
//Serial.print(": ");
//Serial.print("0 = ");
//Serial.print(P.getZoneStatus(0));
//Serial.println(P.displayAnimate());
}