Problème compilation arduino
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Problème compilation arduino



  1. #1
    lucieac

    Problème compilation arduino


    ------

    Bonjour à toutes et à tous,
    J'ai écrit un code pour un projet arduino qui fonctionnait très bien jusqu'a ce que je rajoute quelques éléments. Voilà mon code :
    Code:
    // ultrasons
    int pinTrig = 8;
    int pinEcho = 9;
    long temps;
    float distance;
    // ultrasons
    
    // moteur
    
    #include <Stepper.h>
    int nombreDePas = 48 * 64;
    Stepper monMoteur(nombreDePas, 2, 3, 4, 5);
    // moteur
     //JOYSTICKS 
     int joystick ;
     const int SW = 10 ;
    int val ; 
    // JOYSTICKS
    // PLUIE
    int analogPin3 = 9;
    int Capteurpluie3 = 0 ;
    int analogPin2 = 8;
    int Capteurpluie2 = 0;
    int analogPin = 7;                           ;
    int Capteurpluie = 0;
    //PLUIE
    void setup() {
    
      // moteur
      monMoteur.setSpeed(9);
      // moteur
    
      // ultrasons
      pinMode(pinTrig, OUTPUT);
      pinMode(pinEcho, INPUT);
      digitalWrite(pinTrig, LOW);
      Serial.begin(115200);
      // ultrasons
    
      //JOYSTICKS 
      Serial.begin(115200); 
      pinMode(SW, INPUT_PULLUP);  
      // JOYSTICKS
    
      //PLUIE
    Serial.begin(9600);
     Serial.begin(9600);
     Serial.begin(9600);
    //PLUIE
    }
    void loop() {
      // PLUIE
     Capteurpluie = analogRead(analogPin);
      Capteurpluie2=analogRead(analogPin2);
      Capteurpluie3 =analogRead(analogPin3);
      Serial.println(Capteurpluie);
      Serial.println(Capteurpluie2);
      Serial.println(Capteurpluie3);
      if ((Capteurpluie < 400) && (Capteurpluie2 < 400 ) && (Capteurpluie3 < 400) ){
        monMoteur.step(2000);
      }}
      // PLUIE
    
    // ULTRASONS MESURE{
      digitalWrite(pinTrig, HIGH);        
      delayMicroseconds(10);
      digitalWrite(pinTrig, LOW);
    
      temps = pulseIn(pinEcho, HIGH);    
    
      if (temps > 25000) {              
        Serial.println("Echec de la mesure");
      }
      else {
        temps = temps/2;
        distance = (temps*340)/10000.0;  
      }  
    // ULTRAONS MESURE
      
      //JOYSTICK{
            joystick = analogRead(A0); // lecture de la tension du joystick
    Serial.println(joystick);
    map(joystick,0,1023,0,1023);
       if((joystick>0) && ( joystick < 400 )) {
        monMoteur.step(2000) ;
      } 
      if ((joystick>700) && ( joystick < 1023 )) {
        monMoteur.step(-2000) ;
        {
      val = digitalRead(SW);
      Serial.print("BTN = ");
      Serial.println(val);
    }
    {
      if ( val = 0 ){
      monMoteur.step (00);}
    }}
      }}
    Le message d'erreur qui apparait est celui-ci: expected constructor, destructor, or type conversion before '(' token. A la ligne : map(joystick,0,1023,0,1023);
    Après recherches et divers tests je ne trouve pas la solution, pouvez vous me dire ou est le problème ? S'il vous plait.
    Merci d'avance

    -----
    Dernière modification par lucieac ; 02/09/2018 à 16h19.

  2. #2
    Jack
    Modérateur

    Re : Problème compilation arduino

    Je n'y connais rien en arduino, mais quand j'ai un problème de syntaxe, je regarde la doc de référence. Il me semble que la fonction map renvoie quelque chose et que tu dois l'affecter à un entier, non?

  3. #3
    invite936c567e

    Re : Problème compilation arduino

    Bonjour

    Tu devrais indenter correctement ton code afin de bien faire apparaître le début et la fin des différents blocs d'instructions. Dans l'IDE Arduino, tu peux utiliser la fonction de ré-indentation automatique (menu Outils > Formatage automatique).

    Cela te permettrait de t'apercevoir que le code situé à partir de l'erreur relevée à la compilation n'appartient plus à aucune fonction. En effet, ton programme contient moins d'accolades ouvrantes que d'accolades fermantes, alors qu'il devrait y en avoir le même nombre.

    Tu as probablement mis une accolade fermante de trop après le « if » vers la ligne 60. Et ce n'est pas la seule erreur de ce type.


    Sinon :
    - Il est inutile de faire des blocs d'instructions délimités par des accolades lorsque cela n'est pas nécessaire. Cela a pour seul effet de rendre le code moins lisible.
    - La ligne « map(joystick, 0, 1023, 0, 1023); » ne sert à rien, car de toute manière avec ces paramètres la fonction « map() » retourne juste la valeur de « joystick ».

  4. #4
    pm42

    Re : Problème compilation arduino

    Bien vu. Les doubles accolades fermantes collées sont vraiment une très, très mauvaise idée.

  5. A voir en vidéo sur Futura
  6. #5
    lucieac

    Re : Problème compilation arduino

    Merci a tous pour vos réponses.
    J'ai donc formater automatiquement comme a dit PA5CAL et supprimer la ligne map et maintenant cela m'affiche : expected constructor, destructor, or type conversion before '(' token. A la ligne : digitalWrite(pinTrig, LOW) ;
    Merci de vos réponses

  7. #6
    invite936c567e

    Re : Problème compilation arduino

    Comme je l'ai indiqué, le problème est dû à une accolade fermante de trop au niveau du « if ».

    Et il y a une autre accolade fermante de trop dans la suite du programme (certainement la dernière).

  8. #7
    pm42

    Re : Problème compilation arduino

    Tu as viré les accolades en trop ?

  9. #8
    lucieac

    Re : Problème compilation arduino

    De quel if parle tu PA5CAL ?
    Je suis en train pm42

  10. #9
    invite936c567e

    Re : Problème compilation arduino

    Je parle du premier « if (...) » de la fonction « loop() ». Il y a deux accolades pour fermer son bloc d'instructions, au lieu d'une seule.

  11. #10
    lucieac

    Re : Problème compilation arduino

    Merci beaucoup maintenant tout fonctionne

Discussions similaires

  1. [Programmation] Problème compilation arduino (2)
    Par lucieac dans le forum Électronique
    Réponses: 4
    Dernier message: 25/08/2018, 06h33
  2. [Programmation] Problème compilation arduino
    Par lucieac dans le forum Électronique
    Réponses: 6
    Dernier message: 24/08/2018, 19h48
  3. [Programmation] Pb compilation Arduino & libraries
    Par Atroverso dans le forum Électronique
    Réponses: 18
    Dernier message: 20/03/2018, 21h03
  4. Arduino SPI.h et Sd2Card.cpp compilation
    Par invitee2f05bed dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 23/09/2015, 23h39
  5. erreur de compilation arduino
    Par invite7ade7f5a dans le forum Électronique
    Réponses: 3
    Dernier message: 15/01/2014, 19h26