#include <LiquidCrystal_I2C.h>
#include <TimeLib.h>
int lcdColumns = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows);
const int TimerButton = 2;
const int CounterButton = 4;
const int StopButton = 18;
time_t t = now();
int TimerStart = 0;
int CurrentCounter;
void setup() {
lcd.init();
lcd.backlight();
Serial.begin(115200);
pinMode(TimerButton, INPUT);
pinMode(StopButton, INPUT);
setTime(00,55,00,24,7,14); //(Jam,Menit,Detik,Tanggal,Bulan,Tahun)
Serial.println("Timer Counter ESP32");
lcd.println("Timer Counter");
lcd.setCursor(0,1);
lcd.print(t);
delay(1000);
}
void printLCDSerial(String Text, int pos = 1){
Serial.println(Text);
lcd.setCursor(0,pos);
lcd.println(Text);
}
void loop() {
lcd.clear();
if(digitalRead(TimerButton) == HIGH){
Counter();
}
if (digitalRead(StopButton) == HIGH){
lcd.clear();
while(1);
}
//if (digitalRead(StopButton) == HIGH){
// Timer();
//}
}
void Counter(){
for(int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
lcd.setCursor(0,0);
lcd.print("Counter Timer");
printLCDSerial(String(TimerStart),1);
TimerStart++;
CurrentCounter = TimerStart;
delay(1000);
}
}
}
void Timer(){
for(int i=0;i<=9;i++){
for(int j=0;j<=9;j++){
lcd.setCursor(0,0);
lcd.print("Timer");
printLCDSerial(String(TimerStart),1);
TimerStart++;
delay(1000);
}
}
}
String TimerFormat(int TimerStart){
int second = TimerStart / 60;
int minute = second ;
int hour;
String StringTime = String(hour)+" : "+String(minute)+" : "+String(second);
return StringTime;
}
void Stop(){
lcd.clear();
printLCDSerial("Stop",0);
printLCDSerial("Counter = "+CurrentCounter,0);
while(true);
}