Erreur "expected primary-expression before ';' token"

Bonjour,

Je fais partie d'une équipe de 1ère S travaillant sur un projet de robot qui se déplace dans une zone définie, délimitée par des clôtures en aluminium. Le programme en question contrôle les deux moteurs de notre robot par l'intermédiaire d'un motor shield et un capteur à ultrasons afin de repérer les obstacles. Au moment de vérifier notre programme, un message erreur s'affiche : expected primary-expression before ';' token.
Après plusieurs recherches et tentatives de solutionnage, je ne parviens toujours pas à résoudre ce problème.
Merci pour votre aide.

Notre programme complet :

#include <Wire.h> //bibliothèque pour la communication I2C
#include <Adafruit_MotorShield.h> //bibliothèque pour le shield

Adafruit_MotorShield monShield = Adafruit_MotorShield; //création de l'objet shield
Adafruit_DCMotor *moteurGauche = monShield.getMotor(1); //création de l'objet moteurGauche par pointeur et repérage du numéro
Adafruit_DCMotor *moteurDroite = monShield.getMotor(2); //création de l'objet moteurDroite par pointeur et repérage du numéro

// définition des broches utilisées
int trig = 12;
int echo = 11;
long lecture_echo;
long cm;
int time;

void setup()
{
pinMode(trig, OUTPUT);
digitalWrite(trig, LOW);
pinMode(echo, INPUT);
Serial.begin(9600);

monShield.begin(); //On lance la communication avec le shield
moteurGauche->setSpeed(255); //On définit la vitesse de rotation
moteurDroite->setSpeed(255); //des deux moteurs
}

void loop()
{
moteurGauche->run(FORWARD); //On fait tourner les moteurs
moteurDroite->run(FORWARD); //ensemble dans le même sens
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
lecture_echo = pulseIn(echo, HIGH);
cm = lecture_echo / 58;
delay(500);
if (cm<=30)
{
moteurGauche->run(RELEASE); //Puis on les arrête
random(45, 135); // entre 45 et 135 degrés pour le virage
delay(time);
}

}

Ce serait bien de mettre ton code dans les balises associées, ce sera plus lisible pour nous.
Sinon, ce serait bien aussi d'avoir le message d'erreur en entier car souvent il donne une indication du numéro ou de la ligne où ca se passe... :wink:

corrigez votre post ci dessus et rajoutez les code tags autour du code:

[code]

[color=blue]// votre code ici[/color]

[/code]

.

ça doit ressembler à cela:

// votre code ici

(faites aussi ctrl-T (PC) or cmd-T (Mac) dans l'IDE avant de copier le code pour qu'il soit indenté correctement)

votre erreur est dans le première ligne ci dessous (manque les parenthèses)

Adafruit_MotorShield monShield = Adafruit_MotorShield[color=red]()[/color]; //création de l'objet shield
Adafruit_DCMotor *moteurGauche = monShield.getMotor(1); //création de l'objet moteurGauche par pointeur et repérage du numéro

Ou alors tout simplement Adafruit_MotorShield monShield; //création de l'objet shield (si on n'a pas de paramètres à passer au constructeur)

bonjour,
dans l'exemple ICI il est mis

#include "utility/Adafruit_MS_PWMServoDriver.h"