// Pengaturan Traffic Light Simpang 5
// Jalur 1 & 2 adalah jalan nasional padat kendaraan
// Jalur 3 adalah jalan desa jarang kendaraan
// Jalur 4 & 5 adalah jalan kabupaten padat kendaraan
// Traffic 1 & 3
#define M13 1
#define K13 2
#define H13 3
// Traffic 2
#define M2 5
#define K2 6
#define H2 7
// Traffic 4 & 5
#define M45 0
#define K45 4
#define H45 8
void setup() {
// Setup pin mode untuk setiap traffic light
pinMode(M13, OUTPUT);
pinMode(K13, OUTPUT);
pinMode(H13, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(K2, OUTPUT);
pinMode(H2, OUTPUT);
pinMode(M45, OUTPUT);
pinMode(K45, OUTPUT);
pinMode(H45, OUTPUT);
}
void loop() {
// Siklus pertama: Traffic 1 & 3 hijau, Traffic 2 merah, Traffic 4 & 5 merah
digitalWrite(M13, 0);
digitalWrite(K13, 0);
digitalWrite(H13, 1);
digitalWrite(M2, 1);
digitalWrite(K2, 0);
digitalWrite(H2, 0);
digitalWrite(M45, 1);
digitalWrite(K45, 0);
digitalWrite(H45, 0);
delay(6000);
for (int i = 0; i < 10; i++) {
digitalWrite(K13, 1);
digitalWrite(K2, 1);
delay(200);
digitalWrite(K13, 0);
digitalWrite(K2, 0);
delay(200);
}
// Siklus kedua: Traffic 1 & 3 merah, Traffic 2 hijau, Traffic 4 & 5 merah
digitalWrite(M13, 1);
digitalWrite(K13, 0);
digitalWrite(H13, 0);
digitalWrite(M2, 0);
digitalWrite(K2, 0);
digitalWrite(H2, 1);
digitalWrite(M45, 1);
digitalWrite(K45, 0);
digitalWrite(H45, 0);
delay(6000);
for (int i = 0; i < 10; i++) {
digitalWrite(K2, 1);
digitalWrite(K45, 1);
delay(200);
digitalWrite(K2, 0);
digitalWrite(K45, 0);
delay(200);
}
// Siklus ketiga: Traffic 1 & 3 merah, Traffic 2 merah, Traffic 4 & 5 hijau
digitalWrite(M13, 1);
digitalWrite(K13, 0);
digitalWrite(H13, 0);
digitalWrite(M2, 1);
digitalWrite(K2, 0);
digitalWrite(H2, 0);
digitalWrite(M45, 0);
digitalWrite(K45, 0);
digitalWrite(H45, 1);
delay(6000);
for (int i = 0; i < 10; i++) {
digitalWrite(K45, 1);
digitalWrite(K13, 1);
delay(200);
digitalWrite(K45, 0);
digitalWrite(K13, 0);
delay(200);
}
}