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);
}
}