Skip to main content

Qu'est ce qu'un servo-moteur ?

I Introduction

Ce que je vous propose dans ce tutoriel c'est de découvrir les Servomoteurs. il en existe deux type :

  • A contrôle d'angle
  • A contrôle de vitesse de rotation

Les premiers ne tournent pas en continu, mais en général entre 0° et 180° et vous pouvez contrôler leur angle de rotation. Très pratique quand vous voulez faire un bras robotisé, piloter l’orientation des roues avant d'une voiture, ou bien contrôler un petit mécanisme. Les Servomoteurs suivants sont très pratiques lorsque vous souhaitez faire tourner un objet en contrôlant sa vitesse, par exemple des roues! :

tiptopboards.com_169-thickbox_mini-servo-moteur-sg90-9g-mod_c3_a9lisme-arduino.jpg

Ce sont des Servomoteurs à contrôle d'angle sur 180° et le tutoriel va donc porter sur ce type de moteur.

II Fonctionnement

https://fr.wikipedia.org/wiki/Servomoteur --> fonctionnement

Les Servomoteurs intègrent au sein d'un même boitier un moteur à courant continu, un potentiomètre, un réducteur et un circuit de contrôle. L'idée est que la valeur d'angle est mesurée grâce au potentiomètre et le circuit de contrôle fait tourner le moteur et corrige l'orientation. Voila une image qui donne une idée du fonctionnement interne:

upload.wikimedia.org_wikipedia_commons_d_d3_micro_servo.jpg

vue-interne-dun-servomoteur-sans-lelectronique-de-commande.jpg

Vous l'avez surement remarqué, le Servomoteur a trois fils. Le fil marron correspond à la masse, le fil rouge au 5 Volts et le fil orange à l'envoi de données. C'est par le fil orange que nous allons envoyer le signal pour la commande de l'angle voulu au Servomoteur.

