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(HIJAU2, LOW);
digitalWrite(MERAH4, LOW);
digitalWrite(KUNING2, LOW);
digitalWrite(MERAH2, HIGH);
digitalWrite(KUNING4, LOW);
digitalWrite(HIJAU4, HIGH);
delayNonBlocking(6000);
digitalWrite(KUNING2, HIGH);
digitalWrite(KUNING4, HIGH);
delayNonBlocking(2000);
digitalWrite(HIJAU4,LOW);
digitalWrite(MERAH2, LOW);
digitalWrite(HIJAU2, HIGH);
digitalWrite(KUNING2, 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);
}
}
}