// Definisikan pin untuk setiap lampu lalu lintas
const int merah1 = 2;
const int kuning1 = 4;
const int hijau1 = 16;
const int merah2 = 17;
const int kuning2 = 5;
const int hijau2 = 18;
const int merah3 = 19;
const int kuning3 = 21;
const int hijau3 = 22;
const int merah4 = 23;
const int kuning4 = 25;
const int hijau4 = 26;
// Durasi waktu untuk setiap warna (dalam milisekon)
const long waktuHijau = 3000;
const long waktuKuning = 1000;
const long waktuMerah = 3000;
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);
// Inisialisasi: Lampu hijau menyala untuk persimpangan 1 dan 3, merah untuk 2 dan 4
digitalWrite(hijau1, HIGH);
digitalWrite(merah2, HIGH);
digitalWrite(hijau3, HIGH);
digitalWrite(merah4, HIGH);
}
void loop() {
// Siklus 1: Hijau 1 & 3, Merah 2 & 4
delay(waktuHijau);
digitalWrite(hijau1, LOW);
digitalWrite(kuning1, HIGH);
digitalWrite(hijau3, LOW);
digitalWrite(kuning3, HIGH);
delay(waktuKuning);
digitalWrite(kuning1, LOW);
digitalWrite(merah1, HIGH);
digitalWrite(kuning3, LOW);
digitalWrite(merah3, HIGH);
// Siklus 2: Merah 1 & 3, Hijau 2 & 4
delay(waktuMerah);
digitalWrite(merah2, LOW);
digitalWrite(kuning2, HIGH);
digitalWrite(merah4, LOW);
digitalWrite(kuning4, HIGH);
delay(waktuKuning);
digitalWrite(kuning2, LOW);
digitalWrite(hijau2, HIGH);
digitalWrite(kuning4, LOW);
digitalWrite(hijau4, HIGH);
// Kembali ke awal siklus
delay(waktuHijau);
digitalWrite(hijau2, LOW);
digitalWrite(kuning2, HIGH);
digitalWrite(hijau4, LOW);
digitalWrite(kuning4, HIGH);
delay(waktuKuning);
digitalWrite(kuning2, LOW);
digitalWrite(merah2, HIGH);
digitalWrite(kuning4, LOW);
digitalWrite(merah4, HIGH);
}
Atas
Kanan
Kiri
Bawah