Merci Jekert
A cette librairie je les en faite.
Bon celle que je souhaite avoir , pour quelle fonctionne c'est celle si.
Se programme je les pris sur un des sites pour le testé , le souci c'est que j’obtiens une erreur, suite a une librairie manquante je pense.
Voici le code en question:
#include « Ultrasonic.h » //lib capteur HSR04
#include <Servo.h> //lib servo moteur
const int Trig = 7; //declaration pin carte arduino mega
const int Echo = 6; //declaration pin carte arduino mega
long cm; //variable HCSR04
long cm1; //variable HCSR04
long cm2; //variable HCSR04
Ultrasonic HCSR04(Trig,Echo); //appel des fonctions
int motor1Pin1 = 8; // MOTEUR GAUCHE
int motor1Pin2 = 9; // MOTEUR GAUCHE
int enablePin1 = 2; // COMMANDE GAUCHE
int motor2Pin4 = 10; // MOTEUR DROIT
int motor2Pin3 = 11; // MOTEUR DROIT
int enablePin2 = 3; // COMMANDE DROITE
Servo servoexplo; //nom servo
void setup() {
Serial.begin(9600); //monitoring
// déclaration des sorties
pinMode(motor1Pin1, OUTPUT); //declaration en sortie
pinMode(motor1Pin2, OUTPUT); //declaration en sortie
pinMode(enablePin1, OUTPUT); //declaration en sortie
pinMode(motor2Pin4, OUTPUT); //declaration en sortie
pinMode(motor2Pin3, OUTPUT); //declaration en sortie
pinMode(enablePin2, OUTPUT); //declaration en sortie
servoexplo.attach(5); //declaration en sortie
// Mettre la broche Enable a high comme ca les moteurs tournent
digitalWrite(enablePin1, HIGH); //moteur en route
digitalWrite(enablePin2, HIGH); //moteur en route
}
void loop() {
Serial.println(cm); //affichage sur le monitoring
servoexplo.write(30); //angle du servo
cm2 = HCSR04.convert(HCSR04.timing(), 1); //calcul de la distance par la fonction
delay(400); // pause d’acquisition
if (cm < 20) {
digitalWrite(motor1Pin1, LOW); // ARRIERE TOUTE
digitalWrite(motor1Pin2, HIGH); //
digitalWrite(motor2Pin4, HIGH); //
digitalWrite(motor2Pin3, LOW); //
delay (800); //pause de mouvement
digitalWrite(motor1Pin1, HIGH); // DROITE TOUTE
digitalWrite(motor1Pin2, LOW); //
digitalWrite(motor2Pin4, HIGH); //
digitalWrite(motor2Pin3, LOW); //
delay (800); //pause de mouvement
}
else {
// Le moteur gauche AVANT
digitalWrite(motor1Pin1, HIGH); // AVANT TOUTE
digitalWrite(motor1Pin2, LOW); //
// Le moteur droit AVANT
digitalWrite(motor2Pin4, LOW); //
digitalWrite(motor2Pin3, HIGH); //
}
servoexplo.write(90);
cm1 = HCSR04.convert(HCSR04.timing(), 1);
delay(400); // pause d’acquisition
if (cm1 < 20) {
digitalWrite(motor1Pin1, LOW); // GAUCHE TOUTE
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin4, LOW); //
digitalWrite(motor2Pin3, HIGH); //
delay (800); //pause de mouvement
}
else {
// Le moteur gauche AVANT
digitalWrite(motor1Pin1, HIGH); // AVANT TOUTE
digitalWrite(motor1Pin2, LOW); //
// Le moteur droit AVANT
digitalWrite(motor2Pin4, LOW); //
digitalWrite(motor2Pin3, HIGH); //
}
servoexplo.write(140);
cm = HCSR04.convert(HCSR04.timing(), 1);
delay(400); // pause d’acquisition
if (cm2 < 20) {
digitalWrite(motor1Pin1, HIGH); // DROITE TOUTE
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin4, HIGH); //
digitalWrite(motor2Pin3, LOW); //
delay (800); //pause de mouvement
}
else {
// Le moteur gauche AVANT
digitalWrite(motor1Pin1, HIGH); // AVANT TOUTE
digitalWrite(motor1Pin2, LOW); //
// Le moteur droit AVANT
digitalWrite(motor2Pin4, LOW); //
digitalWrite(motor2Pin3, HIGH); //
}
}
Et voici le message d'erreur:
Le bute de cela, c'est de ne pas prendre son code juste voir comment cela fonctionne , points de vue de sa déclaration de son capteur,
est celle la me plais bien, du comme vous avez pus le voir se programme me bloque a causse d'une erreur sans doute banale.