// Definisikan pin yang akan digunakan
const int pushButtonPin = 2; // Push button pin
const int redLEDPin = 3; // Red LED pin
const int yellowLEDPin = 4; // Yellow LED pin
const int greenLEDPin = 5; // Green LED pin
const int buzzerPin = 6; // Buzzer pin
// Variabel untuk melacak status tombol
bool buttonState = false;
void setup() {
// Atur pin-pin sebagai input atau output
pinMode(pushButtonPin, INPUT);
pinMode(redLEDPin, OUTPUT);
pinMode(yellowLEDPin, OUTPUT);
pinMode(greenLEDPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Mulai komunikasi serial
Serial.begin(9600);
}
void loop() {
// Baca status tombol dengan penanganan debounce
buttonState = digitalRead(pushButtonPin);
if (!buttonState) { // Tombol mati (off)
// Nyalakan LED merah
digitalWrite(redLEDPin, HIGH);
// Nyalakan LED kuning dan matikan setelah 1 detik (blinking)
digitalWrite(yellowLEDPin, HIGH);
delay(1000); // Waktu blinking LED kuning
digitalWrite(yellowLEDPin, LOW);
// Matikan LED hijau
digitalWrite(greenLEDPin, LOW);
// Matikan buzzer
digitalWrite(buzzerPin, LOW);
// Tampilkan pesan pada Serial Monitor
Serial.println("Dilarang menyebrang jalan");
} else { // Tombol hidup (on)
// Matikan LED merah
digitalWrite(redLEDPin, LOW);
// Matikan LED kuning
digitalWrite(yellowLEDPin, LOW);
// Nyalakan LED hijau
digitalWrite(greenLEDPin, HIGH);
// Nyalakan buzzer
digitalWrite(buzzerPin, HIGH);
// Tampilkan pesan pada Serial Monitor
Serial.println("Silahkan menyebrang jalan");
// Tunda selama 4 detik
delay(4000); // Waktu hijau sebelum mati
// Matikan buzzer setelah 4 detik
digitalWrite(buzzerPin, LOW);
}
}