#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);
#define Led1 2
#define Up 15
#define Down 4
#define Pause 5
unsigned char Jam = 0, Menit = 0, Detik = 0;
bool isPaused = false;
void setup() {
Serial.begin(115200);
pinMode(Led1, OUTPUT);
pinMode(Up, INPUT_PULLUP);
pinMode(Down, INPUT_PULLUP);
pinMode(Pause, INPUT_PULLUP);
LCD.init();
LCD.backlight();
LCD.setCursor(0, 0 );
LCD.print("INTAN AULIA");
LCD.setCursor(0, 1 );
LCD.print("TL2D");
delay(1000);
LCD.clear();
LCD.setCursor(0, 0 );
LCD.print("Play");
LCD.setCursor(0, 1);
LCD.print("Timer: ");
}
void loop() {
if (!isPaused) {
Detik++;
digitalWrite(Led1, LOW);
delay(500);
digitalWrite(Led1, HIGH);
delay(500);
}
if (digitalRead(Up) == LOW) {
Menit++;
if (Menit >= 60) {
Menit = 0;
Jam++;
if (Jam >= 24) {
Jam = 0;
}
LCD.setCursor(12, 1);
LCD.print(" ");
}
}
if (digitalRead(Down) == LOW) {
if (Menit > 0) {
Menit--;
} else {
if (Jam > 0) {
Jam--;
} else {
Jam = 23;
}
Menit = 59;
}
}
if (digitalRead(Pause) == LOW) {
isPaused = !isPaused;
if (isPaused) {
LCD.setCursor(0, 0);
LCD.print("Stop");
} else {
LCD.setCursor(0, 0);
LCD.print("Play");
}
}
LCD.setCursor(7,1);
LCD.print(Jam);
LCD.print(":");
LCD.print(Menit);
LCD.print(":");
LCD.print(Detik);
}