// Definisikan pin untuk lampu lalu lintas
int redPins[] = {2, 5, 8, 11}; // Pin untuk lampu merah jalur 1, 2, 3, 4
int yellowPins[] = {3, 6, 9, 12}; // Pin untuk lampu kuning jalur 1, 2, 3, 4
int greenPins[] = {4, 7, 10, 13}; // Pin untuk lampu hijau jalur 1, 2, 3, 4
void setup() {
// Set semua pin sebagai OUTPUT
for (int i = 0; i < 4; i++) {
pinMode(redPins[i], OUTPUT);
pinMode(yellowPins[i], OUTPUT);
pinMode(greenPins[i], OUTPUT);
}
}
void loop() {
// Jalankan siklus lampu lalu lintas untuk masing-masing jalur
for (int i = 0; i < 4; i++) {
// Hijau selama 5 detik
setLights(i, "green");
delay(5000);
// Kuning selama 2 detik
setLights(i, "yellow");
delay(2000);
// Merah selama 6 detik
setLights(i, "red");
delay(6000);
}
}
// Fungsi untuk mengatur lampu pada jalur tertentu
void setLights(int jalur, String color) {
// Matikan semua lampu terlebih dahulu
for (int i = 0; i < 4; i++) {
digitalWrite(redPins[i], HIGH); // Semua lampu merah menyala
digitalWrite(yellowPins[i], LOW); // Semua lampu kuning mati
digitalWrite(greenPins[i], LOW); // Semua lampu hijau mati
}
// Atur lampu sesuai jalur dan warna
if (color == "red") {
digitalWrite(redPins[jalur], HIGH); // Nyalakan lampu merah untuk jalur yang aktif
} else if (color == "yellow") {
digitalWrite(redPins[jalur], LOW); // Matikan lampu merah
digitalWrite(yellowPins[jalur], HIGH); // Nyalakan lampu kuning
} else if (color == "green") {
digitalWrite(redPins[jalur], LOW); // Matikan lampu merah
digitalWrite(greenPins[jalur], HIGH); // Nyalakan lampu hijau
}
}