// Deklarasi pin lampu dan tombol
int lampu[] = {2, 3, 4, 5}; // Array untuk menyimpan pin lampu (lampu1 hingga lampu4)
int tombol1 = A0;
int tombol2 = A1;
// Variabel untuk menyimpan status tombol dan lampu
int statusLampu = 0; // Mengindikasikan lampu mana yang menyala (0: tidak ada, 1: lampu 1, dst.)
int tombol1Sebelumnya = LOW;
int tombol2Sebelumnya = LOW;
void setup() {
// Set pin lampu sebagai output
for (int i = 0; i < 4; i++) {
pinMode(lampu[i], OUTPUT);
}
// Set pin tombol sebagai input
pinMode(tombol1, INPUT);
pinMode(tombol2, INPUT);
// Matikan semua lampu di awal
matikanSemuaLampu();
}
void loop() {
// Baca status tombol
int bacaTombol1 = digitalRead(tombol1);
int bacaTombol2 = digitalRead(tombol2);
// Jika tombol 1 ditekan dan tombol 2 tidak ditekan
if ((bacaTombol1 == HIGH) && (bacaTombol2 == LOW) && (tombol1Sebelumnya == LOW)) {
// Naikkan status lampu secara berurutan
if (statusLampu < 4) {
statusLampu++;
} else {
statusLampu = 1; // Kembali ke lampu 1 setelah lampu 4
}
aturLampu(statusLampu);
delay(200); // Debounce
}
// Jika tombol 2 ditekan dan tombol 1 tidak ditekan
if ((bacaTombol2 == HIGH) && (bacaTombol1 == LOW) && (tombol2Sebelumnya == LOW)) {
// Kurangi status lampu secara berurutan
if (statusLampu > 1) {
statusLampu--;
} else {
statusLampu = 4; // Kembali ke lampu 4 setelah lampu 1
}
aturLampu(statusLampu);
delay(200); // Debounce
}
// Simpan status tombol sebelumnya untuk digunakan di loop berikutnya
tombol1Sebelumnya = bacaTombol1;
tombol2Sebelumnya = bacaTombol2;
}
// Fungsi untuk mengatur lampu yang menyala
void aturLampu(int lampuNyala) {
matikanSemuaLampu(); // Matikan semua lampu sebelum menyalakan yang dipilih
// Loop for untuk menyalakan lampu yang sesuai
for (int i = 0; i < 4; i++) {
if (lampuNyala == i + 1) {
digitalWrite(lampu[i], HIGH);
}
}
}
// Fungsi untuk mematikan semua lampu
void matikanSemuaLampu() {
// Loop for untuk mematikan semua lampu
for (int i = 0; i < 4; i++) {
digitalWrite(lampu[i], LOW);
}
}