Envoyer paramètre via le port serie

Bonjour,

Dans le but de faire un compteur, j'ai besoin d'afficher certaines valeurs et d'en modifier certaines.

Voici les commandes actuelles :

a -> Affiche la capacité actuelle
b -> Affiche la valeur du compteur
c -> Fait une remise à zéro du compteur
s9999 -> change la valeur de la capacité
t9999 -> change la valeur du compteur

Mon problème vient des commandes pour changer les valeurs, certaines fois ça fonctionne correctement et d'autres non, dans certains cas rien ne va se passer, d'autres fois la valeur va être de 9 ou 99.

Je ne suis pas un pro du dev et je découvre arduino. Je doit louper quelquechose mais je n'arrive pas à voir quoi pour l'instant.

char carlu = 0;                             //variable contenant le caractère à lire
  int cardispo = 0;                           //variable contenant le nombre de caractère disponibles dans le buffer

  cardispo = Serial.available();

  while (cardispo > 0)                        //tant qu'il y a des caractères à lire
  {
    carlu = Serial.read();                    //on lit le caractère
    switch (carlu)
    {
      case 'a':                               //Demande la valeur de la capacité
        Serial.print("Capacite : ");
        Serial.println(capacity);
        break;


      case 'b' :                              //Demande la valeur du compteur
        Serial.print("Compteur : ");
        Serial.println(counter);
        break;


      case 'c' :                              //Remise à zéro du compteur
        Serial.println("RAZ Compteur OK");
        counter = 0;
        break;


      case 's' :      //Changement de la valeur de la capacité
        while (Serial.available())
        {
          if (Serial.available() > 0)
          {
            variable = Serial.read();
            readString += variable;
          }
        }

        if (readString.length() > 0)
        {
          capacity = readString.toInt();    //Conversion de la chaine en Int
          EEPROM.write(0, capacity);        //Enregistrement de ma nouvelle valeur dans l'EEPROM
          Serial.print("Capacity set to : ");
          Serial.println(capacity);
          readString = "";                 //Vidage de la chaîne
        }
        break;


      case 't':                               //Changement de la valeur du compteur
        while (Serial.available())
        {
          if (Serial.available() > 0)
          {
            variable = Serial.read();
            readString += variable;
          }
        }

        if (readString.length() > 0)
        {
          counter = readString.toInt();    //Conversion de la chaine en Int
          Serial.print("Counter set to : ");
          Serial.println(counter);
          readString = "";                 //Vidage de la chaîne
        }
        break;

    }
    //FIN DU SWITCH
    cardispo = Serial.available();           //on relit le nombre de caractères dispo
  }

Merci, pour les informations.

Du coup j'ai également rajouter des delay(3) après les while et ça fonctionne mieux.
Je vais rajouter un caractère de fin pour que ce soit plus sûr