Bonjour à tous,
Je cherche à convertir une lettre entrée dans la fenêtre série par l'utilisateur en un chiffre, grâce à la table de conversion ASCII. Rien de bien compliqué, mais... le résultat renvoyé est étrange. Cela me renvoie d'abord le bon résultat, puis un autre, erroné, sans que je le demande. Voici le bout de code en question:
void setup()
{
Serial.begin(9600);
}
void loop()
{
// variable contenant le caractère à lire
char carlu = 0;
// variable contenant le nombre de caractère disponibles dans le buffer
int cardispo = 0;
cardispo = Serial.available();
while(cardispo > 0) // tant qu'il y a des caractères à lire
{
carlu = Serial.read(); // on lit le caractère
Serial.println(carlu-'a'); // puis on le convertit en chiffre
cardispo = Serial.available(); // on relit le nombre de caractères dispo
}
// fin du programme
}
Le résultat si je rentre par exemple la lettre a : 0-87.
D'où sort ce -87?
J'ai la pénible intuition que la réponse est très simple, mais je ne l'ai pas....
Merci pour votre aide.