Deskripsi
Keypad Countdown Timer adalah alat yang digunakan sebagai timer seperti, memasak, workout,
atau bisa dipakai sebagai timer pada pertandingan futsal ataupun basket. Cara kerja alat ini
dengan menggunakan keypad membran kita dapat menset berapa detik ataupun menit yang akan
kita set, dimulai dari menset menit setelah itu menset detik contoh kita akan menset timer dengan
waktu 1 menit 30 detik maka, yang harus dilakukan adalah memasukan angka 1 setelah itu 3 dan
0 pada keypad, pada keypad terdapat * dan #, pada alat ini fungsi * untuk menghapus angka
yang salah jika dalam mengeset timer, dan # untuk memulai timer. Alat ini menggunakan sensor
ldr untuk membatalkan perhitungan mundur pada timer. Pada alat ini juga terdapat dua led dan
speaker yaitu merah dan hijau apabila start menghitung mundur maka led merah akan on dan
ketika selesai led hijau akan menyala beserta suara yang muncul dari speaker sebagai
pemberitahuan.
SKETCH
SOURCE CODE
#include <Keypad.h>
char keys[ROWS][COLS] =
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
boolean timerstart=LOW;
boolean timerend=LOW;
long duration;
int distance;
void setup()
Serial.begin(9600);
digitalWrite(ledpin1,OUTPUT);
digitalWrite(ledpin2,OUTPUT);
void loop()
if(hold == LOW){
hold=HIGH;}
switch (key1)
case NO_KEY:
break;
case '0': case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8': case '9':
if (timesett>3000)
break;
if (timesett>=100)
timesetm=timesett/100;
timesets=timesett%100;
if (timesets>=60)
timesetm=timesetm+timesets/60;
timesets=timesets%60;
else
timesetm=0;
timesets=timesett;
if(timesets>=60)
timesetm=timesets/60;
timesets=timesets%60;
}
}
Serial.print(timesetm);
Serial.print(":");
Serial.println(timesets);
break;
case '#':
(timerstart=HIGH);
break;
case '*':
timesett=timesett/10;
if (timesett>=100)
timesetm=timesett/100;
timesets=timesett%100;
if (timesets>=60)
timesetm=timesetm+timesets/60;
timesets=timesets%60;
else
timesetm=0;
timesets=timesett;
if(timesets>=60)
timesetm=timesets/60;
timesets=timesets%60;
Serial.print(timesetm);
Serial.print(":");
Serial.println(timesets);
break;
if(timerstart==HIGH)
Serial.print("Timer started");
timerend=HIGH;
digitalWrite(ledpin1,HIGH);
digitalWrite(ledpin2, LOW);
if(timesetm!=0)
Serial.print(timem);
Serial.print(":");
Serial.print(times);
Serial.print(" ");
delay(1000);
key1=kpd.getKey();
if(key1=='#')
timerend=LOW;
timerstart=LOW;
break;
Serial.print(ldrVal);
if (ldrVal <=300)
timerend=LOW;
timerstart=LOW;
break;
delay(1000);
timesets=59;
if(timerend=LOW)
break;
}
else
Serial.print(times);
Serial.print(" ");
delay(1000);
key1=kpd.getKey();
if(key1=='#')
timerend=LOW;
Serial.println(ldrVal);
if (ldrVal <=300)
timerend=LOW;
timerstart=LOW;
break;
if(timerend=LOW)
{
break;
while(timerend=HIGH)
key1=kpd.getKey();
if(key1=='#')
timerend=LOW;
break;
Serial.println(ldrVal);
if (ldrVal <=300)
timerend=LOW;
timerstart=LOW;
break;
if(timerend=LOW)
break;
tone(spkpin,300,125);
delay(125);
timesett=0;
timesets=0;
timesetm-0;
hold = LOW;
timerstart=LOW;
digitalWrite(ledpin1,LOW);
digitalWrite(ledpin2,HIGH);
delay(1000);
digitalWrite(ledpin2,LOW);
}
START
Include library Keypad Inisialisasi pin, nilai awal, dan tipe nilai
yes
Pembacaan Keypad Number? timesett=timesett*10+key1
no
Menampilkan waktu
yes
‘#’? set pd serial monitor
no timerstart=HIGH
no timerstart=
=HIGH? no yes
‘*’? timesett=timesett/10
Menampilkan waktu
Menampilkan “Timer hitung mundur set pd serial monitor
started” serial
monitor
Menampilkan waktu
hitung mundur
Menampilkan yes no
selesai?
“Time’s up” pd monit
yes Keypad=#? or no
membunyikan speaker
sensor<10cm?_