// Definisi pin untuk LED
const int red1 = 13; // Lampu Merah Persimpangan 1
const int yellow1 = 12; // Lampu Kuning Persimpangan 1
const int green1 = 14; // Lampu Hijau Persimpangan 1
const int red2 = 27; // Lampu Merah Persimpangan 2
const int yellow2 = 26; // Lampu Kuning Persimpangan 2
const int green2 = 25; // Lampu Hijau Persimpangan 2
const int red3 = 22; // Lampu Merah Persimpangan 3
const int yellow3 = 19; // Lampu Kuning Persimpangan 3
const int green3 = 23; // Lampu Hijau Persimpangan 3
const int red4 = 16; // Lampu Merah Persimpangan 4
const int yellow4 = 17; // Lampu Kuning Persimpangan 4
const int green4 = 18; // Lampu Hijau Persimpangan 4
// Waktu untuk setiap lampu (dalam milidetik)
const int redTime = 10000; // 10 detik untuk merah
const int yellowTime = 2000; // 2 detik untuk kuning
const int greenTime = 8000; // 8 detik untuk hijau
void setup() {
// Mengatur 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() {
// Persimpangan 1 Hijau, lainnya Merah
digitalWrite(green1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(red4, HIGH);
delay(greenTime);
// Persimpangan 1 Kuning
digitalWrite(green1, LOW);
digitalWrite(yellow1, HIGH);
delay(yellowTime);
// Semua Merah
digitalWrite(yellow1, LOW);
digitalWrite(red1, HIGH);
delay(2000);
// Persimpangan 2 Hijau, lainnya Merah
digitalWrite(green2, HIGH);
digitalWrite(red1, HIGH);
digitalWrite(red3, HIGH);
digitalWrite(red4, HIGH);
delay(greenTime);
// Persimpangan 2 Kuning
digitalWrite(green2, LOW);
digitalWrite(yellow2, HIGH);
delay(yellowTime);
// Semua Merah
digitalWrite(yellow2, LOW);
digitalWrite(red2, HIGH);
delay(2000);
// Persimpangan 3 Hijau, lainnya Merah
digitalWrite(green3, HIGH);
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red4, HIGH);
delay(greenTime);
// Persimpangan 3 Kuning
digitalWrite(green3, LOW);
digitalWrite(yellow3, HIGH);
delay(yellowTime);
// Semua Merah
digitalWrite(yellow3, LOW);
digitalWrite(red3, HIGH);
delay(2000);
// Persimpangan 4 Hijau, lainnya Merah
digitalWrite(green4, HIGH);
digitalWrite(red1, HIGH);
digitalWrite(red2, HIGH);
digitalWrite(red3, HIGH);
delay(greenTime);
// Persimpangan 4 Kuning
digitalWrite(green4, LOW);
digitalWrite(yellow4, HIGH);
delay(yellowTime);
// Semua Merah
digitalWrite(yellow4, LOW);
digitalWrite(red4, HIGH);
delay(2000);
}