Go Down

Topic: Besoin D'aide !! Reconnaissance Vocale + Servomoteur (Read 582 times) previous topic - next topic

Zamorak

Bonjour j'ai crée une application androïd grâce a MIT app inventor qui me permet d'envoyer a une carte arduino un 1 ou un 0 en fonction de ce que je dis sauf que le programme arduino devrait me permettre en recevant un 1 ou un 0 de tourner le servomoteur de 100° ou de le remettre a sa position initiale mais cela ne marche pas :/  si quelqu'un peut m'aider voila le programme :

#include <Servo.h>
#include <SoftwareSerial.h>

Servo SM;
int positionSM = 0;
SoftwareSerial HC06(11,10); 
String messageRecu;
#define pos1 0
#define pos2 100

void setup() {
  SM.attach(9);
  SM.write(positionSM);
  Serial.begin(9600);
  HC06.begin(9600);

}

void loop() {
  while(HC06.available())
  {
    delay(3);
    char c = HC06.read();
    messageRecu += c;
  }
    Serial.println(messageRecu);
    if (messageRecu = "1")
       { SM.write(positionSM = pos2); }
     
 
    if (messageRecu = "0")
        { SM.write(positionSM = pos1); }
  }
     

hazerty565

#1
Mar 11, 2017, 05:02 pm Last Edit: Mar 11, 2017, 05:28 pm by hazerty565
    tu fais un Serial.println(messageRecu);

donc dans la console il doit t'afficher quelque chose...
il t'affiche quoi?
0 ou 1? ou autre chose ou rien?
dans un premier temps, valide ce que tu reçois de ton recepteur bluetooth, si c'est correct...
ensuite, si tu as quelque chose de correct, fait le traitement prevu.
si tu ne reçois rien de ton module bluetooth, ça sert a rien de faire le traitement, par la suite..

Ensuite, as tu deja fait tourner ton servo, sans bluetooth...

il y a une erreur dans ton code dans la deuxieme partie

if (messageRecu == "1") // pour tester une egalité c'est un double egal... idem pour =="0"
  { SM.write(positionSM = pos2); }
 

ca ne change rien pour le traitement, mais j'aurais utilisé un switch/case, c'est plus facile.. mais chacun ses choix.

Zamorak


hazerty565

#3
Mar 11, 2017, 05:27 pm Last Edit: Mar 11, 2017, 05:35 pm by hazerty565
si il y a que 0, c'est qu'il y a un soucis dans la reception de ton bluetooth.

ce qu'il faut faire, c'est de valider les deux partie dans 2 programmes differents.

l'un pour faire tourner ton servo, et l'autre pour la reception bluetooth et quand les deux sont OK, tu les regroupes.

Zamorak

Un exemple pour tester la reception bluetooth ? :D

infobarquee

AUCUNE AIDE PAR MP

Go Up