int merahU=13;
int kuningU=12;
int hijauU=11;
int hijauT=10;
int kuningT=9;
int merahT=8;
int hijauS=7;
int kuningS=6;
int merahS=5;
int merahB=4;
int kuningB=3;
int hijauB=2;
unsigned long previousMillis=0;
const long interval=500;
bool ledState=LOW;
void setup() {
// put your setup code here, to run once:
pinMode(hijauU,OUTPUT);
pinMode(kuningU,OUTPUT);
pinMode(merahU,OUTPUT);
pinMode(hijauT,OUTPUT);
pinMode(kuningT,OUTPUT);
pinMode(merahT,OUTPUT);
pinMode(hijauS,OUTPUT);
pinMode(kuningS,OUTPUT);
pinMode(merahS,OUTPUT);
pinMode(hijauB,OUTPUT);
pinMode(kuningB,OUTPUT);
pinMode(merahB,OUTPUT);
digitalWrite(hijauU, HIGH);
digitalWrite(kuningU,HIGH);
digitalWrite(merahU,HIGH);
digitalWrite(hijauT,HIGH);
digitalWrite(kuningT,HIGH);
digitalWrite(merahT,HIGH);
digitalWrite(hijauS,HIGH);
digitalWrite(kuningS,HIGH);
digitalWrite(merahS,HIGH);
digitalWrite(hijauB,HIGH);
digitalWrite(kuningB,HIGH);
digitalWrite(merahB,HIGH);
delay(2000);
digitalWrite(hijauU,LOW);
digitalWrite(kuningU,LOW);
digitalWrite(merahU,LOW);
digitalWrite(hijauT,LOW);
digitalWrite(kuningT,LOW);
digitalWrite(merahT,LOW);
digitalWrite(hijauS,LOW);
digitalWrite(kuningS,LOW);
digitalWrite(merahS,LOW);
digitalWrite(hijauB,LOW);
digitalWrite(kuningB,LOW);
digitalWrite(merahB,LOW);
}
void loop() {
// Handle kuningT dan kuningB blinking
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuningU, ledState);
digitalWrite(kuningS, ledState);
}
digitalWrite(merahB, LOW);
digitalWrite(hijauT,LOW);
digitalWrite(kuningT, LOW);
digitalWrite(kuningB, LOW);
digitalWrite(hijauB, HIGH);
digitalWrite(merahT, HIGH);
delayNonBlocking(6000);
digitalWrite(kuningB, HIGH);
digitalWrite(kuningT, HIGH);
delayNonBlocking(2000);
digitalWrite(hijauB, LOW);
digitalWrite(merahT, LOW);
digitalWrite(kuningB, LOW);
digitalWrite(kuningT, LOW);
digitalWrite(hijauT, HIGH);
digitalWrite(merahB, HIGH);
delayNonBlocking(6000);
digitalWrite(kuningB, HIGH);
digitalWrite(kuningT, HIGH);
delayNonBlocking(2000);
}
// Non-blocking delay function
void delayNonBlocking(unsigned long delayTime) {
unsigned long start = millis();
while (millis() - start < delayTime) {
// Handle kuningT dan kuningB blinking during non-blocking delay
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(kuningU, ledState);
digitalWrite(kuningS, ledState);
}
}
}