#include <Wire.h>
#include <RTClib.h>
#include <SPI.h>
#include "Ucglib.h"
RTC_DS3231 rtc;
Ucglib_ILI9341_18x240x320_SWSPI ucg(/*sclk=*/ 13, /*data=*/ 11, /*cd=*/ 9, /*cs=*/ 10, /*reset=*/ 8);
void drawDigitalClock(int hour, int minute, int second) {
ucg.setColor(0, 0, 0);
ucg.setFont(ucg_font_ncenR18_hr);
char timeString[9];
sprintf(timeString, "%02d:%02d:%02d", hour, minute, second);
int textWidth = ucg.getStrWidth(timeString);
int x = (ucg.getWidth() - textWidth) / 2;
int y = ucg.getHeight() / 2;
ucg.clearScreen();
ucg.setPrintPos(10, 40);
ucg.print("CODE BY ARVIND ");
ucg.setColor(255, 250, 255);
ucg.setPrintPos(10, 150);
ucg.print(timeString);
ucg.setPrintPos(10, 80);
ucg.print("UDATING EVERY SIX SECONDS ");
ucg.setColor(250, 25, 25);
}
void setup(void) {
delay(1000);
ucg.begin(UCG_FONT_MODE_TRANSPARENT);
ucg.setFont(ucg_font_ncenR18_hr);
ucg.clearScreen();
// Initialize the RTC
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop(void) {
// Read the current time from the RTC
DateTime now = rtc.now();
// Extract hour, minute, and second
int hour = now.hour();
int minute = now.minute();
int second = now.second();
drawDigitalClock(hour, minute, second);
delay(1000); // Update every second
}