Bonjour à toutes et à tous !
Je suis nouvelle sur le forum, j’espère que je poste au bon endroit…
Débutante sur Arduino, je suis le TP mais je bloque depuis hier et plusieurs heures d’essais sur la fonction strcmp
. Pour essayer de la comprendre, j’ai tenté, en m’aidant des indications du TP, un petit code (vois ci-dessous), mais la voie série me renvoie systématiquement "les chaînes sont différentes". J’ai essayé en tapant "requin\0" plutôt que "requin", idem. L’astuce consistant à choisir l’option "Pas de fin de ligne" ne fonctionne pas. Je pense que c’est au moins en partie lié avec le fait que Serial.read()
lit caractère par caractère, car si je met un caractère unique pour motRecu
tout fonctionne normalement. Ou bien je n’ai pas compris l’histoire du caractère supplémentaire et comment l’implémenter… Bref, je dois manquer quelque chose mais n’arrive pas à déterminer quoi.
Voici mon code (j’ai rajouté des Serial.println(motRecu)
pour tenter de comprendre d’où vient le pb, ils ne sont pas obligatoires) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | void setup() { Serial.begin(9600); } void loop() { } void serialEvent() { while(Serial.available() > 0) { char motRecu[20] = {Serial.read()}; if(strcmp(motRecu, "requin") == 0) { Serial.println(motRecu); Serial.println("Les chaines sont identiques"); } else { Serial.println(motRecu); Serial.println("Les chaines sont différentes"); } } } |
Pour approfondir le sujet, j’ai tenté de travailler sur le code fournit dans la correction, mais dans ce cas la voie série ne m’affiche rien du tout. Du coup j’ai carrément copié-collé le code complet pour vérifier et idem, l’affichage reste désespérément vierge, contrairement à ce qu’on voit dans la vidéo. En revanche les leds fonctionnent comme attendu quand on rentre un des mots requis ou qu’on appuie sur les boutons.
Toute aide serait la bienvenue, merci d’avance pour votre aide. J’en profite aussi pour souhaiter une bonne année à toutes et tous et remercier Eskimon et Olyte pour leur excellent tutoriel !
PS : Question facultative : la voie série a chez moi du mal à gérer les caractères spéciaux comme les accents. Faut-il rajouter à mes codes quelque chose comme une indication de l’encodage à utiliser ?