Théorie et fonctionnement des composants
Programmation d'un servomoteur RC 360°:
Afin de comprendre ce qu'est un servomoteur RC 360°, consulter cette page.
Ensuite, consultez cette page pour apprendre à programmer le servomoteur RC 360°.
Programmation d'un capteur Ultrasons :
Faites de même pour connaître le fonctionnement du capteur ainsi que pour apprendre à le programmer ,vous trouverez le tout sur cette page.
Programmation d'un servomoteur RC 360° avec un capteur Ultrasons :
Vous avez vu comment programmer un servomoteur RC 360° et un capteur ultrasons individuellement. Maintenant, vous apprendrez à les utiliser en même temps.
Programmation sur Mblock
Exercice 1 : Changer d'angle d'un servomoteur 180 grâce au capteur ultrasons
Consigne :
Programmez votre carte Arduino pour que le servomoteur réagisse en fonction de la distance mesurée par le capteur à ultrasons :
- 
Si la distance mesurée est supérieure à 10 cm, le servomoteur doit se positionner à 180°. 
- 
Si la distance mesurée est inférieure ou égale à 10 cm, le servomoteur doit se positionner à 0°. 
Correction :
Exercice 2 : Changer le sens d'un servomoteur 360 grâce au capteur ultrasons
Consigne :
Programmez votre carte Arduino pour que le servomoteur réagisse en fonction de la distance mesurée par le capteur à ultrasons :
- 
Si la distance mesurée est supérieure à 10 cm, le servomoteur doit tourner dans un sens à la vitesse maximale. 
- 
Si la distance mesurée est inférieure ou égale à 10 cm, le servomoteur tourner dans l'autre sens à la vitesse maximale. 
Correction :
Programmation sur Arduino IDE
Exercice 1 : Changer d'angle d'un servomoteur 180 grâce au capteur ultrasons
Consigne :
Programmez votre carte Arduino pour que le servomoteur réagisse en fonction de la distance mesurée par le capteur à ultrasons :
- 
Si la distance mesurée est supérieure à 10 cm, le servomoteur doit se positionner à 180°. 
- 
Si la distance mesurée est inférieure ou égale à 10 cm, le servomoteur doit se positionner à 0°. 
Correction :
#include <Servo.h>
// Définir les broches du capteur HC-SR04
const int trigPin = 2;
const int echoPin = 3;
// Définir la broche du servomoteur
const int servoPin = 9;
Servo monServo;
void setup() {
  Serial.begin(9600);            // Initialisation du moniteur série
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  monServo.attach(servoPin);     // Attache le servomoteur à la broche 6
}
void loop() {
  // Mesure de la distance
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duree = pulseIn(echoPin, HIGH);
  float distance = duree * 0.034 / 2;  // Conversion en centimètres
  Serial.print("Distance : ");
  Serial.print(distance);
  Serial.println(" cm");
  // Contrôle du servomoteur
  if (distance > 10) {
    monServo.write(180);
  } else {
    monServo.write(0);
  }
  delay(200); // Petite pause pour éviter les mesures trop rapides
}
Exercice 2 : Changer le sens d'un servomoteur 360 grâce au capteur ultrasons
Consigne :
Programmez votre carte Arduino pour que le servomoteur réagisse en fonction de la distance mesurée par le capteur à ultrasons :
- 
Si la distance mesurée est supérieure à 10 cm, le servomoteur doit tourner dans un sens à la vitesse maximale. 
- 
Si la distance mesurée est inférieure ou égale à 10 cm, le servomoteur tourner dans l'autre sens à la vitesse maximale. 
Correction :
#include <Servo.h>
// Définir les broches du capteur HC-SR04
const int trigPin = 9;
const int echoPin = 10;
// Définir la broche du servomoteur
const int servoPin = 6;
Servo monServo;
void setup() {
  Serial.begin(9600);            // Initialisation du moniteur série
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  monServo.attach(servoPin);     // Attache le servomoteur à la broche 6
}
void loop() {
  // Mesure de la distance
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duree = pulseIn(echoPin, HIGH);
  float distance = duree * 0.034 / 2;  // Conversion en centimètres
  Serial.print("Distance : ");
  Serial.print(distance);
  Serial.println(" cm");
  // Contrôle du servomoteur
  if (distance > 10) {
    monServo.writeMicroseconds(2000);
  } else {
    monServo.writeMicroseconds(1000);
  }
  delay(200); // Petite pause pour éviter les mesures trop rapides
}
 
                                                    
