#include <Wire.h>
#include "RTClib.h"
RTC_DS3231 rtc;
DateTime future;
bool countdownActive = false;
void setup() {
Serial.begin(9600);
while (!Serial) {
; // Wait for serial port to connect.
}
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
Serial.println("Enter countdown time as hours, minutes, and seconds. Format: HH MM SS");
}
void loop() {
if (!countdownActive && Serial.available()) {
int hours = Serial.parseInt();
int minutes = Serial.parseInt();
int seconds = Serial.parseInt();
if (hours >= 0 && minutes >= 0 && seconds >= 0) {
Serial.print("Starting countdown for ");
Serial.print(hours);
Serial.print(" hours, ");
Serial.print(minutes);
Serial.print(" minutes, ");
Serial.print(seconds);
Serial.println(" seconds.");
future = rtc.now() + TimeSpan(0, hours, minutes, seconds);
countdownActive = true;
}
}
if (countdownActive && rtc.now() < future) {
DateTime now = rtc.now();
TimeSpan remaining = future - now;
Serial.print(remaining.hours());
Serial.print(':');
Serial.print(remaining.minutes());
Serial.print(':');
Serial.println(remaining.seconds());
delay(1000); // Update every second
} else if (countdownActive) {
Serial.println("Countdown finished!");
Serial.println("Enter next countdown time as hours, minutes, and seconds. Format: HH MM SS");
countdownActive = false;
}
}