Bonjour! Dans cette vidéo je vais vous montrer comment utiliser un capteur de distance à ultrason avec un Arduino. Le capteur est installé sur un servomoteur, alors je vais aussi vous apprendre à utiliser un servomoteur. J’espère que vous aimerez la vidéo 😀
Ma playlist de vidéos Arduino: https://www.youtube.com/playlist?list=PL5h7NsxkT9YNiPHjexrj3NEB4Hb8Mhouj
Procurez vous le robot ici:
Vérifiez vos branchements ici:
https://TommyDesrochers.com/review-kit-robot-multifonctions-pour-arduino/
Programme créé dans la vidéo:
#include <Servo.h> const int echoPin = 13; const int triggerPin = 12; int distanceAvant; int distanceDroite; int distanceGauche; float intervalle; Servo myservo; //Création de l'objet servo const int delay_time = 250; //Temps accordé au servo pour la mesure de la distance de chaque côté void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(echoPin, INPUT); pinMode(triggerPin, OUTPUT); myservo.attach(9); //Associe l'objet myservo à la pin 9 (PWM) } void mesurerDistanceAvant() { myservo.write(90); delay(delay_time); digitalWrite(triggerPin, LOW); delayMicroseconds(2); digitalWrite(triggerPin, HIGH); //Envoie d'une onde sonore delayMicroseconds(10); digitalWrite(triggerPin, LOW); intervalle = pulseIn(echoPin, HIGH); //Réception de l'écho intervalle = intervalle/5.8/10; //Conversion de la différence de temps entre l'envoie de l'onde sonore et la réception de l'écho en distance (cm) Serial.println("Distance avant:"); Serial.println(intervalle); distanceAvant = intervalle; //Arrondissement de la distance } void mesurerDistanceGauche() { myservo.write(180); delay(delay_time); digitalWrite(triggerPin, LOW); delayMicroseconds( 2); digitalWrite(triggerPin, HIGH); //Envoie d'une onde sonore delayMicroseconds( 10); digitalWrite(triggerPin, LOW); intervalle = pulseIn(echoPin, HIGH); //Réception de l'écho intervalle = intervalle/5.8/10; //Conversion de la différence de temps entre l'envoie de l'onde sonore et la réception de l'écho en distance (cm) Serial.println("Distance gauche:"); Serial.println(intervalle); distanceGauche = intervalle; } void mesurerDistanceDroite() { myservo.write(0); delay(delay_time); digitalWrite(triggerPin, LOW); delayMicroseconds( 2); digitalWrite(triggerPin, HIGH); //Envoie d'une onde sonore delayMicroseconds( 10); digitalWrite(triggerPin, LOW); intervalle = pulseIn(echoPin, HIGH); //Réception de l'écho intervalle = intervalle/5.8/10; //Conversion de la différence de temps entre l'envoie de l'onde sonore et la réception de l'écho en distance (cm) Serial.println("Distance droite:"); Serial.println(intervalle); distanceDroite = intervalle; } void modeUltrason() { mesurerDistanceAvant(); delay(delay_time); if(distanceAvant < 25) //Si la distance avant est de moins de 25cm { Serial.println("Obstacle à l'avant"); Serial.println(); mesurerDistanceGauche(); delay(delay_time); mesurerDistanceDroite(); delay(delay_time); if(distanceGauche < 15 && distanceDroite < 15) //Si la distance à gauche et la distance à droite sont de moins de 15cm { Serial.println("Obstacles à gauche et à droite, reculer"); Serial.println(); } else if(distanceGauche > distanceDroite) //Si la distance gauche est plus grande que la distance droite { Serial.println("Obstacle à droite, tourner à gauche"); Serial.println(); } else if(distanceGauche <= distanceDroite) //Si la distance gauche est plus petite ou égale à la distance droite { Serial.println("Obstacle à gauche, tourner à droite"); Serial.println(); } } else //Si la distance avant est de plus de 25cm { Serial.println("Aucun obstacle, continuer tout droit"); Serial.println(); } } void loop() { // put your main code here, to run repeatedly: modeUltrason(); }