I have a program with two outputs(LEDs) and two inputs(buttons). If button1 gets High no matter how long, Led1 blinks 2 times and stops. If button2 is HIGH then led2 gets HIGH too. Now I want to make those two functions run in same time and use condition where led1 can blink only if led2 is HIGH, but they won't run in same time. Why? is there a way to make it?
Here is my code:
int led1 = 6;
int led2 = 9;
int button1 = 3;
int button2 = 8;
int buttonState = 0;
int lastButtonState =0;
int flashState = false;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
if(digitalRead(button2) == HIGH){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
buttonState = digitalRead(button1);
if(buttonState != lastButtonState)
{
if(buttonState == HIGH)
{
flashState = true;
}
}
lastButtonState = buttonState;
if(flashState == true){
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led1, LOW);
delay(500);
digitalWrite(led1, HIGH);
delay(500);
digitalWrite(led1, LOW);
delay(500);
flashState = false;
}else{
digitalWrite(led1, LOW);
}
}