#include <Bounce2.h>
unsigned long lastSec = 0;
Bounce bounce1 = Bounce();
Bounce bounce2 = Bounce();
Bounce bounce3 = Bounce();
int hr = 0;
int mn = 0;
int sec = 0;
void setup() {
pinMode(7, OUTPUT);
bounce1.attach(4, INPUT_PULLUP);
bounce1.interval(25);
bounce2.attach(5, INPUT_PULLUP);
bounce2.interval(25);
bounce3.attach(6, INPUT_PULLUP);
bounce3.interval(25);
Serial.begin(115200);
}
void loop() {
if(millis() - lastSec >= 1000){
getTime();
lastSec = millis();
showTime();
if(hr == 0 && mn == 1 && sec == 0){
digitalWrite(7, HIGH);
}
if(hr == 0 && mn == 3 && sec ==0){
digitalWrite(7, LOW);
}
}
bounce1.update();
bounce2.update();
bounce3.update();
if (bounce1.rose()) {
hr += 1;
if(hr >= 24){
hr = 0;
}
}
if (bounce2.rose()) {
mn += 1;
if(mn >= 60){
mn = 0;
}
}
if (bounce3.rose()) {
sec += 1;
if(sec >= 60){
sec += 0;
}
}
}
void getTime(){
sec++;
if(sec >= 60){
sec = 0;
mn += 1;
}
if(mn >= 60){
mn = 0;
hr += 1;
}
if(hr >= 24){
hr = 0;
}
}
String uniformize(int val){
String outputVal = "";
if(val < 10){
outputVal = "0" + String(val);
}else{
outputVal = String(val);
}
return outputVal;
}
void showTime(){
Serial.println(uniformize(hr) + ":" + uniformize(mn) + ":" + uniformize(sec));
}