Skip to main content

Programmation d'un servomoteur

Programmation des Servomoteurs avec mBlock et Arduino IDE

Objectif :

Comprendre le fonctionnement des servomoteurs et apprendre à les programmer avec mBlock et Arduino IDE.


1. Introduction aux Servomoteurs

Qu’est-ce qu’un servomoteur ?

Un servomoteur est un moteur à rotation limitée, généralement 180°, qui est contrôlé par un signal PWM (Pulse Width Modulation). Il est utilisé dans de nombreux projets tels que les bras robotisés, les portes automatiques et les robots éducatifs.

➡️ Pour en savoir plus sur les servomoteurs, cliquez ici.


2. Configuration et Programmation avec mBlock

Présentation des blocs spécifiques à la gestion des servomoteursimage.png

Dans mBlock, la gestion des servomoteurs se fait à l’aide d’un bloc dédié permettant de définir un angle précis entre 0° et 180°.

Branchement d'un servomoteur à un Arduino Nano

Un servomoteur possède trois câbles :

  • Noir ou Marron → GND (Masse)

  • Rouge → 5V (Alimentation)

  • Jaune ou Orange → Signal (Entre les broches 2 et 13 du Nano)

  • Capture d’écran 2025-03-21 142828.png

Exercice 1 : Programmer un servomoteur en boucle

Consigne : Programmer un servomoteur 180° pour qu'il effectue en boucle un mouvement de 0° à 180° puis de 180° à 0°, avec une pause de 2 secondes entre chaque mouvement.

Correction :

image.png

3. Programmation d’un Mouvement Automatisé avec mBlock

Objectif

Créer un programme permettant :
✅ De faire bouger le servomoteur progressivement de 0° à 180° et inversement.
✅ De répéter le mouvement avec une boucle continue.

Correction :

image.png

4. Configuration et Programmation avec Arduino IDE

Exercice 1 : Programmer un servomoteur pour un mouvement en boucle

Consigne : Faire osciller un servomoteur de 0° à 180° et inversement, avec une pause de 2 secondes entre chaque mouvement.

Correction : Code Arduino IDE
#include <Servo.h>

Servo monServo; // Création de l'objet Servo

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

void loop() {
  monServo.write(0);   // Position à 0°
  delay(2000);         // Pause de 2 secondes
  monServo.write(180); // Position à 180°
  delay(2000);         // Pause de 2 secondes
}

5. Programmation d’un Mouvement Automatisé avec Arduino IDE

Objectif

Créer un programme permettant :
✅ De faire bouger progressivement le servomoteur de 0° à 180° et inversement.
✅ D’utiliser une boucle pour répéter ce mouvement en continu.*

Correction :
#include <Servo.h>

Servo monServo;

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

void loop() {
  for (int pos = 0; pos <= 180; pos++) { // De 0° à 180°
    monServo.write(pos);
    delay(15); // Ajuste la vitesse du mouvement
  }
  
  for (int pos = 180; pos >= 0; pos--) { // De 180° à 0°
    monServo.write(pos);
    delay(15);
  }
}


6. Discussion et Applications

Applications pratiques

  • 🤖 Bras robotisé

  • 🗑️ Poubelle connectée

  • 🤖 Little Bot

Questions et suggestions d’amélioration

✅ Ajouter un potentiomètre pour contrôler l’angle du servomoteur.
✅ Utiliser un bouton poussoir pour déclencher le mouvement.
✅ Remplacer le servomoteur 180° par un servomoteur à rotation continue.