Problema na Serial

Aqui está um código muito simples…

void setup() {

  
Serial.begin(9600);
pinMode(A0, OUTPUT);

}


void loop() {

  char c = Serial.read();
  
  
  if(Serial.read() == '1'){
  
 digitalWrite(A0, HIGH);
  
}
  

if(Serial.read() == '2'){
  
  
 digitalWrite(A0, LOW);
  
  
}

}

Ao envia-lo para o Arduino, abro meu Serial Monitor, e ao inserir o caracter 1, nada é feito, para funcionar tenho que inserir vários 11111 para A0 acionar, alguém sabe como proceder?

Se apagares esta linha:

char c = Serial.read();

Isso deixa de acontecer tantas vezes, mas ainda vai acontecer na mesma por causa do if a testar se o caracter é 2.

Não quererás algo assim:

void setup() {

  
Serial.begin(9600);
pinMode(A0, OUTPUT);

}


void loop() {

if (Serial.available() >0) { //existe algo para ler...
  char c = Serial.read();  //lê para aqui...
  if(c == '1'){                  // testa o que foi lido...
     digitalWrite(A0, HIGH);
  }
  
  if(Serial.read() == '2'){   // se não era um 1, será um 2? 
     digitalWrite(A0, LOW);
  }
}
}

Sempre que fazes read, tiras um valor do array. Se fizeres read naquele if que testa o 2 e tiveres escrito um 1, esse 1 é ignorado.