Un servomoteur est un petit moteur dont l'axe tourne jusqu'à un angle donné et s'y arrête. Un moteur à courant continu classique tourne sans arrêt ; un servo va exactement à 90 degrés quand tu lui demandes 90 degrés et maintient la charge à cette position. Bras robotisés, supports de caméra pan-tilt, serrures automatiques et gouvernes des avions de modélisme sont actionnés par des servos.



Un servo contient quatre éléments : un petit moteur à courant continu, un réducteur qui baisse la vitesse et augmente le couple, un potentiomètre qui mesure la position de l'axe et un circuit de commande qui gère le tout. Le circuit compare en permanence l'angle demandé à l'angle lu par le potentiomètre et fait tourner le moteur jusqu'à ce que l'écart soit nul. Grâce à cette boucle fermée, le servo garde sa position même sous charge.
L'angle est transmis au servo par un signal PWM : une impulsion arrive toutes les 20 ms (50 Hz) et sa largeur fixe l'angle. Environ 1 ms correspond à 0°, 1,5 ms à 90° et 2 ms à 180°. La plupart des servos acceptent une plage de 0,5 à 2,5 ms ; les valeurs exactes varient un peu selon le modèle.
Découvre comment un servo se place à un angle donné, à quoi servent ses fils, comment le piloter avec Arduino et pourquoi il lui faut souvent une alimentation séparée.
Qu'est-ce qu'un servomoteur, comment fonctionne-t-il et comment le brancher sur Arduino ? SG90, MG90S et MG996R comparés, la bibliothèque Servo, l'alimentation et les erreurs fréquentes.
| Couleur du fil | Rôle | Branchement sur l'Arduino |
|---|---|---|
| Marron / noir | GND (masse) | GND |
| Rouge | Alimentation (+4,8–6 V) | 5V ou alimentation externe 5–6 V |
| Orange / jaune / blanc | Signal (PWM) | N'importe quelle broche numérique (par ex. 9) |

| Modèle | Couple (env.) | Engrenages | Pour quoi faire ? |
|---|---|---|---|
| SG90 | 1,8 kg·cm | Plastique | Tâches légères, premiers essais, pan-tilt |
| MG90S | 2,2 kg·cm | Métal | Même taille que le SG90, plus robuste |
| MG996R | 9–11 kg·cm | Métal | Bras robotisés, trappes et mécanismes lourds |
| FS90R | 1,5 kg·cm | Plastique | Rotation continue : petits robots à roues |


#include <Servo.h>
Servo servo; // servo nesnesi / servo object
const int POT_PIN = A0; // potansiyometre / potentiometer
void setup() {
servo.attach(9); // sinyal 9. pinde / signal on pin 9
}
void loop() {
int value = analogRead(POT_PIN); // 0–1023 oku / read 0–1023
int angle = map(value, 0, 1023, 0, 180); // açıya çevir / convert to angle
servo.write(angle); // servoyu döndür / move the servo
delay(15); // servo yetişsin / let the servo settle
}servo.write(angle) prend un angle de 0 à 180. Pour un contrôle plus fin, utilise servo.writeMicroseconds(1500) pour donner directement la largeur d'impulsion en microsecondes. Tu peux voir quelles broches de ta carte sont PWM et numériques dans l'outil de brochage.
Pour voir ce que tu peux construire avec des servos, jette un œil aux projets robots et moteurs de BlueGrays. Si tu débutes avec Arduino, lis d'abord Qu'est-ce qu'Arduino ? puis, pour monter le circuit, Qu'est-ce qu'une breadboard ?.
Les servos standard tournent d'environ 180° ; certains modèles font 90° ou 270°. Les servos à rotation continue tournent sans limite mais ne tiennent pas d'angle.
Pour un seul SG90 peu chargé, en test, oui. Pour plusieurs servos, des modèles puissants comme le MG996R ou des projets sous charge, utilise une alimentation externe 5–6 V et relie les masses.
La bibliothèque Servo gère jusqu'à 12 servos sur l'Arduino Uno et 48 sur la Mega. Pour beaucoup de servos, les cartes de commande I2C 16 canaux comme la PCA9685 sont plus pratiques.
Les causes les plus courantes sont une alimentation insuffisante, l'absence de masse commune et des fils de signal trop longs. Utilise une alimentation solide, ajoute un condensateur sur l'alimentation du servo et garde des fils courts.
Le servo, grâce à son retour de position, va à un angle précis et s'y maintient, généralement dans une plage de 180°. Le moteur pas à pas tourne pas à pas sans limite ; pour un positionnement précis il lui faut un driver, et il ne mesure pas sa propre position.