#include <Wire.h>
#include <RTClib.h>
#include <MD_Parola.h>
#include <MD_MAX72XX.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 3 // Menggunakan 3 keping LED matrix
#define CLK_PIN 52 // SCK pada Mega
#define DATA_PIN 51 // MOSI pada Mega
#define CS_PIN 53 // SS pada Mega
MD_Parola matrix = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
RTC_DS3231 rtc;
char timeBuffer[10];
char dateBuffer[12];
char displayText[64];
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("RTC tidak terdeteksi!");
while (1);
}
if (rtc.lostPower()) {
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
matrix.begin();
matrix.setIntensity(2); // Sesuaikan intensitas (0-15)
matrix.setSpeed(50); // Kecepatan scroll
matrix.displayClear();
}
void loop() {
DateTime now = rtc.now();
snprintf(timeBuffer, sizeof(timeBuffer), "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
snprintf(dateBuffer, sizeof(dateBuffer), "%02d/%02d/%04d", now.day(), now.month(), now.year());
snprintf(displayText, sizeof(displayText), "Time: %s Date: %s", timeBuffer, dateBuffer);
if (matrix.displayAnimate()) {
matrix.displayText(displayText, PA_CENTER, 100, 50, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
}