Partage
  • Partager sur Facebook
  • Partager sur Twitter

Arduino c++ Condition de variable de type char

Lorsque je test la command "/start" je reçois aucune réponse

Sujet résolu
    30 avril 2019 à 18:31:35

    Bonjour,

    J'ai un problème qui est lorsque je teste mes commandes le code de la condition ne s'exécute pas.

    je mets la bonne commande sauf que la condition ne retourne pas true.

    Fonction:

    void testCommand(char Command) {
      Serial.write(Command);
      if ( Command == '/start') {
        Serial.write(Command);
        Serial.write("Start");
      } else if ( Command == '/chrono') {
        Serial.println("Chrono");
      } else if ( Command == '/buzze') {
        Serial.println("Buzze");
      } else if ( Command == '/win') {
        Serial.println("Win");
      } else if ( Command == '/position') {
        Serial.println("Position");
      }
    }

    Appel de la fonction:

    if (bluetooth.available())
      {
        testCommand(bluetooth.read());
      }

    Le script rentre bien dans la fonction

    Merci beaucoup 

    -
    Edité par SuperChocolatine 30 avril 2019 à 19:09:15

    • Partager sur Facebook
    • Partager sur Twitter
      30 avril 2019 à 19:34:19

      Bonjour,

      lorsque tu utilise Char, cela désigne qu'un seul caractère, or la commande que tu essaie de tester n'est pas un caractère, mais une chaîne de caractère.

      Du coup, le char que tu teste dans testCommand ne sera jamais égal à /start ni même aucune autre commande

      il me semble aussi que bluetooth.read() renvoie le dernier caractère reçu, mais je me trompe peut-être

      • Partager sur Facebook
      • Partager sur Twitter
        30 avril 2019 à 20:06:24

        Gouttfi a écrit:

        Bonjour,

        lorsque tu utilise Char, cela désigne qu'un seul caractère, or la commande que tu essaie de tester n'est pas un caractère, mais une chaîne de caractère.

        Du coup, le char que tu teste dans testCommand ne sera jamais égal à /start ni même aucune autre commande

        il me semble aussi que bluetooth.read() renvoie le dernier caractère reçu, mais je me trompe peut-être

        Merci beaucoup pour votre réponse, savez vous comment le transformer en String ?

        • Partager sur Facebook
        • Partager sur Twitter
          30 avril 2019 à 20:26:47

          Lorsque tu reçois les données de ton module bluetooth, à chaque fois que tu utilise la fonction bluetooth.read() tu récupère uniquement le dernier char, tu dois donc faire une boucle while qui va s'exécuter tant que bluetooth.available().

          Dans cette boucle for tu vas reformer ton mot en concaténant chaque caractère sur une variable que tu aura défini en string.

          Voilà un lien que j'ai utilisé pour un de mes projets perso (cela concerne un module radio 433mHz), c'est le même principe qu'avec ton module bluetooth, la communication se fait via le port série. va voir le code Example - 01 pour comprendre comment est reformée une phrase en traitant caractère par caractère.

          https://howtomechatronics.com/tutorials/arduino/arduino-and-hc-12-long-range-wireless-communication-module/

          -
          Edité par Gouttfi 30 avril 2019 à 20:27:53

          • Partager sur Facebook
          • Partager sur Twitter
            30 avril 2019 à 20:33:15

            Gouttfi a écrit:

            Lorsque tu reçois les données de ton module bluetooth, à chaque fois que tu utilise la fonction bluetooth.read() tu récupère uniquement le dernier char, tu dois donc faire une boucle while qui va s'exécuter tant que bluetooth.available().

            Dans cette boucle for tu vas reformer ton mot en concaténant chaque caractère sur une variable que tu aura défini en string.

            Voilà un lien que j'ai utilisé pour un de mes projets perso (cela concerne un module radio 433mHz), c'est le même principe qu'avec ton module bluetooth, la communication se fait via le port série. va voir le code Example - 01 pour comprendre comment est reformée une phrase en traitant caractère par caractère.

            https://howtomechatronics.com/tutorials/arduino/arduino-and-hc-12-long-range-wireless-communication-module/

            -
            Edité par Gouttfi il y a 2 minutes

            Merci beaucoup, votre aide m'a était grandement utile.

            • Partager sur Facebook
            • Partager sur Twitter

            Arduino c++ Condition de variable de type char

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown