Tags -

Niveau(x) scolaire(s)
Pour en savoir plus

Le servomoteur (rotation limitée)

et en particulier le modèle SG90 utilisé en classe

Présentation

Présentation de la "bête"

PNG - 108.1 ko

Un servo moteur est un moteur qui est asservi.

Dans un servomoteur, il y a un système d’engrenages associé à un arbre de rotation qui peut être piloté avec une précision d’un degré (angle) et avec une amplitude de 0 à 180 degrés(cas le plus fréquent).

Le servomoteur est composé d’un moteur électrique mécaniquement lié à un potentiomètre.

L’electronique à l’intérieur du servomoteur transforme une information complexe (largeur d’impulsion PWM) en position physique : Quand le servo est commandé, le moteur sera actionné jusqu’à atteindre la valeur du potentiomètre correspondante à la position demandée.

Heureusement, il existe une librairie pour Arduino qui simplifie la gestion d’un servomoteur : peu de commandes sont nécessaires pour piloter correctement un servomoteur. Il suffit d’indiquer l’angle de rotation souhaité.

Généralement, un kit de 3 extrêmités en plastique et des vis est fournit avec le servomoteur SG90 pour pouvoir facilement le relier aux éléments que l’on veut déplacer (mouvement de rotation) sur la maquette.

Caractéristiques du SG90

Caractéristiques du SG90

CaractéristiquesInformations
Dimension 22 mm x 11.5 mm x 22.5 mm
Poids net 9 g
Vitesse de fonctionnement 0,12 secondes / 60 degrés (4.8V à vide)
Amplitude de rotation 180°
Couple de blocage (4.8V) 17,5 oz / in (1 kg/cm)
Plage de température -30 à +60°C
Temps de réaction 7 microsecondes
Tension de fonctionnement 3.0V 7.2V, conseillée 5V
Connexion 3 fils (+VCC, Masse, Commande)

Le servomoteur SG90 convient pour tous les types de jouets radio-commandés, modèles réduits, robots…
Le rapport qualité / prix est excellent.
Il est compatible avec toutes les cartes Arduino, Raspberry Pi, Picaxe et autres cartes qui permettent de piloter des actionneurs (comme le servomoteur).

Librairie Arduino

On utilise la librairie Servo Library pour pouvoir piloter facilement ce module avec un kit Arduino. On peut ainsi assez facilement positionner le servomoteur en fonction d’un angle de rotation (généralement entre 0 et 180 degrés).

Cette librairie est installée automatique avec l’IDE Arduino. Il n’y a donc pas d’action nécessaire pour pouvoir utiliser cette librairie dans vos programmes (il faut bien sûr quand même indiquer dans le programme que l’on souhaite utiliser cette librairie …).

PNG - 53.9 ko
Servo Library (Arduino.cc)
Site officiel pour l’IDE Arduino.

Exemple pour Arduino

Cet exemple est tiré du site officiel pour Arduino.

/* Sweep
by BARRAGAN <http://barraganstudio.com>
This example code is in the public domain.

modified 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Sweep
*/

#include <Servo.h>

Servo myservo;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
 myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() {
 for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
   // in steps of 1 degree
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(15);                       // waits 15ms for the servo to reach the position
 }
 for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
   myservo.write(pos);              // tell servo to go to position in variable 'pos'
   delay(15);                       // waits 15ms for the servo to reach the position
 }
}