modifier une variable par port serie

bonsoir j'essaye de récupérer une variable que je récupère par le port série
si je j'ecris 1 sa met le message allumer 2arréter autre erreur et que sa enregistre
dans les variable etas

const int maLed = 13; // on met une LED sur la broche 11
int etas=0;
void setup()
{
    pinMode(maLed, OUTPUT); // la LED est une sortie
    digitalWrite(maLed, HIGH); // on éteint la LED
    Serial.begin(9600); // on démarre la voie série
}


void loop()
{
    delay(500); // fait une petite pause
    // on ne fait rien dans la loop
    
    


}


void serialEvent() // déclaration de la fonction d'interruption sur la voie série
{
    // lit toutes les données (vide le buffer de réception)
    while(Serial.read() != -1);


    // puis on allume la LED


    if(Serial.read() == 1){
    Serial.println("allumer");
    }


    if(Serial.read() ==2){
    Serial.println("arreter");
    }
    
}

Vous videz le buffer

    while(Serial.read() != -1);

et espérez ensuite qu'il y ait un '1' ou un '2' en faisant plusieurs lectures (alors que le buffer est vide) ??

pour comparer avec un caractère il faut des simple quote autour du symbole

    if(Serial.read() == '1'){

Modifiez votre fonction pour tester si quelque chose est disponible. si oui le lire dans une variable et comparer ensuite avec '1' ou '2'. Pas besoin de SerialEvent, faites cela directement dans la loop() et virez la pause, 500ms ce n'est pas "une petite pause" même à 9600 bauds (vaut mieux prendre l'habitude de travailler à plus haut débit - au moins 115200 ne pose aucun souci) vous allez recevoir 960 caractères par seconde donc durant votre petite pause potentiellement 480 peuvent arriver pour un buffer qui ne peut en contenir que 64...

Si vous voulez gérer le port série (ou gérer un flux asynchrone genre keypad) vous pouvez jeter un oeil à mon petit tuto sur le sujet