#include <TM1637Display.h>
#define CLK 2
#define DIO 3
#define START_BUTTON_PIN 4
#define STOP_BUTTON_PIN 5
#define RESET_BUTTON_PIN 6
TM1637Display display(CLK, DIO);
unsigned long startTime = 0;
unsigned long elapsedTime = 0;
bool isRunning = false;
void setup() {
pinMode(START_BUTTON_PIN, INPUT_PULLUP);
pinMode(STOP_BUTTON_PIN, INPUT_PULLUP);
pinMode(RESET_BUTTON_PIN, INPUT_PULLUP);
display.setBrightness(0x0a);
display.showNumberDec(0);
}
void loop() {
if (digitalRead(START_BUTTON_PIN) == LOW && !isRunning) {
startTime = millis() - elapsedTime;
isRunning = true;
}
// Check stop button
if (digitalRead(STOP_BUTTON_PIN) == LOW && isRunning) {
elapsedTime = millis() - startTime;
isRunning = false;
}
if (digitalRead(RESET_BUTTON_PIN) == LOW) {
isRunning = false;
elapsedTime = 0;
display.showNumberDec(0);
}
if (isRunning) {
unsigned long currentTime = millis() - startTime;
display.showNumberDecEx(currentTime / 1000, 0b01000000, true);
}
delay(10);
}