Piloter un servomoteur – Arduino

Un servomoteur (souvent abrégé en « servo ») est un moteur capable de maintenir une  position, qui est vérifiée en continu et corrigée en fonction de la mesure. C’est donc un système asservi.

Les servomoteurs sont commandés par l’intermédiaire de trois fils qui permettent d’alimenter le moteur et de lui transmettre des consignes de position sous forme PWM.

 

Généralement, le fil brun est la masse (GND), le fil rouge est l’alimentation (+5V) et le fil jaune est le fil de commande.

La durée des impulsions détermine l’angle absolu de l’axe de sortie et donc la position du bras de commande du servomoteur. Le signal est répété périodiquement, en général toutes les 20 millisecondes, ce qui permet à l’électronique de contrôler et de corriger continuellement la position angulaire de l’axe de sortie, cette dernière étant mesurée par le potentiomètre.

 

 

Il est conseillé de ne pas utiliser la sortie 5V de l’Arduino, mais une alimentation externe.

Montage :

 

Code :

Ce code permet de définir 3 positions pour le servomoteur (0°, 90° et 180°). Pour bien marquer les positions, on effectue une pause de 2s entre les changements.

/* Inclut la librairie Servo pour manipuler le servomoteur */
#include <Servo.h>

/* Créer un objet Servo pour contrôler le servomoteur */
Servo monServomoteur;

void setup() {

// Attache le servomoteur à la broche 2
monServomoteur.attach(2);
Serial.begin(9600);
}

void loop() {


Serial.println("Servo : 0");
// Définir la position 0°
monServomoteur.write(0);
delay(2000);

Serial.println("Servo : 90");
// Définir la position 90°
monServomoteur.write(90);
delay(2000);

// Définir la position 180°
Serial.println("Servo : 180");
monServomoteur.write(180);
delay(2000);

}
Utilisation d'un servomoteur

Un commentaire

Rejoignez la conversation

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.