Ajuda com código fonte

Boa noite, estou criando uma aplicação que escreva na serial três palavras começando por "Layer 0", ao apertar um botão ele troca para "Layer 1", apertando novamente troca para "Layer 2" e apertando novamente volta para "Layer 0" e reinicia, escrevi o código abaixo mas só troca para Layer 1 e para, não consigo achar erro, se alguém puder me ajudar agradeço.

int var=0;     
int var1=0;
int var2=0;
int botao=8;
int layer=0;

void setup(){

Serial.begin(9600);
pinMode(botao,INPUT);

}

void loop(){
  
  var=digitalRead(botao); 

  if ((var==HIGH)&&(var1==LOW)&&(var2==LOW)){
    layer=1;
    delay(20);
    var=var1;
  }

  else if ((var==HIGH)&&(var1==HIGH)&&(var2==LOW)){
    layer=2;
    delay(20);
    var=var2;
  }

  else if ((var==HIGH)&&(var1==HIGH)&&(var2==HIGH)){
    layer=0;
    delay(20);
    var1=0;
    var2=0;
  }

  if (layer==0){
    Serial.println("LAYER 0");
  }

  else if (layer==1){
    Serial.println("LAYER 1");
  }

  else if (layer==2){
    Serial.println("LAYER 2");
  }
}

Será que isto assim funciona?

int var=0;     
int var1=0;
int var2=0;
int botao=8;
int layer=0;

void setup(){

Serial.begin(9600);
pinMode(botao,INPUT);

}

void loop(){
 
  var=digitalRead(botao);

  if ((var==HIGH)&&(var1==LOW)&&(var2==LOW)){
    layer=1;
    delay(20);
    //var=var1;
    var1=var;
  }

  else if ((var==HIGH)&&(var1==HIGH)&&(var2==LOW)){
    layer=2;
    delay(20);
    //var=var2;
    var2=var;    
  }

  else if ((var==HIGH)&&(var1==HIGH)&&(var2==HIGH)){
    layer=0;
    delay(20);
    //var1=0;
    //var2=0;
    var1=LOW;
    var2=LOW;
  }

  if (layer==0){
    Serial.println("LAYER 0");
  }

  else if (layer==1){
    Serial.println("LAYER 1");
  }

  else if (layer==2){
    Serial.println("LAYER 2");
  }
}

Luis obrigado pela ajuda funcionou. Que raiva que dá fiquei horas tentando achar o erro e era uma coisa tão simples.