Partage
  • Partager sur Facebook
  • Partager sur Twitter

Au secours ,mon script plante !

Arduino

Sujet résolu
    7 août 2012 à 19:05:04

    Bonjour ,
    Voici mon code , il ne marche pas que faire ?
    int etat = 0; //stock l'état de la situation (vert = 0, orange = 1, rouge = 2)
    char mot[20]; //le mot lu sur la liaison série
    
    void setup()          //fonction d'initialisation de la carte
    {
                          Serial.begin(9600);
    }
    
    void loop()           //fonction principale, elle se répète (s’exécute) à l'infini
    {
        if(Serial.available())
    	{
    		//alors on va lire le contenu de la réception
    		lireVoieSerie();
                    //on entre dans une variable la valeur retournée par la fonction comparerMot()
    		etat = comparerMot(mot);
                
    	}                  
    }
    //lit un mot sur la liaison série (lit jusqu'à rencontrer le caractère '\n')
    void lireVoieSerie(void)
    {
    	int i = 0; //variable locale pour l'incrémentation des données du tableau
    
    	//on lit les caractères tant qu'il y en a
    	//OU si jamais le nombre de caractères lus atteint 19 (limite du tableau stockant le mot - 1 caractère)
    	while(Serial.available() > 0 && i <= 19)
    	{
                mot[i] = Serial.read(); //on enregistre le caractère lu
                delay(10); //laisse un peu de temps entre chaque accès a la mémoire
                i++; //on passe à l'indice suivant
    	}
            mot[i-2] = '\0'; //on supprime le caractère '\n' et on le remplace par celui de fin de chaine '\0'
    }
    
    int comparerMot(char mot[])
    {
      if(strcmp(mot, "vague") == 1)
    	{
                   Serial.print("Salut les zéros !");
            }
    }
    

    Normalement il devrait afficher Salut les Zéros .
    Merci !
    • Partager sur Facebook
    • Partager sur Twitter
      7 août 2012 à 19:55:19

      Ton script ne plante pas. C'est juste que la condition à remplir pour afficher "Salut les zéros" n'est jamais rempli...

      Pourquoi ? parce que le mot à comparer n'est pas exactement le même que celui avec lequel on essaie de le comparer...

      On ma reporté une erreur avec ce code (du à un problème de version de l'IDE je crois), à la ligne 33 essaie de supprimer le -2 dans l'adressage du tableau
      • Partager sur Facebook
      • Partager sur Twitter
        8 août 2012 à 15:29:34

        Merci , mais cela ne marche toujours pas !
        • Partager sur Facebook
        • Partager sur Twitter
          8 août 2012 à 15:47:16

          J'ai pas dit que c'était CA la solution, mais que ca pouvais être une piste à explorer :)

          une autre piste : strcmp renvoie 0 sir les chaines sont identiques, hors toi tu test avec 1...
          • Partager sur Facebook
          • Partager sur Twitter
            8 août 2012 à 16:02:01

            Vos deux solution combiné marche merci !!!!!!!
            • Partager sur Facebook
            • Partager sur Twitter

            Au secours ,mon script plante !

            × 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