Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



[Résolu] Commande de 2 servos par poussoir


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
Technoïde
Débutant

Hors ligne

Inscrit le: 28 Déc 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 22 Mai - 18:08 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

PublicitéSupprimer les publicités ?
Bonjour,

j'ai un soucis avec mon code.
Ce code est destiné à ce que lorsque j'appuie sur un bouton, un servo bouge d'1 degré.

Voici mon code:

#include <Servo.h>
#define XMOIN 1; // boutton faisant baisser de 1° le servo de l'axe des x
#define XPLUS 2; // boutton faisant monter de 1° le servo de l'axe des x
#define YMOIN 3:
#define YPLUS 4;


int valx;        // initialisation des variables de positios des 2 servos
int valy;

Servo xservo;   // création des 2 servos
Servo yservo;

void setup()
{
  pinMode(XMOIN, INPUT); // mise en entrée des boutons
  pinMode(XPLUS, INPUT); 
  pinMode(YMOIN, INPUT);
  pinMode(YPLUS, INPUT);
  Serial.begin(9600);       // ouverture du ports série
  yservo.attach(6);        // Définition des sorties destinéés aux servos
  xservo.attach(5);
}
void loop ()
{
  if (analogRead(YMOIN) == HIGH) { // si YMOIN est HIGH, le servo "baisse" d'un degré
    valy == valy - 1
  }
  if (analogRead(YPLUS) == HIGH) { // Si XMOIN est HIGH, le servo "monte" d'un degré.
    valy == valy + 1
  }
  if (analogRead(XMOIN) == HIGH) {
    valx == valx - 1
  }
  if (analogRead(XPLUS) == HIGH) {
    valx == valx + 1
  }
 
 
  // diminue les valeur de valx et valy afin de ne pas dépasser 180° et et de ne pas
  //passer en dessous de 0°
  if (valx<0) {
  valx == 0         
  }
    if (valy<0) {
  valy == 0
  }
    if (valx>180) {
  valx == 180
  }
    if (valx>180) {
  valx == 0180
  }
  xservo.write(valx);   // écriture de valx sur yservo
  yservo.write(valy);
  Serial.print(valx);  // écriture de valx sur le port série
  Serial.print(valy);
 
  delay(20);
 
}



Voila. Le problème indiqué par l'IDE est:

servobutton:35: error: expected primary-expression before ')' token
servobutton:35: error: expected `;' before ')' token
servobutton:44: error: expected `;' before '}' token
servobutton:47: error: expected `;' before '}' token
servobutton:50: error: expected `;' before '}' token
servobutton:53: error: expected `;' before '}' token

Et je ne comprends pas help ... Peut être que je n'ai pas abordé le problème par le bon bout...  Donc si quelqu'un à une idée, ça m'aiderait beaucoup.


Merci


Dernière édition par Technoïde le Dim 25 Mai - 16:22 (2014); édité 1 fois
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Jeu 22 Mai - 23:06 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

Tu oublies pleins de ";" à la fin de ligne, notamment dans tes if, exemple:
 
Code:
 valy == 0


C'est simplement là la source de ton problème...
Il ne faut jamais oublier ces petits points virgules qui signalent à l'Arduino que la ligne de code est terminée et qu'une nouvelle peut commencer.
____________________________
http://simple-duino.com
Revenir en haut
Technoïde
Débutant

Hors ligne

Inscrit le: 28 Déc 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Ven 23 Mai - 07:24 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

merci beaucoup pour la réactivité et je vais tester ça ce soir...
mais je ne savais pas que l'on devait mettre des ";" dans les "if" (---> je débute et y en avait pas dans le bouquin read )

Donc je vois ça et je dis si ça marche.

François
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Ven 23 Mai - 10:34 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

La règle est simple, à l'exception de quelques fonction (de déclaration et d'intégration de librairies généralement), toutes les lignes de scripts Arduino doivent se terminer par un ";"
Bizarre que cela ne soit pas écrit dans ton livre
____________________________
http://simple-duino.com
Revenir en haut
Technoïde
Débutant

Hors ligne

Inscrit le: 28 Déc 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Ven 23 Mai - 15:52 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

j'ai donc rajouté des ";" dans les "if" ( mon code: http://www.sendspace.com/file/rrvwd4 ) mais il y a encore un message d'erreur:




servobutton.ino:51:11: error: invalid digit "8" in octal constant
servobutton.ino: In function 'void setup()':
servobutton:15: error: expected `)' before ';' token
servobutton:15: error: expected primary-expression before ',' token
servobutton:15: error: expected `;' before ')' token
servobutton:16: error: expected `)' before ';' token
servobutton:16: error: expected primary-expression before ',' token
servobutton:16: error: expected `;' before ')' token
servobutton:17: error: expected `)' before ':' token
servobutton:18: error: expected `)' before ';' token
servobutton:18: error: expected primary-expression before ',' token
servobutton:18: error: expected `;' before ')' token
servobutton.ino: In function 'void loop()':
servobutton:25: error: expected `)' before ':' token
servobutton:28: error: expected `)' before ';' token
servobutton:28: error: expected `)' before ';' token
servobutton:28: error: expected primary-expression before ')' token
servobutton:28: error: expected `;' before ')' token
servobutton:31: error: expected `)' before ';' token
servobutton:31: error: expected `)' before ';' token
servobutton:31: error: expected primary-expression before ')' token
servobutton:31: error: expected `;' before ')' token
servobutton:34: error: expected `)' before ';' token
servobutton:34: error: expected `)' before ';' token
servobutton:34: error: expected primary-expression before ')' token
servobutton:34: error: expected `;' before ')' token



