#sertakan " pitches. h"
#tentukan PIN_SPEAKER 8
const uint8_t tombolPin []= {10, 13, 12, 11;};
const int tombolNada []= {CATATAN_LAMPU_MERAH, CATATAN_LAMPU_KUNING, CATATANM_LAMPU_HIJAU, Bahasa Indonesia:};
const int numTones = ukuran (pintombol)/ ukuran (pintombol[0]);
const int buttonPin = 10; // Pin untuk tombol
const int redLedPin = 13; // Pin untuk LED merah
const int yellowLedPin = 12; // Pin untuk LED kuning
const int greenLedPin = 11; // Pin untuk LED hijau
int ledState = 0; // Variabel untuk melacak status LED
void setup() {
untuk (uint8_t i = 0; i < numTones; i ++){
pinMode (tombolPin [i],INPUT_PULLUP);
}
pinMode (PIN_SPEAKER, OUTPUT);
pinMode(buttonPin, INPUT); // Mengatur pin tombol sebagai input
pinMode(redLedPin, OUTPUT); // Mengatur pin LED merah sebagai output
pinMode(yellowLedPin, OUTPUT); // Mengatur pin LED kuning sebagai output
pinMode(greenLedPin, OUTPUT); // Mengatur pin LED hijau sebagai output
}
void loop() {
if (digitalRead(buttonPin) == HIGH) { // Cek jika tombol ditekan
delay(100); // Debouncing sederhana dengan delay 100ms
if (digitalRead(buttonPin) == HIGH) { // Pastikan tombol masih ditekan
ledState++; // Melakukan penambahan status LED
if (ledState > 2) {
ledState = 0; // Kembali ke status awal jika melewati tiga LED
}
// Mengganti status LED sesuai dengan urutan yang diminta
switch (ledState) {
case 0:
digitalWrite(redLedPin, HIGH); // LED merah menyala
digitalWrite(yellowLedPin, LOW); // LED kuning mati
digitalWrite(greenLedPin, LOW); // LED hijau mati
break;
case 1:
digitalWrite(redLedPin, LOW); // LED merah mati
digitalWrite(yellowLedPin, HIGH); // LED kuning menyala
digitalWrite(greenLedPin, LOW); // LED hijau mati
break;
case 2:
digitalWrite(redLedPin, LOW); // LED merah mati
digitalWrite(yellowLedPin, LOW); // LED kuning mati
digitalWrite(greenLedPin, HIGH); // LED hijau nyala
break;
}
}
}
}