Problème "ÿ" Arduino Uno

Fermé
achoule Messages postés 42 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 17 septembre 2015 - 5 juin 2015 à 12:02
achoule Messages postés 42 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 17 septembre 2015 - 5 juin 2015 à 13:37
Bonjour à tous,

Je viens vous demander conseil car depuis ce matin mon arduino Uno reçoit des ÿ après chaque caractère. Pour vous expliquer le contexte j'envoi "GO" depuis mon Pc ou depuis le moniteur série d'arduino. Je récupère ces deux lettre dans un tableau de Char[2] puis j'affiche ces valeurs (pour le test).
Et l'arduino me renvoi "Gÿ" et "Oÿ". J'utilise Serial.read().
voici le code :
void setup() 
{                
  // On utilise les PIN 12 et 13 en sorties digitales
  pinMode(12, OUTPUT);     
  pinMode(13, OUTPUT);
  // Démarage de la com série
  Serial.begin(9600); 
  Serial.flush();
}

void setup() 
{                
  // On utilise les PIN 12 et 13 en sorties digitales
  pinMode(12, OUTPUT);     
  pinMode(13, OUTPUT);
  // Démarage de la com série
  Serial.begin(9600); 
  Serial.flush();
}

void loop() 
{
  
   
  // mesure de sécurité, on s'assure que le moteur est bien arrêté
  digitalWrite(12, LOW);
  digitalWrite(13, LOW);
  Deplace=0;
  valided = false;
  
    // S'il y a des donnees en attente sur le port USB
    if(Serial.available() > 0 ) 
    {
     
      // Récupére la donnée disponible
      Deplace=Serial.parseInt();
    
      
      Serial.print(Deplace);
      
      // On boucle tant que la valeur de Deplace ne correspond pas 
     
     // On lance la méthode de vérif     
       
      while(!valided)
        verif(Deplace);
      
Je ne vous met pas la suite, mais je vous met la fonction Verif (c'est ici le bug)
  //Fonction de vérification de la valeur d'entré
  void verif (int valeur)
  {
         if(Serial.available() > 0)
        { 
       char Str[2];
       
         for (int i =0; i <2 ; ++i)
         {
           Str[i] = Serial.read();
          
         }
         Serial.print(Str[0]);
          Serial.print(Str[1]);
         if (Str[0] == 'G'&& Str[1] == 'O')
             {
               valided = true;
               Deplace = valeur;
             } 
          else if (Str[0] == 'N' && Str[1] == 'O')
                   {
                     valided = true;
                     Deplace = 0;
                   }
           else
           {
             valided = false;
           }
         
       }  
  }




Et voici ce que j'obtiens lorsque je rentre en valeur "5000" puis que je rentre "GO" pour valider cette valeur.




Merci d'avance pour votre aide :D

1 réponse

achoule Messages postés 42 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 17 septembre 2015 1
5 juin 2015 à 13:37
Up ? :(
0