c'est a priori un gros problème de ";" sauf la première erreur mais je ne vois absolument pas ou... ???  donc je continue de chercher... 
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Sam 24 Mai - 11:02 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

Citation:

#include <Servo.h>
#define XMOIN 1 // boutton faisant baisser de 1° le servo de l'axe des x
#define XPLUS 2 // boutton faisant monter de 1° le servo de l'axe des x
#define YMOIN 3
#define YPLUS 4


Servo xservo ; // création des 2 servos
Servo yservo ;


int valx, valy ;


void setup()
{
  pinMode(XMOIN, INPUT); // mise en entrée des boutons
  pinMode(XPLUS, INPUT);  
  pinMode(YMOIN, INPUT);
  pinMode(YPLUS, INPUT);
  Serial.begin(9600);       // ouverture du ports série
  yservo.attach(6);        // Définition des sorties destinéés aux servos
  xservo.attach(5);
}
void loop ()
{
  if (analogRead(YMOIN) == 1024) { // si YMOIN est HIGH, le servo "baisse" d'un degré
    valy = valy - 1 ;
  }
  if (analogRead(YPLUS) == 1024) { // Si XMOIN est HIGH, le servo "monte" d'un degré.
    valy = valy + 1 ;
  }
  if (analogRead(XMOIN) == 1024) {
    valx = valx - 1 ;
  }
  if (analogRead(XPLUS) == 1024) {
    valx = valx + 1 ;
  }
  
  
  // diminue les valeur de valx et valy afin de ne pas dépasser 180° et et de ne pas
  //passer en dessous de 0°
  if (valx <= 0) {
  valx = 0 ;   
  }
    if (valy <= 0) {
  valy = 0 ;
  }
    if (valx >= 180) {
  valx = 180 ;
  }
    if (valx >= 180) {
  valx = 180 ;
  }
  xservo.write(valx);   // écriture de valx sur yservo
  yservo.write(valy);
  Serial.print(valx);  // écriture de valx sur le port série
  Serial.print(valy);
  
  delay(20);
  
}



____________________________
http://simple-duino.com
Revenir en haut
Technoïde
Débutant

Hors ligne

Inscrit le: 28 Déc 2013
Messages: 6
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Dim 25 Mai - 16:22 (2014)    Sujet du message: [Résolu] Commande de 2 servos par poussoir Répondre en citant

Merci beaucoup ça marche mieux comm ça Okay
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 20:04 (2017)    Sujet du message: [Résolu] Commande de 2 servos par poussoir

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino