All submissions

Solving Approach

How do you plan to solve it?

 
 

 

 

 

Code

/*Paste your code here*/
int ledPins[] = {7, 6, 5, 4};

int buttonPin = 2;

int pattern = 1;
int lastButtonState = HIGH;
unsigned long lastDebounce = 0;
unsigned long debounceDelay = 50;

void setup() {

  for (int i = 0; i < 4; i++) {
    pinMode(ledPins[i], OUTPUT);
  }

  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  int reading = digitalRead(buttonPin);

  if (reading == LOW && lastButtonState == HIGH && (millis() - lastDebounce) > debounceDelay) {
    pattern++;
    if (pattern > 5) pattern = 1;
    lastDebounce = millis();
  }

  lastButtonState = reading;

  switch (pattern) {
    case 1: pattern1(); break;
    case 2: pattern2(); break;
    case 3: pattern3(); break;
    case 4: pattern4(); break;
    case 5: pattern5(); break;
  }
}

void pattern1() {
  setLeds(0,0,0,0);
  delay(500);
  setLeds(1,1,1,1);
  delay(500);
}

void pattern2() {
  setLeds(0,1,0,1);
  delay(500);
  setLeds(1,0,1,0);
  delay(500);
}

void pattern3() {
  setLeds(1,0,0,0);
  delay(500);
  setLeds(0,1,0,0);
  delay(500);
  setLeds(0,0,1,0);
  delay(500);
  setLeds(0,0,0,1);
  delay(500);
}

void pattern4() {
  setLeds(0,0,1,1);
  delay(500);
  setLeds(1,1,0,0);
  delay(500);
}

void pattern5() {
  setLeds(1,0,0,1);
  delay(500);
  setLeds(0,1,1,0);
  delay(500);
}

void setLeds(int a, int b, int c, int d) {
  digitalWrite(ledPins[0], a);
  digitalWrite(ledPins[1], b);
  digitalWrite(ledPins[2], c);
  digitalWrite(ledPins[3], d);
}

 

 

 

Output

Video

Add a video of the output (know more)

 

 

 

Submit Your Solution

Note: Once submitted, your solution goes public, helping others learn from your approach!