// Definisikan pin untuk masing-masing lampu di perempatan
int merah1 = 1;
int kuning1 = 2;
int hijau1 = 3;
int merah2 = 4;
int kuning2 = 5;
int hijau2 = 6;
int merah3 = 7;
int kuning3 = 8;
int hijau3 = 9;
int merah4 = 12;
int kuning4 = 11;
int hijau4 = 10;
void setup() {
// Set semua pin sebagai output
pinMode(merah1, OUTPUT);
pinMode(kuning1, OUTPUT);
pinMode(hijau1, OUTPUT);
pinMode(merah2, OUTPUT);
pinMode(kuning2, OUTPUT);
pinMode(hijau2, OUTPUT);
pinMode(merah3, OUTPUT);
pinMode(kuning3, OUTPUT);
pinMode(hijau3, OUTPUT);
pinMode(merah4, OUTPUT);
pinMode(kuning4, OUTPUT);
pinMode(hijau4, OUTPUT);
}
void loop() {
// Perempatan 1: merah dan kuning menyala sebelum hijau
digitalWrite(merah1, HIGH);
digitalWrite(kuning1, HIGH);
delay(1000); // Merah dan kuning nyala bersama 1 detik
// Perempatan 1: hijau menyala, merah dan kuning mati
digitalWrite(merah1, LOW);
digitalWrite(kuning1, LOW);
digitalWrite(hijau1, HIGH);
digitalWrite(merah2, HIGH);
digitalWrite(merah3, HIGH);
digitalWrite(merah4, HIGH);
delay(1000); // Hijau menyala 5 detik
// Perempatan 1 kuning menyala singkat sebelum merah kembali
digitalWrite(hijau1, LOW);
digitalWrite(kuning1, HIGH);
delay(500); // Kuning singkat
digitalWrite(kuning1, LOW);
digitalWrite(merah1, HIGH);
// Perempatan 2: merah dan kuning menyala sebelum hijau
digitalWrite(merah2, HIGH);
digitalWrite(kuning2, HIGH);
delay(1000); // Merah dan kuning nyala bersama 1 detik
// Perempatan 2: hijau menyala, merah dan kuning mati
digitalWrite(merah2, LOW);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
digitalWrite(merah3, HIGH);
digitalWrite(merah4, HIGH);
delay(1000); // Hijau menyala 5 detik
// Perempatan 2 kuning menyala singkat sebelum merah kembali
digitalWrite(hijau2, LOW);
digitalWrite(kuning2, HIGH);
delay(500); // Kuning singkat
digitalWrite(kuning2, LOW);
digitalWrite(merah2, HIGH);
// Perempatan 3: merah dan kuning menyala sebelum hijau
digitalWrite(merah3, HIGH);
digitalWrite(kuning3, HIGH);
delay(1000); // Merah dan kuning nyala bersama 1 detik
// Perempatan 3: hijau menyala, merah dan kuning mati
digitalWrite(merah3, LOW);
digitalWrite(kuning3, LOW);
digitalWrite(hijau3, HIGH);
digitalWrite(merah4, HIGH);
delay(1000); // Hijau menyala 5 detik
// Perempatan 3 kuning menyala singkat sebelum merah kembali
digitalWrite(hijau3, LOW);
digitalWrite(kuning3, HIGH);
delay(500); // Kuning singkat
digitalWrite(kuning3, LOW);
digitalWrite(merah3, HIGH);
// Perempatan 4: merah dan kuning menyala sebelum hijau
digitalWrite(merah4, HIGH);
digitalWrite(kuning4, HIGH);
delay(1000); // Merah dan kuning nyala bersama 1 detik
// Perempatan 4: hijau menyala, merah dan kuning mati
digitalWrite(merah4, LOW);
digitalWrite(kuning4, LOW);
digitalWrite(hijau4, HIGH);
delay(1000); // Hijau menyala 5 detik
// Perempatan 4 kuning menyala singkat sebelum merah kembali
digitalWrite(hijau4, LOW);
digitalWrite(kuning4, HIGH);
delay(500); // Kuning singkat
digitalWrite(kuning4, LOW);
digitalWrite(merah4, HIGH);
}