스텁워치게임
Makerist
예제&실습
0
674
2024.05.11 20:01
[
#include <TM1637Display.h> #define CLK 2 // CLK 핀을 2번 핀에 연결 #define DIO 3 // DIO 핀을 3번 핀에 연결 TM1637Display display(CLK, DIO); const int switchPin = 4; // 푸쉬 스위치 핀 unsigned long startTime = 0; // 시작 시간 unsigned long elapsedTime = 0; // 경과 시간 bool isRunning = false; // 스톱워치가 실행 중인지 여부 int lastSwitchState = LOW; // 이전 스위치 상태 void setup() { pinMode(switchPin, INPUT_PULLUP); display.setBrightness(0x0a); // 디스플레이 밝기 설정 } void loop() { int switchState = digitalRead(switchPin); // 스위치 상태 읽기 // 스위치가 눌렸고 이전에 눌리지 않았을 때 if (switchState == LOW && lastSwitchState == HIGH) { if (!isRunning) { startTime = millis(); // 스톱워치 시작 시간 설정 } else { elapsedTime += millis() - startTime; // 경과 시간 누적 } isRunning = !isRunning; // 스톱워치 실행 상태 변경 } lastSwitchState = switchState; // 이전 스위치 상태 업데이트 if (isRunning) { unsigned long currentTime = millis(); elapsedTime += currentTime - startTime; startTime = currentTime; } // 경과 시간을 시간, 분, 초로 변환 int seconds = elapsedTime / 1000 % 60; int minutes = (elapsedTime / 1000 / 60) % 60; int hours = (elapsedTime / 1000 / 60 / 60) % 24; // 시간을 디스플레이에 표시 display.showNumberDecEx(hours * 100 + minutes * 10 + seconds, 0b01000000, true); }