je fais une robot avec une carte arduino et j'ai programmé avec sans connaitre comment le faire et en trouvant des bribe de code sur internet ceci :
#define CapteurGauche A0
#define CapteurGauche A1
#define CapteurUltrason A2
#define borneENA 5 //Allumer moteur gauche
#define borneIN1 10 //avancer moteur gauche
#define borneIN2 8 //reculer moteur gauche
#define borneENB 6 //Allumer moteur droit
#define borneIN3 11 //avancer moteur droit
#define borneIN4 9 //reculer moteur droit
const byte TRIGGER_PIN = A2; // Broche TRIGGER
const byte ECHO_PIN = A2; // Broche ECHO
/* Constantes pour le timeout */
const unsigned long MEASURE_TIMEOUT = 25000UL; // 25ms = ~8m à 340m/s
/* Vitesse du son dans l'air en mm/us */
const float SOUND_SPEED = 340.0 / 1000;
/** Fonction setup() */
void setup() {
void avancer() {
// Configuration du L298N en "marche avant", pour le moteur connecté au pont A. Selon sa table de vérité, il faut que :
digitalWrite(borneIN2, LOW); reculer la roue gauche
digitalWrite(borneIN1, HIGH); avancer la roue gauche
digitalWrite(borneIN4, LOW); reculer la roue droite
digitalWrite(borneIN3, HIGH); avancer la roue droite
// Et on lance le moteur (branché sur le pont A du L298N)
delay(800);
digitalWrite(borneENA, 1); // Active l'alimentation du moteur 1
digitalWrite(borneENB, 1); // Active l'alimentation du moteur 1
delay(330);
digitalWrite(borneENB, LOW);
digitalWrite(borneENA, LOW);
delay(10);
}
void arreter() {
digitalWrite(borneIN2, LOW); reculer la roue gauche
digitalWrite(borneIN1, LOW); avancer la roue gauche
digitalWrite(borneIN4, LOW); reculer la roue droite
digitalWrite(borneIN3, LOW);
digitalWrite(borneENB, LOW);
digitalWrite(borneENA, LOW);
}
pinMode(borneENA, OUTPUT);
pinMode(borneIN1, OUTPUT);
pinMode(borneIN2, OUTPUT);
pinMode(borneIN4, OUTPUT);
pinMode(borneIN3, OUTPUT);
pinMode(borneENB, OUTPUT);
/* Initialise le port série */
Serial.begin(115200);
/* Initialise les broches */
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW); // La broche TRIGGER doit être à LOW au repos
pinMode(ECHO_PIN, INPUT);
}
/** Fonction loop() */
void loop() {
/* 1. Lance une mesure de distance en envoyant une impulsion HIGH de 10µs sur la broche TRIGGER */
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
/* 2. Mesure le temps entre l'envoi de l'impulsion ultrasonique et son écho (si il existe) */
long measure = pulseIn(ECHO_PIN, HIGH, MEASURE_TIMEOUT);
/* 3. Calcul la distance à partir du temps mesuré */
float distance_mm = measure / 2.0 * SOUND_SPEED;
if((distance_mm = measure / 2.0 * SOUND_SPEED)> 150) {
avancer()
}
else if((distance_mm = measure / 2.0 * SOUND_SPEED)< 50) {
arret()
}
Le problème est que quand je vérifie mon programme avec le logicielle arduino il me dis "a function-definition is not allowed here before '{' token" Merci de bien vouloir m'aider svp