Skip to main content

Programmation d'un servomoteur RC 360°

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 servomoteurs

Pour un servomoteur RC 360° on va utiliser le bloc ci-dessous que l'on peut trouver dans l'extensions "Servo360" ou ici "servo.mext" à télécharger et faire un glisser-déposer sur Mblock.

image.png

        Numéro de broche                         vitesse du servomoteur (dans un sens entre [-100 et 0[ et dans l'autre entre ]0 et 100])

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 : Inverser le sens de rotation

Consigne : Programmer un servomoteur RC 360° pour qu'il effectue en boucle un changement de sens de rotation à vitesse maximale et cela toute les 2 secondes.

Correction :

image.png

3. Configuration et Programmation avec Arduino IDE

Exercice 2 : Inverser le sens de rotation

Consigne : Programmer un servomoteur 360 pour qu'il effectue en boucle un changement de sens de rotation à vitesse maximale et cela toute les 2 secondes.

Correction :

#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.writeMicroseconds(2000);   // Vitesse maximale dans un sens 
  delay(2000);         // Tourne pendant 2 secondes 
  monServo.writeMicroseconds(1000);   // Vitesse maximale dans l'autre sens 
  delay(2000);         // Tourne pendant 2 secondes
}

 

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