Bonjour, je suis débutant, j’ai essayé de programmer un servo-moteur qui doit tourner sur un angle de 0 à 179° avec un capteur ultrason qui est censé être placé sur le servo-moteur et donc détécter des obstacles. Or mon servo-moteur ne tourne pas et dans le moniteur série le capteur détécte des obstacles à 0° tout le temps. Lors du téléversement l’IDE ne détécte aucun problème, merci de m’éclairer sur le problème. Voici mon code :
#include <Servo.h> //on importe la bibliothèque Servo
int pinServo=12; // variable pour stocker le pin pour la commande
Servo leServo; // on définit un objet Servo nommé leServo
const int trigPin = 10;
const int echoPin = 11;
long duration;
float distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
leServo.attach(pinServo); // on relie l'objet au pin de commande
leServo.write(0);
Serial.begin(9600);
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration*0.034/2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
leServo.write(0); // on dit à l'objet de mettre le servo à 0°
delay(1000); // ce délai est nécessaire pour que le servo atteigne sa position
leServo.write(179); // position à 179, 180 est à éviter car cela forcerait le servo à dépasser ses limites
delay(1000); // attente à nouveau
}