Go Down

Topic: Problème de code pour communication avec pc (Read 684 times) previous topic - next topic

Mathieu

Bonjour !

Je débute avec le langage allumé et je souhaiterais, en tapant des ordre (définie préalablement) dans la console arduino pouvoir donner des ordre à ma carte... (exemple allumer ou éteindre une led par exemple x))

Du coup voilà ce que j'ai fait :
(Je suis conscient que beaucoup de chose vont s'en doute vous paraitre abérante, mais je suis là pour apprendre ;))

Code: [Select]
 char runkey = run;
 char stopkey = stop;
 
 void setup()  
   {  
   Serial.begin(9600);  
   }  
 
 void loop()  
   {  
   while (Serial.available())  
     {  
       char key = Serial.read();  
       if (key == runkey)
       {
         Serial.print("La lampe s'allume");
       }
       else if (key == runkey)
       {
         Serial.print("La lampe s'eteint");
       {
       else
       {
         Serial.print("commande ");  
         Serial.print(key);  
         Serial.println(" non reconnue.");  
       }
     }  


Si quelqu'un peut me donner des pistes pour que ce programme fonctionne, ça serait super :)
Merci d'avance

Bidouille

C'est pas là qu'il y a un schmol :
if (key == runkey)
       {
         Serial.print("La lampe s'allume");
       }
       else if (key == runkey)
A+

Mathieu

Ah oui en effet, je me suis tromper de variable pour le else if...
Mais ça ne règle pas mon problème... :/

Voici l'erreur :

error: 'run' was not declared in this scope In function 'void loop()':

fdufnews

#3
Mar 21, 2010, 12:36 am Last Edit: Mar 21, 2010, 12:38 am by fdufnews Reason: 1
Quote
error: 'run' was not declared in this scope In function 'void loop()':

Code: [Select]
 char runkey = run;
 char stopkey = stop;

Le compilateur te dis que run n'est pas défini.
Et tu dois avoir la même erreur avec la ligne suivante
Tu as créé 2 variables de type char, il faut donc leur donner des valeurs du même type. Donc soit un nombre entre 0 et 255, soit un caractère.

jeq

Salut

char c'est pas un seul caractere ex: char debut="D"
et non un mot , la c'est un String (mais dans d'autres Langage)

A+ ::)

Mathieu

Merci a vous 2, j'ai un peux avancer x) :
Code: [Select]
 char runkey = 1;
 char stopkey = 2;
 
 void setup()  
   {  
   Serial.begin(9600);  
   }  
 
 void loop()  
   {  
   while (Serial.available())  
     {  
       char key = Serial.read();  
       if (key == runkey)
       {
         Serial.print("La lampe s'allume");
       }
       else if (key == stopkey)
       {
         Serial.print("La lampe s'eteint");
       }
       else
       {
         Serial.print("commande ");  
         Serial.print(key);  
         Serial.println(" non reconnue.");  
       }
     }  
   }  


En effet maintenant le transfert veux bien s'effectuer à la carte =D
Seulement quand j'ouvre la console ça me dit toujours : Commande (celle que j'ai tappé) non reconnue. Et ceux, même si je tape 1 ou 2 o0... (pour info, j'ai essayer aussi de déclarer mes variable en int mais ça ne change rien...)

Pourriez vous aussi me donner le type de variable acceptant les mots entier en langage arduino ?

fdufnews

Nous on veut bien t'aider, mais au vu de tes questions il te manque quelques bases. Il y a un minimum d'effort à faire pour comprendre le langage de programmation alors pour commencer, il y a plusieurs pistes:
   1) la référence arduino http://arduino.cc/en/Reference/HomePage
   2) la traduction de la référence arduino http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Reference
   3) la lecture de code existant et une fois que l'on a compris l'adaptation à son besoin. Pour le code existant il y a le site arduino http://arduino.cc/en/Tutorial/HomePage ou les exemples de code qui sont installés avec l'environnement de développement.
  4) les guides pour débuter comme celui-là par exemple http://earthshinedesign.co.uk/ASKManual/Site/ASKManual.html
  5) puis il ne faut pas oublier la fonction recherche sur le forum parce que allumer une led avec des commandes par la console on l'a déjà traité au moins 10 fois.

Go Up