Le servomoteur MG996 en version 360° est un servomoteur à engrenages métalliques dont l’axe ne s’arrête à aucun angle : il tourne en continu, dans un sens ou dans l’autre, aussi longtemps que la consigne le demande. C’est la version « rotation continue » du classique MG996R de TowerPro — un boîtier de 55 g, un train d’engrenages tout métal et un couple de la classe des 10 kg·cm — mais une électronique dont le retour de position a été neutralisé.
La différence tient en une phrase : là où un servo de position reçoit un angle, celui-ci reçoit une vitesse et un sens. L’impulsion de 1,5 ms qui immobilisait le premier devient ici l’arrêt ; en s’en écartant d’un côté ou de l’autre, l’axe prend de la vitesse dans un sens ou dans l’autre. C’est ce qui en fait l’entraînement le plus direct pour un petit robot : deux exemplaires, et l’on obtient une base qui avance, recule et tourne sur place, sans driver de moteur ni pont en H à câbler.
Il ne sait pas, en revanche, à quel angle il se trouve : il n’a plus de position à tenir, donc plus rien à mesurer ni à corriger. Pour orienter une pièce avec précision — une pince, une direction, une articulation — c’est le MG995 à course de 180° qu’il faut choisir, pas ce modèle.
Caractéristiques techniques
| Modèle | TowerPro MG996R, version rotation continue — servomoteur à engrenages métalliques sans butée ni position de repos |
|---|---|
| Alimentation | 4,8 à 7,2 V continu. La notice TowerPro donne 4,8 à 6,6 V ; 6 V est la tension de meilleur rendement, 5 V celle de la plupart des montages |
| Couple | Environ 9,4 kg·cm sous 4,8 V et 11 kg·cm sous 6 V selon TowerPro. Les revendeurs de la version 360 annoncent jusqu’à 13 kg·cm sous 6 V — c’est de là que vient le « 13KG » du titre. La classe du modèle est celle des 10 kg·cm, à comparer aux 2 kg·cm d’un micro-servo |
| Vitesse de rotation | 0,17 à 0,19 s pour 60° sous 4,8 V, 0,14 à 0,15 s sous 6 V : un tour complet en une seconde environ, à vide |
| Course | Rotation continue dans les deux sens, sans butée mécanique. Aucun retour de position : le servo ne sait pas où il en est |
| Commande | Impulsion répétée toutes les 20 ms (50 Hz). Environ 1,5 ms = arrêt, 1,0 ms = plein régime dans un sens, 2,0 ms = plein régime dans l’autre. Le point d’arrêt exact varie d’un exemplaire à l’autre et se règle par mesure |
| Engrenages | Train entièrement métallique, arbre de sortie sur double roulement à billes |
| Sortie | Couronne métallique cannelée, qui reçoit les palonniers fournis |
| Fils | 3 — masse (brun), alimentation (rouge, au milieu), signal (orange) |
| Câble | Environ 30 cm, terminé par un connecteur femelle à 3 broches au format des récepteurs de modélisme (JR, Futaba) — le même connecteur que sur les autres servos du catalogue |
| Consommation | Environ 10 mA au repos, 170 à 500 mA en rotation libre, et plus d’un ampère à l’instant où l’axe force : les relevés publiés vont de 1,4 A (TowerPro) à 2,5 A sous 6 V, axe bloqué. C’est cette pointe qui dimensionne l’alimentation |
| Zone morte | Très étroite : 1 µs selon TowerPro, 5 µs selon les autres notices. Une consigne qui s’en écarte de moins que cela n’entraîne aucun mouvement |
| Dimensions | 40,7 × 19,7 × 42,9 mm hors palonnier, avec deux pattes de fixation latérales percées chacune de deux trous |
| Poids | 55 g |
| Température de service | 0 à 55 °C |
| Contenu du lot | Le servomoteur, un jeu de palonniers, quatre silentblocs en caoutchouc, quatre œillets en laiton et les vis de fixation |
Servomoteur de position ou rotation continue : ce qui change
| La consigne | Un angle pour un servo de position, une vitesse et un sens pour celui-ci. Le programme n’est pas le même, même si le câblage est identique |
|---|---|
| La mesure interne | Un potentiomètre dit à l’électronique où en est l’axe. Ici il est neutralisé : la carte croit en permanence être au neutre et se contente d’entraîner le moteur dans un sens ou dans l’autre |
| La butée | Un servo de position est limité mécaniquement à environ 180° (moins pour le MG996R, qui s’arrête vers 160°). Cette version n’a plus de butée : elle peut faire plusieurs tours |
| Le maintien en position | Un servo de position résiste quand on pousse son palonnier. Celui-ci ne tient rien : il tourne ou il s’arrête, mais ne s’oppose pas à une rotation |
| Ce qu’il fait bien | Entraîner une roue, une plateforme tournante, une vis sans fin, un convoyeur, faire balayer un capteur sur 360° |
| Ce qu’il ne fait pas | Viser un angle. Pour cela il faut un servo de position, et sa mesure |
| Face au moteur réducteur | Un moteur réducteur DC entraîne lui aussi en continu, mais il réclame un driver et une alimentation à sa tension, et il tourne à sa vitesse naturelle. Le servo en rotation continue intègre l’électronique de commande et accepte une consigne variable sur un seul fil de signal |
Brochage : trois fils, trois couleurs
| Brun | La masse. À relier au GND de la carte et à la borne moins de l’alimentation du servomoteur. |
|---|---|
| Rouge | L’alimentation, de 4,8 à 7,2 V. Sur ce connecteur à trois broches, c’est le fil du milieu : le plus et le moins ne peuvent pas s’inverser en retournant la prise. |
| Orange | Le signal, à relier à une sortie numérique — D9 dans le programme ci-dessous. C’est le seul fil que la carte doit fournir. |
Le connecteur est femelle et au format des récepteurs de modélisme. Il se clipse sur trois broches mâles, celles d’une barrette ou de trois fils plantés dans une plaque d’essai, et ne rentre pas directement dans la plaque, dont les trous attendent des broches mâles.
L’alimentation : le point qui décide du montage
C’est la cause de la moitié des servomoteurs qui « ne marchent pas », et elle n’a rien à voir avec le programme. Un MG996 consomme une dizaine de milliampères au repos, mais il appelle plus d’un ampère à l’instant où il démarre, et davantage encore quand l’axe force. Or une carte alimentée par câble USB ne dispose que de 500 mA pour l’ensemble de ses composants, et sa broche 5V ne fait que donner accès à cette réserve.
Ce que l’on observe alors : l’axe démarre par à-coups au lieu de prendre sa vitesse franchement, le sens change tout seul, ou l’Arduino redémarre à chaque mouvement — son écran de veille se répète sur le port série. Un servo en rotation continue est même plus sensible qu’un servo de position sur ce point, parce qu’il consomme pendant tout le temps où il tourne, et non seulement pendant qu’il se déplace.
La solution tient en une phrase : alimenter le servomoteur par une source dédiée, et relier les deux masses. Pour un montage posé, l’alimentation 5 V 2 A convient : sa sortie arrive sur une prise cylindrique qu’il faut couper pour serrer les deux fils dans un bornier, le pôle positif d’un côté, la masse de l’autre. Pour un robot mobile, le support de piles 4×AA fournit les 6 V nominaux du modèle.
La masse commune n’est pas facultative : sans elle, le signal du servomoteur n’a plus de référence et le moteur part dans un sens imprévisible. Et le courant, lui, ne traverse jamais la carte : seul le fil de signal la concerne.
Mini-projet : une rotation continue à vitesse réglable
Le geste de base, celui qui servira ensuite dans tous les montages, consiste à faire tourner l’axe à une vitesse choisie, dans un sens ou dans l’autre, et à pouvoir l’arrêter franchement. Le programme ci-dessous confie ce réglage à un joystick analogique : au repos l’axe est immobile, en poussant le manche il prend de la vitesse, et en le poussant de l’autre côté il change de sens — exactement la commande d’un robot roulant.
Ce qu’il faut
| Le moteur | Ce servomoteur MG996 360, avec un palonnier monté sur la couronne de sortie pour voir tourner l’axe |
|---|---|
| La carte | Uno R3 + câble USB |
| La commande | Le joystick analogique : son axe horizontal se lit sur une entrée analogique et donne la vitesse comme le sens |
| L’alimentation du servo | L’alimentation 5 V 2 A du paragraphe précédent, ou un porte-pile 6 V pour un montage mobile |
| Les liaisons | 10 × fil mâle-femelle : l’extrémité femelle se clipse sur les broches de la carte, l’extrémité mâle reçoit le connecteur du servo |
Le câblage
| Servo — brun | → borne moins de l’alimentation 5 V, puis → GND de l’Arduino |
|---|---|
| Servo — rouge | → borne plus de l’alimentation 5 V |
| Servo — orange | → D9 de l’Arduino |
| Joystick — VCC | → 5V de l’Arduino |
| Joystick — GND | → GND de l’Arduino |
| Joystick — VRx | → A0 de l’Arduino |
| Alimentation — moins | → GND de l’Arduino : c’est la masse commune, sans elle le servo ne peut pas interpréter le signal |
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte :
/*
* Servomoteur MG996 360 : rotation continue a vitesse reglee au joystick
* Carte : Arduino Uno R3 - signal du servo sur D9 - joystick sur A0
* Alimentation : source 5 V separee pour le servo, masse commune avec l'Arduino
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "Servo.h"
Servo moteur;
const byte PIN_SERVO = 9;
const byte PIN_JOYSTICK = A0;
const int ARRET = 1500; // largeur d'impulsion qui immobilise l'axe (a ajuster)
const int ZONE_MORTE = 40; // ecart, en microsecondes, ou l'axe reste immobile
const int BUTEE = 400; // ecart maximal autour de l'arret, regle la vitesse
void setup() {
moteur.attach(PIN_SERVO);
moteur.writeMicroseconds(ARRET); // on part a l'arret
delay(500);
}
void loop() {
int lecture = analogRead(PIN_JOYSTICK); // environ 512 au repos
int ecart = map(lecture, 0, 1023, -BUTEE, BUTEE);
if (abs(ecart) > ZONE_MORTE) {
moteur.writeMicroseconds(ARRET + ecart); // le signe donne le sens
} else {
moteur.writeMicroseconds(ARRET); // manche au centre : arret franc
}
delay(20);
}Comment ça marche
moteur.attach(9)réserve la broche et fait générer par la bibliothèque la trame de commande : une impulsion toutes les 20 ms, envoyée en tâche de fond, sans que la boucle principale ait à s’en occuper.analogRead()renvoie une valeur de 0 à 1023. Le manche au repos donne environ 512 : c’est cette position qui doit correspondre à l’arrêt.map()transforme cette plage en un écart de -400 à +400 microsecondes autour de 1500. Le signe de l’écart donne le sens de rotation, sa valeur donne la vitesse. AvecBUTEEà 400, l’axe n’atteint jamais les extrêmes de la commande : il tourne déjà à pleine vitesse et reste dans une plage où la plupart des exemplaires se comportent proprement.writeMicroseconds()envoie directement une largeur d’impulsion. C’est la commande à utiliser sur ce modèle :write()arrondit à la classe d’angle la plus proche, et l’on ne dispose alors que de 1,5 ms (arrêt) et des deux extrêmes (plein régime), sans réglage intermédiaire.ZONE_MORTEévite le frémissement au repos. Un joystick ne revient jamais exactement au centre, et une consigne à quelques microsecondes de l’arrêt suffit à faire ramper lentement l’axe.delay(20)aligne la boucle sur la période de la trame : recalculer plus vite ne changerait rien à la commande.
Pour aller plus loin
Pour une vitesse encore plus franche, portez BUTEE à 500 : l’écart couvre alors toute la plage utile, de 1000 à 2000 microsecondes. Pour un robot roulant, dupliquez le servo : le même programme avec deux broches de signal et deux servomoteurs donne une base à deux roues motrices, et il suffit de faire tourner les deux en sens opposés pour tourner sur place. Et si les deux exemplaires ne tournent pas à la même vitesse pour la même consigne — c’est fréquent — corrigez par un coefficient appliqué à l’écart de l’un des deux plutôt qu’en espérant deux moteurs identiques.
Régler le point d’arrêt
Sur un servo en rotation continue, le neutre n’est jamais exactement à 1,5 ms. Un exemplaire s’arrête à 1480 microsecondes, un autre à 1520, et celui qui n’est pas réglé rampe lentement au repos — ce que l’on prend à tort pour un défaut. Le réglage se fait en trois minutes :
- téléversez le programme ci-dessus avec
BUTEEà 0, de façon à n’envoyer que la valeurARRET; - si l’axe tourne encore, décrémentez ou incrémentez
ARRETpar pas de 10 microsecondes, téléversez, et observez : on resserre par pas de 5 puis de 2 autour de la valeur où il s’immobilise ; - notez la valeur trouvée en tête de programme, elle reste valable pour cet exemplaire.
Le testeur de servomoteur fait le même travail sans ordinateur : son potentiomètre balaie la largeur d’impulsion et il suffit de repérer la position où l’axe s’arrête. C’est aussi l’outil pour vérifier un servo avant de le monter : un exemplaire sain tourne régulièrement dans les deux sens, sans grogner ni chauffer à vide.
Questions fréquentes
Comment savoir si le modèle reçu est bien la version 360° ?
En tournant la couronne de sortie à la main : sur la version 360° elle tourne librement et indéfiniment, alors que celle d’un servo de position s’arrête contre une butée interne au bout d’un demi-tour environ. L’autre contrôle se fait sous tension : à 1,5 ms l’axe d’un modèle 360° s’immobilise mais ne résiste pas si on le pousse, tandis qu’un servo de position maintient activement son angle. Les deux versions partagent le même boîtier et la même étiquette, d’où la confusion fréquente entre les deux références.
Puis-je m’en servir pour orienter une pièce à un angle précis ?
Non, et c’est la limite du modèle : sans retour de position, aucune commande ne permet de savoir où en est l’axe, donc aucun angle ne peut être tenu. Une pince, une direction ou une articulation demandent un servo de position. Si l’angle à atteindre correspond toujours à un tour complet ou à un nombre de tours connu, la difficulté se contourne avec un contact de fin de course, mais jamais avec la seule commande du servo.
Puis-je l’alimenter depuis la broche 5 V de la carte ?
Non, pas sur un montage réel. La broche 5V de l’Arduino ne fournit aucune réserve : elle donne accès à ce que reçoit la carte. Avec un câble USB, l’ensemble du montage dispose de 500 mA, alors que ce servomoteur demande à lui seul plus d’un ampère en charge. Un servo, une alimentation dédiée, une masse commune : c’est le montage qui fonctionne.
Combien de servomoteurs puis-je piloter avec une carte ?
La bibliothèque Servo en commande jusqu’à douze sur une Uno, mais la limite réelle est le courant, pas le nombre de broches. Au-delà de deux servomoteurs de cette taille, le montage passe par un driver I2C PCA9685 : il génère seize impulsions à lui seul à partir de deux fils de données, et reçoit une alimentation moteur indépendante de celle du microcontrôleur. Un robot à quatre roues motrices se câble ainsi sans occuper douze broches.
L’axe tourne lentement tout seul quand je ne demande rien
Le point d’arrêt n’est pas réglé : c’est le cas normal d’un exemplaire sorti d’usine, et le paragraphe précédent donne la procédure. Vérifiez aussi l’alimentation — une source faible fait varier la largeur d’impulsion vue par l’électronique du servo, qui interprète ce bruit comme une consigne. Et retirez la consigne au lieu de la mettre au neutre : envoyer une impulsion de 1,5 ms à un servo dont le neutre réel est à 1,48 ms, c’est lui demander de tourner doucement.
Le servo chauffe alors qu’il ne tourne pas
Il force contre quelque chose, ou il est bloqué. Un servomoteur en rotation continue n’a aucune protection thermique : axe arrêté par un obstacle, il consomme son courant de décrochage — jusqu’à 2,5 A sous 6 V — et chauffe jusqu’à se détériorer. Assurez-vous que la mécanique est libre sur tout le débattement et que la charge reste inférieure à son couple, en tenant compte du bras de levier : un couple de 11 kg·cm ne soulève que 1,1 kg au bout d’un palonnier de 10 cm.
Combien de temps peut-il tourner sans s’arrêter ?
Le modèle est prévu pour un usage intermittent, comme tous les servos de modélisme. En rotation continue à vide il tient sans peine de longues minutes, mais la consommation en charge et l’échauffement du moteur limitent l’usage à des mouvements plutôt qu’à un fonctionnement permanent. Pour faire tourner une charge plusieurs heures d’affilée, un moteur réducteur avec son driver est la réponse adaptée, et ce servomoteur reste la solution des mécaniques ponctuelles. Ne forcez jamais l’axe à la main : le train métallique transmet directement l’effort au moteur.
À combiner avec
Pour transformer un montage à deux servos en robot pilotable depuis un téléphone, le module Bluetooth HC-05 se branche sur les deux fils du port série et remplace le joystick par une application : le programme est identique, seule la source de la valeur change. Deux servomoteurs en rotation continue, ce module, un support de piles et une plaque de prototypage suffisent à faire une base roulante complète.










