/*
Deklarasi variabel untuk menampung nomor pin
yang dihubungkan dengan hardware Push Button dan lampu LED
*/
int bcBtnGreen;
int bcBtnYellow;
int BtnGreen = 12;
int BtnYellow = 11;
/*
Nomor pin yang terhubung dengan LED disimpan dalam array agar
lebih ringkas
*/
int ledPins[] = {10, 9, 8, 7, 6, 5, 4, 3};
/*
Inisialisasi Push Button untuk menerima INPUT
Dan inisialisasi nomor pin yang terhubung dengan LED untuk menampilkan OUTPUT
*/
void setup() {
pinMode(BtnGreen, INPUT);
pinMode(BtnYellow, INPUT);
/*
Inisialisasi nomor pin yang terhubung dengan LED menggunakan for loop agar lebih
ringkas dan mudah
*/
for(int i = 0; i<8; i++){
pinMode(ledPins[i], OUTPUT);
}
}
/*
Kode tempat berjalannya program
*/
void loop() {
/*
Variabel bcBtnGreen dan bcBtnYelow untuk membaca INPUT dari diterima dari Push Button
*/
bcBtnGreen = digitalRead(BtnGreen);
bcBtnYellow = digitalRead(BtnYellow);
/*
Saat Push Button Green ditekan, lampu LED akan menyala sesuai mode 8
Pola lampu LED dan indeks array yang ditemukan di mode 8 adalah
1. 3 & 7
2. 2 & 6
3. 1 & 5
4. 0 & 4
Sehingga menghasilkan pola for loop seperti di bawah
Delay diletakkan sesudah kedua lampu dinyalakan
agar bisa menyala pada saat yang bersamaan
*/
if(bcBtnGreen==0){
for(int i = 4; i>0; i--){
digitalWrite(ledPins[i-1], HIGH);
digitalWrite(ledPins[i+3], HIGH);
delay(700);
digitalWrite(ledPins[i-1], LOW);
digitalWrite(ledPins[i+3], LOW);
delay(700);
}
}
/*
Saat Push Button Green ditekan, lampu LED akan menyala sesuai mode 14
Pola lampu LED dan indeks array yang ditemukan di mode 14 dalam 4 kali pengulangan adalah
1. 0 then 7
2. 1 then 6
3. 2 then 5
4. 3 then 4
Sehingga menghasilkan pola for loop seperti di bawah
Meskipun pada mode 14 masing-masing lampu akan menyala dan mati secara bergantian
Kami memutuskan untuk hanya menggunakan 4 kali pengulangan agar lebih ringkas
dan karena pola nyala lampu LED lebih terlihat
*/
if(bcBtnYellow==0){
for(int i=0; i<4; i++){
digitalWrite(ledPins[i], HIGH);
delay(700);
digitalWrite(ledPins[i], LOW);
delay(700);
digitalWrite(ledPins[7-i], HIGH);
delay(700);
digitalWrite(ledPins[7-i], LOW);
delay(700);
}
}
}