// Deklarasi pin untuk setiap LED
int red1 = 2, yellow1 = 3, green1 = 4; // Arah 1
int red2 = 5, yellow2 = 6, green2 = 7; // Arah 2
int red3 = 8, yellow3 = 9, green3 = 10; // Arah 3
int red4 = 11, yellow4 = 12, green4 = 13; // Arah 4
void setup() {
// Mengatur semua pin sebagai output
pinMode(red1, OUTPUT);
pinMode(yellow1, OUTPUT);
pinMode(green1, OUTPUT);
pinMode(red2, OUTPUT);
pinMode(yellow2, OUTPUT);
pinMode(green2, OUTPUT);
pinMode(red3, OUTPUT);
pinMode(yellow3, OUTPUT);
pinMode(green3, OUTPUT);
pinMode(red4, OUTPUT);
pinMode(yellow4, OUTPUT);
pinMode(green4, OUTPUT);
}
void loop() {
// Urutan Lampu Lalu Lintas untuk Arah 1
lampuLaluLintas(green1, yellow1, red1, red2, red3, red4);
// Urutan Lampu Lalu Lintas untuk Arah 2
lampuLaluLintas(green2, yellow2, red2, red1, red3, red4);
// Urutan Lampu Lalu Lintas untuk Arah 3
lampuLaluLintas(green3, yellow3, red3, red1, red2, red4);
// Urutan Lampu Lalu Lintas untuk Arah 4
lampuLaluLintas(green4, yellow4, red4, red1, red2, red3);
}
// Fungsi untuk mengontrol lampu lalu lintas
void lampuLaluLintas(int green, int yellow, int red, int redOther1, int redOther2, int redOther3) {
// Nyalakan lampu hijau untuk jalur yang aktif, dan lampu merah untuk jalur lainnya
digitalWrite(green, HIGH); // Hijau menyala
digitalWrite(redOther1, HIGH);
digitalWrite(redOther2, HIGH);
digitalWrite(redOther3, HIGH);
delay(5000); // Hijau menyala selama 5 detik
// Ganti ke kuning
digitalWrite(green, LOW);
digitalWrite(yellow, HIGH); // Kuning menyala
delay(2000); // Kuning menyala selama 2 detik
digitalWrite(yellow, LOW);
// Ganti ke merah
digitalWrite(red, HIGH); // Merah menyala
delay(5000); // Merah menyala selama 5 detik
digitalWrite(redOther1, LOW);
digitalWrite(redOther2, LOW);
digitalWrite(redOther3, LOW);
}