const int btn_start = A0; // Start button A0
const int btn_stop = A1; // Stop button A1
const int btn_reset = A2; // Reset button A2
byte hr = 00; // hours
byte mm = 00; // minutes
byte ss = 00; // seconds
bool timerStart = false; // Boolean to flip between true and false.
void setup()
{
Serial.begin(9600);
pinMode(btn_start, INPUT_PULLUP); // btn_start as an input into serial
pinMode(btn_stop, INPUT_PULLUP); // btn_stop as an input into serial
pinMode(btn_reset, INPUT_PULLUP); // btn_reset as an input into serial
}
void loop() { // Runs in a loop
if (digitalRead(btn_start) == 0) { // If statement runs if start button is pressed
timerStart = true; // Start stopwatch
Serial.println("Timer Started"); // Print "Timer Started"
delay(500);
}
if (digitalRead(btn_stop) == 0) { // If statement runs if stop button is pressed
timerStart = false; // Stop stopwatch
Serial.println("Timer Stopped"); // Print "Timer Stopped"
delay(500);
}
if (digitalRead(btn_reset) == 0) { // If statement runs if reset button is pressed
ss = 00; // Resets count back to zero
mm = 00; // Resets count back to zero
hr = 00; // Resets count back to zero
Serial.println("Timer Reset"); // Print "Timer Reset"
delay(500); //
}
if (timerStart == true) { // If statement runs if boolean is flipped to true
Serial.print(mm < 10 ? "0" : "");
Serial.print(mm);
Serial.print(":");
Serial.print(ss < 10 ? "0" : "");
Serial.println(ss); // Serial prints "mm:ss", formatted
}
if (timerStart == true) { // If statement runs if boolean is flipped to true
delay(1000);
ss = ss + 1;
if (ss > 59) {
ss = 0;
mm = mm + 1; // Timer counts time by rapidly adding a second
}
}
}
Stop
Start
Reset