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
}