Bonjour,
Bon je me fais des noeuds au cerveau là-dessus donc je viens voir les experts !
J'écris une petite application qui reçoit par Bluetooth les données envoyées par un smartphone lorsqu'on appuie sur un bouton de l'écran du téléphone. Jusque là rien d'extraordinaire puisqu'on trouve plein d'exemples sur le Web pour faire ça.
Jusqu'à présent quand j'appuyais sur le "bouton 1" de mon application smartphone, je faisais émettre "1" au smartphone et je recevais donc "1" sur mon Arduino dans une chaine de caractère nommée "Incoming_value" prévue pour cela, laquelle envoyait donc "1" sur le moniteur série; et tout fonctionne bien.
Maintenant je fais émettre non plus le Numéro du bouton, mais le Nom du bouton; par exemple si le bouton 1 correspond à une action que j'appelle "STOP", je fais émettre "STOP" au téléphone.
Je reçois donc "STOP" sur l'Arduino, mais sur le moniteur série l'Arduino m'envoie successivement "S" puis "T" puis "O" puis "P", alors que je voudrais qu'elle envoie "STOP" comme une chaine de caractères unique.
Voici le code:
Comme la phrase "Appui sur le Button5: STOP" ne s'affiche pas sur le Moniteur série, j'ai l'impression que mon programme ne passe pas dans la portion entre "//DEBUT du test pour Button 5" et "//FIN du test pour Button 5": donc où est mon erreur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 char Incoming_value = 0; // on initialise cette chaine à 0 pour le démarrage void setup() { Serial.begin(9600); // on définit la vitesse à 9600 pinMode(13, OUTPUT); // on connectera la LED de contrôle sur la pin 13 de l'Arduino } void loop() { if(Serial.available() > 0) // quand on appuiera sur un bouton du Smartphone, cette valeur deviendra forcément supérieure à 1 // et ça voudra dire qu'une valeur reçue est disponible { Incoming_value = Serial.read(); // une valeur ayant été reçue, on la transfère dans notre chaine "incoming value" Serial.print("RX recu = "); // essaie pour faire afficher ça sur le Moniteur serie Serial.print(Incoming_value); // Envoie la valeur de Incoming_value reçue sur le Moniteur série Serial.print("\n"); // on fait un retour à la ligne pour que la prochaine valeur s'affiche sur la ligne d'après // DEBUT du test pour Button 5 if(Incoming_value == 'STOP') // si on reçu la valeur "STOP" alors on envoie "STOP" sur le Moniteur série { Serial.print(Incoming_value); // Envoie la valeur de Incoming_value reçue sur le Moniteur série Serial.print("Appui sur Button5: STOP"); // on envoie sur le Moniteur Série qu'on a détecté l'appui sur Button5 } // FIN du test pour Button 5
Partager