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! :
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:
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:
Servomoteur contrôlé en position "180°" ou en vitesse "360°"
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".
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
-
Brancher le servomoteur :
-
fil signal → broche 9
-
alimentation → 5V
-
masse → GND
-
-
Créer un programme qui :
-
place le servomoteur à 0°,
-
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
déplace
entre
positions
Étape 2 – Faire bouger le servomoteur en boucle (0° ↔ 180°)
Objectif
Comprendre l’utilisation des boucles pour répéter une action automatiquement.
Consigne
-
Reprendre le programme de l’étape 1.
-
Ajouter une boucle “pour toujours”.
-
Dans la boucle :
-
positionner le servomoteur à 0°,
-
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
un
répétitif
entre
et
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 à 0°,
-
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
-
Copier le code fourni dans l’Arduino IDE.
-
Téléverser le programme sur l’Arduino Nano.
-
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 à 0°.
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);
}
Le servomoteur
positionne
à
demandé.
É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 pour :
- :
simulerl’ouverture et la fermeture d’un couvercle de poubelle.
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.






