// Definisikan pin yang akan digunakan
const int lampu_merah_utama = 2;
const int lampu_kuning_utama = 3;
const int lampu_hijau_utama = 4;
const int lampu_merah_samping = 5;
const int lampu_kuning_samping = 6;
const int lampu_hijau_samping = 7;
// Waktu dalam milidetik (ms) untuk masing-masing fase lampu
const int waktu_merah = 5000;
const int waktu_kuning = 2000;
const int waktu_hijau = 5000;
void setup() {
// Atur pin sebagai output
pinMode(lampu_merah_utama, OUTPUT);
pinMode(lampu_kuning_utama, OUTPUT);
pinMode(lampu_hijau_utama, OUTPUT);
pinMode(lampu_merah_samping, OUTPUT);
pinMode(lampu_kuning_samping, OUTPUT);
pinMode(lampu_hijau_samping, OUTPUT);
// Inisialisasi lampu merah di semua arah
digitalWrite(lampu_merah_utama, HIGH);
digitalWrite(lampu_kuning_utama, LOW);
digitalWrite(lampu_hijau_utama, LOW);
digitalWrite(lampu_merah_samping, HIGH);
digitalWrite(lampu_kuning_samping, LOW);
digitalWrite(lampu_hijau_samping, LOW);
}
void loop() {
// Lampu lalu lintas utama
// Merah
digitalWrite(lampu_merah_utama, HIGH);
digitalWrite(lampu_kuning_utama, LOW);
digitalWrite(lampu_hijau_utama, LOW);
digitalWrite(lampu_merah_samping, LOW);
digitalWrite(lampu_kuning_samping, LOW);
digitalWrite(lampu_hijau_samping, HIGH);
delay(waktu_merah);
// Kuning
digitalWrite(lampu_merah_utama, LOW);
digitalWrite(lampu_kuning_utama, HIGH);
digitalWrite(lampu_hijau_utama, LOW);
delay(waktu_kuning);
// Hijau
digitalWrite(lampu_merah_utama, LOW);
digitalWrite(lampu_kuning_utama, LOW);
digitalWrite(lampu_hijau_utama, HIGH);
digitalWrite(lampu_merah_samping, HIGH);
digitalWrite(lampu_kuning_samping, LOW);
digitalWrite(lampu_hijau_samping, LOW);
delay(waktu_hijau);
// Lampu lalu lintas samping
// Merah
digitalWrite(lampu_merah_samping, HIGH);
digitalWrite(lampu_kuning_samping, LOW);
digitalWrite(lampu_hijau_samping, LOW);
delay(waktu_merah);
// Kuning
digitalWrite(lampu_merah_samping, LOW);
digitalWrite(lampu_kuning_samping, HIGH);
digitalWrite(lampu_hijau_samping, LOW);
delay(waktu_kuning);
// Hijau
digitalWrite(lampu_merah_samping, LOW);
digitalWrite(lampu_kuning_samping, LOW);
digitalWrite(lampu_hijau_samping, HIGH);
delay(waktu_hijau);
}