int merah1=13;
int kuning1=12;
int hijau1=11;
int merah2=10;
int kuning2=9;
int hijau2=8;
int merah3=7;
int kuning3=6;
int hijau3=5;
int merah4=4;
int kuning4=3;
int hijau4=2;
unsigned long previousMillis=0;
const long interval=500;
bool ledState=LOW;
void setup() {
// put your setup code here, to run once:
pinMode(hijau1,OUTPUT);
pinMode(kuning1,OUTPUT);
pinMode(merah1,OUTPUT);
pinMode(hijau2,OUTPUT);
pinMode(kuning2,OUTPUT);
pinMode(merah2,OUTPUT);
pinMode(hijau3,OUTPUT);
pinMode(kuning3,OUTPUT);
pinMode(merah3,OUTPUT);
pinMode(hijau4,OUTPUT);
pinMode(kuning4,OUTPUT);
pinMode(merah4,OUTPUT);
digitalWrite(hijau1,HIGH);
digitalWrite(kuning1,HIGH);
digitalWrite(merah1,HIGH);
digitalWrite(hijau2,HIGH);
digitalWrite(kuning2,HIGH);
digitalWrite(merah2,HIGH);
digitalWrite(hijau3,HIGH);
digitalWrite(kuning3,HIGH);
digitalWrite(merah3,HIGH);
digitalWrite(hijau4,HIGH);
digitalWrite(kuning4,HIGH);
digitalWrite(merah4,HIGH);
delay(2000);
digitalWrite(hijau1,LOW);
digitalWrite(kuning1,LOW);
digitalWrite(merah1,LOW);
digitalWrite(hijau2,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(merah2,LOW);
digitalWrite(hijau3,LOW);
digitalWrite(kuning3,LOW);
digitalWrite(merah3,LOW);
digitalWrite(hijau4,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(merah4,LOW);
}
void loop() {
// put your main code here, to run repeatedly:
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuning1, ledState);
digitalWrite(kuning3, ledState);
}
digitalWrite(kuning2,LOW);
digitalWrite(merah2,HIGH);
digitalWrite(hijau2,LOW);
digitalWrite(merah4,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(hijau4,HIGH);
delayNonBlocking(6000);
digitalWrite(kuning2,HIGH);
digitalWrite(kuning4,HIGH);
delayNonBlocking(2000);
digitalWrite(hijau2,HIGH);
digitalWrite(merah2,LOW);
digitalWrite(kuning2,LOW);
digitalWrite(hijau4,LOW);
digitalWrite(kuning4,LOW);
digitalWrite(merah4,HIGH);
delayNonBlocking(6000);
digitalWrite(kuning2,HIGH);
digitalWrite(kuning4,HIGH);
delayNonBlocking(2000);
}
void delayNonBlocking(unsigned long delayTime) {
unsigned long start = millis();
while (millis() - start < delayTime) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuning1, ledState);
digitalWrite(kuning3, ledState);
}
}
}