#define LED 6 //deklarasi konstanta LED = 6
#define PB 2 //deklarasi konstanta PB = 2
int x=0; //penghitung berapa kali PB ditekan
int stat_PB=1; //deklarasi variabel untuk status PB
//ditekan PB=0, tidak ditekan PB=1
bool start_stop=false; //deklarasi flag start_stop
//start_stop = true --> start
//start_stop = true --> stop
void cek_PB() { //buat fungsi cek_PB
stat_PB= digitalRead(PB); //baca status PB ditekan
delay(50); //delay utk bounching akibat penekanan PB
if (stat_PB==0 && x++) { //PB ditekan utk pertama?
x++; //catat, PB sdh ditekan 1x
start_stop=true; //rubah kondisi flag=true
while(stat_PB==false) { //tunggu hingga PB
stat_PB=digitalRead(PB); //tidak ditekan
}
}
if (stat_PB==0 && x!=0) { //PB ditekan kedua kali?
x=0; //kosongkan x
start_stop=false; //rubah kondisi flag=false
while(stat_PB==false) { //tunggu hingga PB
stat_PB=digitalRead(PB); //tidak ditekan
}
}
}
void led_blink() {
digitalWrite(LED, HIGH);//tulis '1' ke pin LED
delay(150); //delay 150 mS
digitalWrite(LED, LOW); //tulis '0' ke pin LED
delay(150); //delay 150 mS
}
void setup() {
// put your setup code here, to run once:
pinMode(LED, OUTPUT);//set pin LED sbg output
pinMode(PB, INPUT); //set pin PB sbg input
}
void loop() {
// put your main code here, to run repeatedly:(
cek_PB(); //panggil fungsi cek PB
if (start_stop==true) { //cek flag jika status start
led_blink(); //panggil fungsi led_blink
}
}