[Programmation] Problème compilation arduino
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Problème compilation arduino



  1. #1
    lucieac

    Problème compilation arduino


    ------

    Bonjour à toutes et à tous,

    Je suis en train de réaliser un projet arduino et quand j'essaye de compiler cela me met : expected unqualified-id before '{' token . Au { avant digitalWrite(pinTrig, HIGH); . Et je ne comprend pas pourquoi ( je suis débutante ) merci de votre aide et n'hésitez pas si vous voyez d'autres erreurs.

    Code:
    void setup() {
    
      // moteur
      Serial.begin(9600);
      monMoteur.setSpeed(9);
      // moteur
    
    
      // ultrasons
      pinMode(pinTrig, OUTPUT);
      pinMode(pinEcho, INPUT);
      digitalWrite(pinTrig, LOW);
      Serial.begin(9600);
      // ultrasons
    }
    
    void loop() {
      // moteur
      analogValue = analogRead(analogPin);
      Serial.println(analogValue);
      if (analogValue < 400);
      monMoteur.step(2000);
      // moteur
    }
    {
      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;                  
        Serial.print("Distance: ");
        Serial.print(distance);
        Serial.println(" cm");
      }
      delay(2000);
    }

    -----

  2. #2
    activmaker

    Re : Problème compilation arduino

    Bonjour,

    Il y a une paire accolade ouvrante fermante en trop je pense , après le // moteur. Il y a aussi un ; sur la ligne du if . Possible que les accolades ouvrante / fermantes soient celle du if ? Tout dépends de ce que doit faire le if. On essaye apparemment de piloter un moteur pas à pas à partir d'une valeur analogique. Si il y a un souci dans la conception du code , il faudra peut être expliquer un peu plus le projet. Bon courage.

  3. #3
    invite61eb8a44

    Re : Problème compilation arduino

    Bonjour,

    Le code, inspiré d'un code type C doit respecter certaines règles de gestion des { et }, marquant un début, une fin.

    Le code d'erreur vient de la gestion des { et }

    De la même façon, une séquence conditionnelle "if then else" doit inclure, pour chacune de ses parties, un début et une fin.

    Par exemple, dans cette séquence de code

    ...
    Serial.println(analogValue);
    if (analogValue < 400);
    monMoteur.step(2000);
    // moteur
    }
    {
    digitalWrite(pinTrig, HIGH);
    delayMicroseconds(10);
    ...

    la suite

    }
    {

    n'est pas cohérente et l'analyseur syntaxique du compilateur ne sait pas interpréter la suite de ces 2 caractères. Il génère donc une anomalie syntaxique juste après.

    Il interprête le } comme la fin de "loop", donc la fin de la boucle et ne sait pas comment interpréter la portion de code qui suit.

    Il est probable que tu ais oublié le { après de "if" qui précède et sans doute le "else" qui aurait dû être après le }

    Tout dépend des actions précises que tu voulais effectuer, dans chacune des situations "si condition" et "sinon"


    Il faut bien saisir le sens des marqueurs de début et de fin, tant pour le programme "boucle" et "setup" que pour les séquences conditionnelles "if then else". Il faut avoir un nombre cohérent de marqueur et bien entendu, positionnés aux bons endroits du code.

    Les codes d'erreurs en compilation, sont juste l'expression d'un analyseur syntaxique qui ne comprend pas la structure du code saisi. Il faut juste être au clair, avec la structure du programme rédigé.

    Il existe de nombreux tutos accessibles librement sur la toile.

    Bon courage.

    La réponse vient d'être apportée juste avant

  4. #4
    micka_ch

    Re : Problème compilation arduino

    Bonjour,

    Il y a une erreur de {. Voici un version qui devrait être correcte au niveau syntaxe :

    Code:
    void loop() {
    	// moteur
    	analogValue = analogRead(analogPin);
    	Serial.println(analogValue);
    	if (analogValue < 400){
    		monMoteur.step(2000);
    	}
    	// moteur
    
    	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;                  
    		Serial.print("Distance: ");
    		Serial.print(distance);
    		Serial.println(" cm");
    	}
    	delay(2000);
    }
    Par contre aucune idée de la fonctionnalité du code proposé...

    Meilleures salutations

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

    Smile Re : Problème compilation arduino

    Merci à tous pour vos réponses vous êtes formidables
    Est ce que par hasard quelqu'un aurait déjà controlé des moteurs pap 28BYJ-48 avec un joysticks ?
    Dernière modification par lucieac ; 24/08/2018 à 17h19.

  7. #6
    invite936c567e

    Re : Problème compilation arduino

    Bonsoir
    Citation Envoyé par arboric Voir le message
    Le code, inspiré d'un code type C ...
    Il ne s'agit pas seulement d'inspiration, mais des langages C++ et C.

    L'IDE Arduino appelle juste la chaîne de compilation GCC (plus précisément AVR-GCC dans le cas des cartes à micro-contrôleurs Atmel). Le fichier principal .ino écrit par l'utilisateur est traité comme un fichier .cpp. Les définitions et la bibliothèque d'objets C++ et de fonctions C (incluant main()) du projet Arduino, improprement appelées « langage Arduino », y sont ajoutées lors de la compilation et de l'édition de liens.

  8. #7
    invite936c567e

    Re : Problème compilation arduino

    Citation Envoyé par lucieac Voir le message
    Est ce que par hasard quelqu'un aurait déjà controlé des moteurs pap 28BYJ-48 avec un joysticks ?
    Il y a plusieurs façons de contrôler des moteurs pas-à-pas, en fonction de ce qu'on veut réaliser (commande de position / de vitesse / d'accélération ; contrôle direct d'axes indépendants / contrôle d'avance et de direction d'un véhicule par deux roues motrices / etc.).

    Malheureusement, d'une manière générale, les fonctions de base fournies par Arduino pour piloter les moteurs pas-à-pas ne sont pas adaptées à un contrôle en temps réel. Sauf à trouver une bibliothèque compatible qui fasse déjà ce que tu souhaites (et qui reste à déterminer), il faudra certainement opter pour une programmation directe de la commande des moteurs.

Discussions similaires

  1. [Programmation] Pb compilation Arduino & libraries
    Par Atroverso dans le forum Électronique
    Réponses: 18
    Dernier message: 20/03/2018, 21h03
  2. (Arduino) problème de téléversement de programme Arduino
    Par invite3e4197b0 dans le forum Électronique
    Réponses: 1
    Dernier message: 17/05/2016, 10h28
  3. 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
  4. erreur de compilation arduino
    Par invite7ade7f5a dans le forum Électronique
    Réponses: 3
    Dernier message: 15/01/2014, 19h26
  5. Problème de compilation v++
    Par davidif dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 04/11/2013, 09h06
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...