// Library yang diperlukan
#include <Arduino.h>
// Konstanta untuk pin LED
const int simpang1_merahPin = 11;
const int simpang1_hijauPin = 12;
const int simpang2_merahPin = 9;
const int simpang2_hijauPin = 10;
const int simpang3_merahPin = 7;
const int simpang3_hijauPin = 8;
// Konstanta untuk pin tombol
const int tombolPin = 2;
// Variabel status lampu
int statusSimpang = 1; // 1: Simpang 1, 2: Simpang 2, 3: Simpang 3
void setup() {
// Mengatur pin LED sebagai OUTPUT
pinMode(simpang1_merahPin, OUTPUT);
pinMode(simpang1_hijauPin, OUTPUT);
pinMode(simpang2_merahPin, OUTPUT);
pinMode(simpang2_hijauPin, OUTPUT);
pinMode(simpang3_merahPin, OUTPUT);
pinMode(simpang3_hijauPin, OUTPUT);
// Mengatur pin tombol sebagai INPUT_PULLUP
pinMode(tombolPin, INPUT_PULLUP);
}
void loop() {
// Baca status tombol
int tombolState = digitalRead(tombolPin);
if (tombolState == LOW) {
// Tombol ditekan, ubah status simpang
statusSimpang = (statusSimpang % 3) + 1;
}
// Matikan semua lampu
digitalWrite(simpang1_merahPin, LOW);
digitalWrite(simpang1_hijauPin, LOW);
digitalWrite(simpang2_merahPin, LOW);
digitalWrite(simpang2_hijauPin, LOW);
digitalWrite(simpang3_merahPin, LOW);
digitalWrite(simpang3_hijauPin, LOW);
// Tampilkan status lampu sesuai dengan statusSimpang
if (statusSimpang == 1) {
// Simpang 1 - Hijau
digitalWrite(simpang1_hijauPin, HIGH);
digitalWrite(simpang2_merahPin, HIGH);
digitalWrite(simpang3_merahPin, HIGH);
delay(2000); // Tahan selama 2 detik
} else if (statusSimpang == 2) {
// Simpang 2 - Hijau
digitalWrite(simpang2_hijauPin, HIGH);
digitalWrite(simpang1_merahPin, HIGH);
digitalWrite(simpang3_merahPin, HIGH);
delay(2000); // Tahan selama 2 detik
} else {
// Simpang 3 - Hijau
digitalWrite(simpang3_hijauPin, HIGH);
digitalWrite(simpang1_merahPin, HIGH);
digitalWrite(simpang2_merahPin, HIGH);
delay(2000); // Tahan selama 2 detik
}
}