How do you plan to solve it?
/*Paste your code here*/
#define LED_1 8
#define LED_2 9
#define LED_3 10
#define LED_4 11
#define bush_button 2
#define NUMBER_OF_PATTERNS 4
int pattern_counter = 0;
void InterruptHandler(void)
{
delay(150);
pattern_counter++;
if(pattern_counter>=NUMBER_OF_PATTERNS)
{
pattern_counter=0;
}
}
void Pattern_1(void)
{
digitalWrite(LED_1,HIGH);
digitalWrite(LED_2,HIGH);
digitalWrite(LED_3,HIGH);
digitalWrite(LED_4,HIGH);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,LOW);
delay(500);
}
void Pattern_2(void)
{
digitalWrite(LED_1,HIGH);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,HIGH);
digitalWrite(LED_4,LOW);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,HIGH);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,HIGH);
delay(500);
}
void Pattern_3(void)
{
digitalWrite(LED_1,HIGH);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,LOW);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,HIGH);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,LOW);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,HIGH);
digitalWrite(LED_4,LOW);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,HIGH);
delay(500);
}
void Pattern_4(void)
{
digitalWrite(LED_1,HIGH);
digitalWrite(LED_2,LOW);
digitalWrite(LED_3,LOW);
digitalWrite(LED_4,HIGH);
delay(500);
digitalWrite(LED_1,LOW);
digitalWrite(LED_2,HIGH);
digitalWrite(LED_3,HIGH);
digitalWrite(LED_4,LOW);
delay(500);
}
void (*stateMachine[NUMBER_OF_PATTERNS])(void) = {Pattern_1,Pattern_2,Pattern_3,Pattern_4};
void setup() {
Serial.begin(115200);
pinMode(LED_1,OUTPUT);
pinMode(LED_2,OUTPUT);
pinMode(LED_3,OUTPUT);
pinMode(LED_4,OUTPUT);
pinMode(bush_button,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(bush_button), InterruptHandler, FALLING);
}
void loop()
{
// put your main code here, to run repeatedly:
Serial.print("State: ");
Serial.println(pattern_counter);
stateMachine[pattern_counter]();
}
Add a video of the output (know more)
https://youtube.com/shorts/Yg0layxfeQo