Skip to main content

Fonctionnement et programmation des composants

Fonctionnement et programmation des composants 

Objectifs pédagogiques :

  • Comprendre le fonctionnement de l’Arduino Nano et son Shield.
  • Découvrir le rôle d’un capteur à ultrasons (HC-SR04).
  • Apprendre comment fonctionne un servomoteur et comment le contrôler.
  • Apprendre à câbler ces composants ensemble correctement pour un projet Arduino.

Matériel nécessaire :

  • 1 x Arduino Nano
  • 1 x Shield pour Arduino Nano (ou une breadboard pour faciliter les connexions)
  • 1 x Capteur à ultrasons HC-SR04
  • 2 x Servomoteur RC 360°
  • Fils de connexion
  • 1 x Câble USB pour programmer l’Arduino Nano
  • 1 x Ordinateur avec l’IDE Arduino installé

1. Introduction à l'Arduino Nano 

Qu'est-ce que l'Arduino ?

https://innovation.iha.unistra.fr/books/robotique-educative/page/quest-ce-que-larduino

2. Fonctionnement et programmation d'un servomoteur RC 360°

Comment fonctionne le servomoteur RC 360° ? Consulter cette page.

Ensuite, consultez cette page pour apprendre à programmer le servomoteur RC 360°.


3. Capteur à ultrasons HC-SR04 

Comment fonctionne le capteur à ultrasons ? Consulter cette page

https://innovation.iha.unistra.fr/books/robotique-educative/page/quest-ce-quun-capteur-a-ultrasons

4. Programmation d'un capteur à ultrasons HC-SR04 avec un servomoteur RC 360°

Vous avez vu comment programmer un servomoteur RC 360° et un capteur ultrasons individuellement. Maintenant, vous apprendrez à les utiliser en même temps. (voir partie "Programmation sur Mblock"

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 à .

Correction :

image.png

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 :

image.png

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 à .

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
}