#define buttonPin 7
#define ledPin1 1
#define ledPin2 2
#define ledPin3 3
#define ledPin4 4
#define ledPin5 5
#define filterTombol1 100
#define filterTombol2 1000
bool ditekan = 0;
unsigned long waktuAwal, waktuJeda = 250;
int ubah = 0;
int modeState = 0;
int oldState = 0;
int buttonState = 0;
int counter = 0;
bool stateBlink = LOW;
void setup() {
pinMode(ledPin1,OUTPUT);pinMode(ledPin1,LOW);
pinMode(ledPin2,OUTPUT);pinMode(ledPin2,LOW);
pinMode(ledPin3,OUTPUT);pinMode(ledPin3,LOW);
pinMode(ledPin4,OUTPUT);pinMode(ledPin4,LOW);
pinMode(ledPin5,OUTPUT);pinMode(ledPin5,LOW);
pinMode(buttonPin,INPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH){
counter++;
if(counter>filterTombol2){
modeState = 4;
}
delay(1);
}
else{
if(counter>filterTombol1 && counter<filterTombol2){
if(oldState==0)modeState = 1;
else if(oldState==1)modeState = 2;
else if(oldState==2)modeState = 3;
else modeState = 0;
}
counter = 0;
}
if(modeState == 4){
if(millis()>waktuAwal+waktuJeda){
digitalWrite(ledPin1,LOW);digitalWrite(ledPin2,LOW);digitalWrite(ledPin3,LOW);
digitalWrite(ledPin4,stateBlink);
digitalWrite(ledPin5,!stateBlink);
stateBlink=!stateBlink;
waktuAwal = millis();
}
}
else{
digitalWrite(ledPin4,LOW);digitalWrite(ledPin5,LOW);
switch(modeState){
case 0 : digitalWrite(ledPin1,LOW);digitalWrite(ledPin2,LOW);digitalWrite(ledPin3,LOW);break;
case 1 : digitalWrite(ledPin1,HIGH);digitalWrite(ledPin2,LOW);digitalWrite(ledPin3,LOW);break;
case 2 : digitalWrite(ledPin1,LOW);digitalWrite(ledPin2,HIGH);digitalWrite(ledPin3,LOW);break;
case 3 : digitalWrite(ledPin1,LOW);digitalWrite(ledPin2,LOW);digitalWrite(ledPin3,HIGH);break;
}
}
oldState = modeState;
}