#define lampu_M 21
#define lampu_K 19
#define lampu_H 22
#define b_pejalan_kaki 14
unsigned long prevMillis = 0;
int state = 0;
int M_DELAY = 5000;
int K_DELAY = 2000;
int H_DELAY = 3000;
bool pejalan_kaki = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(lampu_M, OUTPUT);
pinMode(lampu_K, OUTPUT);
pinMode(lampu_H, OUTPUT);
pinMode(b_pejalan_kaki, INPUT_PULLUP);
}
void loop() {
unsigned long currentMillis = millis();
switch(state){
case 0:
digitalWrite(lampu_M, HIGH);
digitalWrite(lampu_K, LOW);
digitalWrite(lampu_H, LOW);
// delay(10000);
// state = 1;
if (currentMillis - prevMillis >= M_DELAY) {
state = 1; // berpindah ke kondisi selanjutnya
M_DELAY = 5000;
prevMillis = currentMillis; // simpan waktu saat ini
}
break;
case 1:
digitalWrite(lampu_M, LOW);
digitalWrite(lampu_K, HIGH);
digitalWrite(lampu_H, LOW);
if (currentMillis - prevMillis >= K_DELAY) {
state = 2; // berpindah ke kondisi selanjutnya
prevMillis = currentMillis; // simpan waktu saat ini
}
break;
case 2:
digitalWrite(lampu_M, LOW);
digitalWrite(lampu_K, LOW);
digitalWrite(lampu_H, HIGH);
if (currentMillis - prevMillis >= H_DELAY) {
state = 0; // berpindah ke kondisi selanjutnya
prevMillis = currentMillis; // simpan waktu saat ini
}
break;
}
if(digitalRead(b_pejalan_kaki) == LOW ){
M_DELAY = 7000;
Serial.println(M_DELAY);
}
}