#include <MD_MAX72xx.h>
#include <RTClib.h>
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 1
#define DATA_PIN PA7
#define CS_PIN PA4
#define CLK_PIN PA5
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
RTC_DS1307 rtc;
void setup() {
mx.begin();
mx.control(MD_MAX72XX::INTENSITY, 5);
mx.clear();
// Custom bitmap for 'H'
uint8_t H[8] = {
0x00,
0x7E,
0x42,
0x42,
0x42,
0x42,
0x42,
0x00
};
for (uint8_t i = 0; i < 8; i++) {
mx.setColumn(i, H[i]);
}
Serial.begin(9600);
Wire.begin();
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (!rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// Set to a known time
rtc.adjust(DateTime(F(_DATE), F(TIME_)));
}
// if (!rtc.begin()) {
// Serial.println("Couldn't find RTC");
// while (1);
// }
// if (!rtc.isrunning()) {
// Serial.println("RTC is NOT running, setting the time!");
// rtc.adjust(DateTime(2025, 8, 9, 22, 0, 0)); // Set manually
// }
// Serial.begin(9600);
// Wire.begin();
rtc.begin();
rtc.adjust(DateTime(2025, 8, 9, 22, 30, 0));
}
void loop() {
// DateTime now = rtc.now();
// Serial.print("Current Time: ");
// Serial.print(now.hour());
// Serial.print(':');
// Serial.print(now.minute());
// Serial.print(':');
// Serial.println(now.second());
// Serial.println(now.timestamp(DateTime::TIMESTAMP_FULL));
// delay(1000); // Update every second
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('-');
Serial.print(now.month(), DEC);
Serial.print('-');
Serial.print(now.day(), DEC);
Serial.print('T');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.println(now.second(), DEC);
delay(1000);
}