[Risolto]Accendere e spegnere tre led in sequenza con pulsante

Ciao a tutti
ho un problemino e spero che mi possiate aiutare a risolvere.

Vorrei fare un circuito che accenda e spenga tre led in sequenza con un pulsante, ovvero:
alimento il circuito si accende il led-1, premo il pulsante si spegne il led-1 si accende il led-2, ripremo il pulsante si spegne il led-2 si accende il led-3, ripremo il pulsante si spegne il led-3 si accende il led-1 e così via.

Quello che sono riuscito a fare è:
alimento il circuito e si accendono il led-1 e il led-3, premo il pulsante si spengono i due led e si accende il led-2 ecc…

Questo è il codice:

const int LED1[]={ 9, 10, 11 };
const int P1=2;
const int debaunceDelay=50;
int pinCount=3;
int Accendi = 0; 

void setup() {
    for (int thisPin = 0; thisPin < pinCount; thisPin++)  {
     pinMode(LED1[thisPin], OUTPUT);      
   }
  pinMode(P1, INPUT);
}

void loop() {
  
  int valore = digitalRead(P1);
  
  for (int thisPin = 0; thisPin < pinCount; thisPin++) {

  if (valore == LOW) 
  {     
    if (Accendi == 0)
    {
      Accendi=1; 
      digitalWrite (LED1[thisPin], HIGH);    
    }
    else 
    {
      Accendi=0;
      digitalWrite (LED1[thisPin], LOW);
    }  
  } 
  }
  while (digitalRead(P1) == LOW)
  {
    delay(10);
  }
  
  delay(debaunceDelay);
  
}

Il pulsante è collegato ai 5VCC di Arduino e al pin 2. Tra il pin 2 e la massa c’è una resistenza di 10K?.

Grazie

La cosa migliore è avere una variabile di "stato" da 1 a 3. A seconda dello stato accendi in maniera opportuna i led.

byte stato=1;
...
switch(stato)
{ case 1: 
    digitalWrite(LED1[0],HIGH);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],LOW);
    break;
  case 2: 
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],HIGH);
    digitalWrite(LED1[2],LOW);
    break;
  case 3: 
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],HIGH);
    break;
}

stato partirà da uno e la pressione del pulsante deve solo a questo punto alterare il valore della variabile stato.
Nello switch (che è una specie di if) accendi/spegni i led a seconda dello stato

P.S. dove metti "const int" per i pin, puoi anche mettere "const byte" occupa meno memoria

const byte LED1[]={ 9, 10, 11 };

Grande!
Grazie mille ho risolto in questo modo:

const byte LED1[]={ 9, 10, 11 };
const int P1=2;
const int debaunceDelay=100;
byte stato=1;  


void setup() {
  pinMode(LED1[0], OUTPUT);
  pinMode(LED1[1], OUTPUT);
  pinMode(LED1[2], OUTPUT);      
  pinMode(P1, INPUT);
}

void loop() {

  if(digitalRead(P1))

  {

    if(stato<3) stato=stato+1;

    else stato=1;

  }
     
switch(stato)
{ case 1: 
    digitalWrite(LED1[0],HIGH);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],LOW);
    break;
  case 2: 
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],HIGH);
    digitalWrite(LED1[2],LOW);
    break;
  case 3: 
    digitalWrite(LED1[0],LOW);
    digitalWrite(LED1[1],LOW);
    digitalWrite(LED1[2],HIGH);
    break;
}  
 
  while (digitalRead(P1) == LOW)
  {
    delay(10);
  }

  delay(debaunceDelay);
 
}