//Program Arduino Traffic Light 3 Way
int LampuMerah1 = 10; // M1
int LampuKuning1 = 9; // K1
int LampuHijau1 = 8; // H1
int LampuMerah2 = 7; // M2
int LampuKuning2 = 6; // K2
int LampuHijau2 = 5; // H2
int LampuMerah3 = 4; // M3
int LampuKuning3 = 3; // K3
int LampuHijau3 = 2; // H3
void setup() {
// Inisialisasi pin output
pinMode(LampuMerah1, OUTPUT);
pinMode(LampuKuning1, OUTPUT);
pinMode(LampuHijau1, OUTPUT);
pinMode(LampuMerah2, OUTPUT);
pinMode(LampuKuning2, OUTPUT);
pinMode(LampuHijau2, OUTPUT);
pinMode(LampuMerah3, OUTPUT);
pinMode(LampuKuning3, OUTPUT);
pinMode(LampuHijau3, OUTPUT);
// Mengaktifkan Serial Monitor
Serial.begin(9600);
Serial.println("--- Sistem Lampu Lalu Lintas Dimulai ---");
}
void loop() {
// --- KONDISI 1: Jalur 1 JALAN ---
Serial.println("Jalur 1: HIJAU (Jalan) | Jalur 2 & 3: MERAH");
// H1 + M2 + M3 On
digitalWrite(LampuHijau1, HIGH);
digitalWrite(LampuKuning1, LOW);
digitalWrite(LampuMerah1, LOW);
digitalWrite(LampuHijau2, LOW);
digitalWrite(LampuKuning2, LOW);
digitalWrite(LampuMerah2, HIGH);
digitalWrite(LampuHijau3, LOW);
digitalWrite(LampuKuning3, LOW);
digitalWrite(LampuMerah3, HIGH);
delay(10000); // 10 detik
// --- KONDISI 2: Jalur 1 PERSIAPAN BERHENTI ---
Serial.println("Jalur 1: KUNING (Hati-hati)");
// K1 + M2 + M3 On
digitalWrite(LampuHijau1, LOW);
digitalWrite(LampuKuning1, HIGH);
digitalWrite(LampuMerah1, LOW);
// (Lampu 2 & 3 tetap Merah, tidak perlu diubah, tapi ditulis ulang agar jelas)
digitalWrite(LampuMerah2, HIGH);
digitalWrite(LampuMerah3, HIGH);
delay(3000); // 3 detik
// --- KONDISI 3: Jalur 2 JALAN ---
Serial.println("Jalur 2: HIJAU (Jalan) | Jalur 1 & 3: MERAH");
// M1 + H2 + M3 On
digitalWrite(LampuHijau1, LOW);
digitalWrite(LampuKuning1, LOW);
digitalWrite(LampuMerah1, HIGH);
digitalWrite(LampuHijau2, HIGH);
digitalWrite(LampuKuning2, LOW);
digitalWrite(LampuMerah2, LOW);
digitalWrite(LampuHijau3, LOW);
digitalWrite(LampuKuning3, LOW);
digitalWrite(LampuMerah3, HIGH);
delay(10000); // 10 detik
// --- KONDISI 4: Jalur 2 PERSIAPAN BERHENTI ---
Serial.println("Jalur 2: KUNING (Hati-hati)");
// M1 + K2 + M3 On
digitalWrite(LampuHijau2, LOW);
digitalWrite(LampuKuning2, HIGH);
digitalWrite(LampuMerah2, LOW);
// Pastikan jalur lain merah
digitalWrite(LampuMerah1, HIGH);
digitalWrite(LampuMerah3, HIGH);
delay(3000); // 3 detik
// --- KONDISI 5: Jalur 3 JALAN ---
Serial.println("Jalur 3: HIJAU (Jalan) | Jalur 1 & 2: MERAH");
// M1 + M2 + H3 On
digitalWrite(LampuHijau1, LOW);
digitalWrite(LampuKuning1, LOW);
digitalWrite(LampuMerah1, HIGH);
digitalWrite(LampuHijau2, LOW);
digitalWrite(LampuKuning2, LOW);
digitalWrite(LampuMerah2, HIGH);
digitalWrite(LampuHijau3, HIGH);
digitalWrite(LampuKuning3, LOW);
digitalWrite(LampuMerah3, LOW);
delay(10000); // 10 detik
// --- KONDISI 6: Jalur 3 PERSIAPAN BERHENTI ---
Serial.println("Jalur 3: KUNING (Hati-hati)");
// M1 + M2 + K3 On
digitalWrite(LampuHijau3, LOW);
digitalWrite(LampuKuning3, HIGH);
digitalWrite(LampuMerah3, LOW);
// Pastikan jalur lain merah
digitalWrite(LampuMerah1, HIGH);
digitalWrite(LampuMerah2, HIGH);
delay(3000); // 3 detik
}