#define LED_1 18
#define LED_2 19
#define LED_3 21
#define BUTTON 2

int counter = 0;
int buttonState;
int buttonReleased;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(115200);
  Serial.println("Hello, ESP32!");

  pinMode(LED_1, OUTPUT);
  pinMode(LED_2, OUTPUT);
  pinMode(LED_3, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);

}

void colour_switch()  {
  if(counter > 7){
    counter = 0;
  }
  if(counter == 0)
  {
    digitalWrite(LED_1, LOW);
    digitalWrite(LED_2, LOW);
    digitalWrite(LED_3, LOW);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 1)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(LED_2, LOW);
    digitalWrite(LED_3, LOW);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 2)
  {
    digitalWrite(LED_1, LOW);
    digitalWrite(LED_2, HIGH);
    digitalWrite(LED_3, LOW);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 3)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(LED_2, HIGH);
    digitalWrite(LED_3, LOW);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 4)
  {
    digitalWrite(LED_1, LOW);
    digitalWrite(LED_2, LOW);
    digitalWrite(LED_3, HIGH);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 5)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(LED_2, LOW);
    digitalWrite(LED_3, HIGH);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 6)
  {
    digitalWrite(LED_1, LOW);
    digitalWrite(LED_2, HIGH);
    digitalWrite(LED_3, HIGH);
    delay(500);
    counter = counter + 1;
  }
  else if(counter == 7)
  {
    digitalWrite(LED_1, HIGH);
    digitalWrite(LED_2, HIGH);
    digitalWrite(LED_3, HIGH);
    delay(500);
    counter = counter + 1;
  }
  
}

void loop() {
  
  delay(50);

  buttonState = digitalRead(BUTTON);

  if(buttonState == LOW && buttonReleased == 1){
    colour_switch();
    buttonReleased = 0;
  }
  
  if(buttonState == HIGH){
    buttonReleased = 1;
  }



}
esp:0
esp:2
esp:4
esp:5
esp:12
esp:13
esp:14
esp:15
esp:16
esp:17
esp:18
esp:19
esp:21
esp:22
esp:23
esp:25
esp:26
esp:27
esp:32
esp:33
esp:34
esp:35
esp:3V3
esp:EN
esp:VP
esp:VN
esp:GND.1
esp:D2
esp:D3
esp:CMD
esp:5V
esp:GND.2
esp:TX
esp:RX
esp:GND.3
esp:D1
esp:D0
esp:CLK
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r