int ledPin; // Deklarasi variabel untuk pin LED (tidak diinisialisasi)
int ledBL = 12; // Pin 12 untuk LED tambahan (LED BL)
int button = 2; // Pin 2 untuk tombol
int val = 0; // Variabel untuk menyimpan status pembacaan tombol
int currentState = 0; // Variabel untuk menyimpan status saat ini tombol
int previousState = 0; // Variabel untuk menyimpan status sebelumnya tombol
int counter = 0; // Variabel penghitung untuk menghitung jumlah penekanan tombol
void setup() {
pinMode(ledPin, OUTPUT); // Set pin ledPin sebagai output (tidak ada pin yang ditetapkan)
pinMode(ledBL, OUTPUT); // Set pin LED BL sebagai output
pinMode(button, INPUT); // Set pin tombol sebagai input
Serial.begin(9600); // Mulai komunikasi serial dengan baud rate 9600
}
void loop() {
val = digitalRead(button); // Baca status tombol, simpan ke variabel val
if (val == HIGH) { // Jika tombol ditekan
digitalWrite(ledPin, HIGH); // Nyalakan LED pada pin ledPin
currentState = 1; // Set currentState menjadi 1 (tombol ditekan)
} else {
digitalWrite(ledPin, LOW); // Matikan LED pada pin ledPin
currentState = 0; // Set currentState menjadi 0 (tombol tidak ditekan)
}
if (currentState != previousState) { // Jika status tombol berubah
if (currentState == 1) { // Jika tombol ditekan
counter = counter + 1; // Increment counter
Serial.println(counter); // Kirim nilai counter ke Serial Monitor
}
}
if (counter == 0) { // Jika counter sama dengan 0
digitalWrite(ledBL, LOW); // Matikan LED BL
}
if (counter == 1) { // Jika counter sama dengan 1
digitalWrite(ledBL, HIGH); // Nyalakan LED BL
}
if (counter == 2) { // Jika counter sama dengan 2
digitalWrite(ledBL, LOW); // Matikan LED BL
}
if (counter == 3) { // Jika counter sama dengan 3
counter = 0; // Reset counter ke 0
}
previousState = currentState; // Update previousState dengan currentState
delay(50); // Tunggu selama 50 milidetik
}