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