L’instruction par le fil orange s'envoie sous la forme d'un signal PWM (Pulse Width modulation=Modulation en largeur d'impulsion). Le principe est que l'envoi d'instruction se fait par un signal électrique qui passe de façon régulière et rapide (30-50Hz ou 300Hz) de 0 à 5 Volts. La valeur de l'angle voulu est définie par le rapport entre le temps où le signal est à 5 Volts et le temps où celui-ci est à 0 Volt. Par exemple pour un angle de 0°, on envoie 5V pendant 1ms puis 0V pendant 19ms : Le signal est à 5V pendant 5% du temps (1ms/20ms). Une image vous donnera une meilleure idée:

TiemposServo.png

Source : https://upload.wikimedia.org/wikipedia/commons/thumb/f/f6/TiemposServo.svg/220px-TiemposServo.svg.png 

Servomoteur contrôlé en position "180°" ou en vitesse "360°"

https://www.makerguides.com/how-to-control-a-360-degree-servo-motor-with-arduino/#What_makes_a_continuous_servo_motor_special 

https://www.atelierdelarobotique.fr/servomoteur-standard-vs-servomoteur-a-rotation-continue-avec-arduino-programmation-et-applications#elementor-toc__heading-anchor-2 

Programmation de Servomoteur avec mBlock :

Pour programmer un servomoteur a l'aide de mBlock il vous faut donc une Arduino Nano et la connecter a votre PC

Pour plus d'informations sur l'Arduino Nano : https://innovation.iha.unistra.fr/books/robotique-educative/page/quest-ce-que-larduino

Pour contrôler un servomoteur il faut principalement utiliser la catégorie de blocs "Broche" dans la quel vous trouverez  le bloc le plus important pour utiliser un servomoteur "set servo pin 0 angle as 90" se qui signifie "mettre le servo du pin 0 a l'angle 90".

image.png

avec ce bloc vous pouvez donc faire que votre servomoteur tourne a l'angle de votre choix.

En fonction de votre servomoteur vous avez une limite d'angle, pour les servomoteurs 180° vous possédez une limite de 180° se qui signifie que votre servomoteur peux uniquement tourner de 0° a 180°. Pareil pour les moteurs 360° ect...

Exercice - Comprendre et maitriser le fonctionnement d'un servomoteur

Objectif pédagogique

À la fin de cet exercice, les élèves seront capables de :

  • comprendre le principe de fonctionnement d’un servomoteur,

  • contrôler précisément son angle de rotation,

  • utiliser des boucles pour automatiser un mouvement.

Étape 1 – Faire bouger le servomoteur de 0° à 180°

Objectif

Découvrir comment positionner un servomoteur à un angle précis.

Consigne
  1. Brancher le servomoteur :

    • fil signal → broche 9

    • alimentation → 5V

    • masse → GND

  2. Créer un programme qui :

    • place le servomoteur à ,

    • attend 2 secondes,

    • place le servomoteur à 180°.

Questions à poser aux élèves
  • Que représente l’angle du servomoteur ?

  • Pourquoi le servomoteur ne tourne-t-il pas en continu ?

  • Que se passe-t-il si on remplace 180° par 90° ?

Validation :

image.png

 

Étape 2 – Faire bouger le servomoteur en boucle (0° ↔ 180°)

Objectif

Comprendre l’utilisation des boucles pour répéter une action automatiquement.

Consigne
  1. Reprendre le programme de l’étape 1.

  2. Ajouter une boucle “pour toujours”.

  3. Dans la boucle :

    • positionner le servomoteur à ,

    • attendre 1 seconde,

    • positionner le servomoteur à 180°,

    • attendre 1 seconde.

Questions à poser aux élèves
  • À quoi sert la boucle ?

  • Que se passe-t-il si on enlève les temps d’attente ?

  • Comment modifier la vitesse du mouvement ?

Validation :

image.png

 

Défi (optionnel)
  • Ajouter une position intermédiaire (90°).

  • Modifier les temps d’attente pour simuler l’ouverture d’un couvercle.

  • Imaginer une application réelle (barrière, bras, couvercle de poubelle).

Conclusion pour l’animateur

Cet exercice permet aux élèves de comprendre concrètement :

  • la différence entre position et rotation continue,

  • le lien entre programmation et mouvement réel,

Programmation d'un servomoteur avec Arduino IDE :

Principe

Le servomoteur va :

  • aller à ,

  • attendre,

  • aller à 180°,

  • recommencer en boucle.

Branchement
  • Fil signal (jaune/orange) → broche 9

  • Fil rouge → 5V

  • Fil marron/noir → GND

#include <Servo.h>   // Bibliothèque pour contrôler le servomoteur

Servo monServo;      // Création de l’objet servomoteur

void setup() {
  monServo.attach(9);   // Le servomoteur est connecté à la broche 9
}

void loop() {
  monServo.write(0);    // Position à 0°
  delay(1000);          // Attendre 1 seconde

  monServo.write(180);  // Position à 180°
  delay(1000);          // Attendre 1 seconde
}

Exercice – Comprendre et maîtriser un servomoteur avec Arduino

Objectif pédagogique

À la fin de l’exercice, les élèves seront capables de :

  • comprendre le rôle d’un servomoteur,

  • utiliser la bibliothèque Servo.h,

  • contrôler un angle,

  • modifier un programme existant.

Étape 1 – Tester le mouvement du servomoteur

Consigne
  1. Copier le code fourni dans l’Arduino IDE.

  2. Téléverser le programme sur l’Arduino Nano.

  3. Observer le comportement du servomoteur.

Questions pour les élèves
  • Que fait le servomoteur ?

  • À quoi sert la fonction delay() ?

  • Que représente la valeur 180 ?

Validation :
#include <Servo.h>

Servo monServo;

void setup() {
  monServo.attach(9);   // Connexion du servomoteur à la broche 9
}

void loop() {
  monServo.write(0);    // Position à 0°
  delay(1000);          // Pause de 1 seconde

  monServo.write(180);  // Position à 180°
  delay(1000);          // Pause de 1 seconde
}

Étape 2 – Modifier les angles

Consigne

Modifier le programme pour que :

  • le servomoteur aille à 90° au lieu de 180°,

  • puis revienne à .

Validation :
#include <Servo.h>

Servo monServo;

void setup() {
  monServo.attach(9);
}

void loop() {
  monServo.write(0);    // Position initiale
  delay(1000);

  monServo.write(90);   // Position intermédiaire
  delay(1000);
}

Étape 3 – Défi (optionnel)

Défi 1

Ajouter une troisième position :

  • 0° → 90° → 180° → 0°

Validation :
#include <Servo.h>

Servo monServo;

void setup() {
  monServo.attach(9);
}

void loop() {
  monServo.write(0);      // Couvercle fermé
  delay(2000);

  monServo.write(90);     // Couvercle ouvert
  delay(2000);
}

Défi 2

Changer les temps d’attente :

Validation :
#include <Servo.h>

Servo monServo;

void setup() {
  monServo.attach(9);
}

void loop() {
  for (int angle = 0; angle <= 180; angle++) {
    monServo.write(angle);
    delay(15);
  }

  for (int angle = 180; angle >= 0; angle--) {
    monServo.write(angle);
    delay(15);
  }
}

Conclusion pédagogique

Cet exercice permet aux élèves de comprendre :

  • comment un actionneur fonctionne,

  • comment un programme contrôle un mouvement réel,

  • les bases indispensables pour des projets plus avancés (robot, bras articulé, couvercle automatique).

👉 Prochaine étape logique : relier le servomoteur à un capteur (ultrasons ou bouton) pour déclencher le mouvement automatiquement.