Le servomoteur MG995 est le servomoteur standard de TowerPro, en engrenages métalliques : un boîtier de 55 g qui amène son axe à un angle précis et l’y maintient, avec un couple de la classe des 10 kg·cm. C’est trois à quatre fois la force d’un micro-servomoteur de 9 g, et c’est exactement ce qu’il faut dès qu’il y a quelque chose de lourd à déplacer : une pince, une barrière, une tourelle de caméra, la direction d’un véhicule, une articulation de bras robotisé.
Un servomoteur ne tourne pas comme un moteur : il compare en permanence sa position réelle à la consigne reçue et corrige l’écart. C’est ce qui permet de lui demander 45° et d’obtenir 45°, même si l’on appuie sur le palonnier. Sur un servomoteur à rotation continue, la même entrée devient au contraire une vitesse, et l’axe n’a plus de position à tenir.
Le lot contient de quoi le monter : un sachet de palonniers (simple, double, en croix et en disque), quatre silentblocs en caoutchouc, quatre œillets en laiton et la visserie, y compris la vis du palonnier.
Caractéristiques techniques
| Modèle | TowerPro MG995 — servomoteur à engrenages métalliques, course de 180° |
|---|---|
| Alimentation | 4,8 à 7,2 V continu. 6 V est la tension de meilleur rendement, 5 V celle de la plupart des montages |
| Couple de décrochage | Environ 9,4 kg·cm sous 4,8 V et 11 kg·cm sous 6 V ; selon les notices et la tension, les valeurs annoncées vont de 9 à 12 kg·cm. La classe du modèle est donc celle des 10 kg·cm, à comparer aux 2 kg·cm d’un micro-servo |
| Vitesse | 0,20 s pour 60° sous 4,8 V — 0,16 s sous 6 V, à vide |
| Course | 180° au total, soit environ 90° de part et d’autre du neutre |
| Commande | Impulsion répétée toutes les 20 ms : 1,5 ms au neutre, plage utile de 0,5 à 2,5 ms. Une seule sortie numérique suffit, la position ne dépend que de la largeur d’impulsion |
| Engrenages | Train entièrement métallique, arbre de sortie sur double roulement à billes |
| Fils | 3 — masse (brun), alimentation (rouge), 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 que sur les micros-servos |
| Consommation | Environ 10 mA au repos, 170 à 200 mA en rotation libre, et plus d’un ampère à l’instant où il force : les relevés publiés vont de 1,2 à 2,5 A selon la tension. C’est cette pointe qui dimensionne l’alimentation |
| Zone morte | 5 µs : 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 |
Engrenages métalliques et double roulement : ce qui change à l’usage
Sur un servomoteur bon marché, le point faible n’est pas le moteur mais le train d’engrenages en nylon. Il est léger et silencieux, mais une dent cède le jour où le palonnier bute contre un obstacle, ou quand on force l’axe à la main — et le servo se met alors à sauter des angles sans prévenir.
Ici le train est entièrement métallique et l’arbre de sortie repose sur deux roulements, un de chaque côté. Deux conséquences concrètes : le palonnier ne prend pas de jeu avec le temps, ce qui compte quand le servo doit tenir une position sous charge, et un blocage passager n’efface pas les dents. Cela ne protège pas de tout pour autant : un servo maintenu en butée pendant des heures chauffe et consomme pour rien, et un choc violent sur l’axe peut casser autre chose que les engrenages.
Le revers de la médaille tient au poids et à la consommation. Avec 55 g et plus d’un ampère en pointe, ce servomoteur n’est pas un composant de maquette d’avion : il se destine aux mécaniques posées, alimentées par un bloc secteur ou un porte-pile.
Face au micro-servomoteur MG90S
Les deux modèles se commandent exactement de la même façon : trois fils, une sortie numérique, la bibliothèque Servo et le même programme. Ce qui change est le rapport entre la force et le poids. Le MG90S pèse 13,4 g et sort environ 2 kg·cm : il est fait pour les petites mécaniques et pour les montages où chaque gramme compte. Le MG995 pèse quatre fois plus et pousse environ cinq fois plus fort, mais il réclame une alimentation à sa mesure. Le choix se fait sur la charge à déplacer, pas sur la taille du montage.
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 ces connecteurs à 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. |
Le connecteur est femelle et au format des récepteurs de modélisme, celui que l’on trouve sur tous les servomoteurs, micros-servos compris. 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 MG995 consomme une dizaine de milliampères au repos, mais il appelle plus d’un ampère à l’instant où il démarre un mouvement, et davantage encore quand il 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 : le servo saccade ou tremble au lieu de balayer franchement, l’Arduino redémarre à chaque mouvement — son écran de veille se répète sur le port série — ou le servo cale dès qu’on lui demande de soulever une charge qu’il porte pourtant à l’aise à la main.
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 à vis 2 broches, le pôle positif d’un côté, la masse de l’autre. Pour un montage 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 tous les sens. Et le courant, lui, ne traverse jamais la carte : seul le fil de signal la concerne.
Mini-projet : amener l’axe à un angle, sans à-coups
Le geste de base, celui qui servira ensuite dans tous les montages, consiste à donner un angle au servo et à l’y tenir. Sur un servomoteur de 55 g, ce geste a une contrainte : un axe qui saute d’un seul coup de 0 à 140° appelle une pointe de courant d’une fraction de seconde et secoue le palonnier. Le programme ci-dessous remplace ce saut par une montée progressive, un degré à la fois — l’axe arrive à l’angle demandé sans que la tension s’écroule, et le mécanisme n’encaisse pas de coup.
Ce qu’il faut
| Le moteur | Ce servomoteur MG995, avec son palonnier en croix monté sur l’axe |
|---|---|
| La carte | Uno R3 + câble USB |
| 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 |
| Alimentation — moins | → GND de l’Arduino : c’est la masse commune, sans elle le servo ne peut pas interpréter le signal |
| Arduino | Alimenté par son câble USB ; la broche 5V de la carte ne sert ici à rien |
Le programme
À copier dans l’IDE Arduino, puis à téléverser sur la carte :
/*
* Amener un servomoteur MG995 a un angle, en douceur
* Carte : Arduino Uno R3 - signal du servo sur la broche D9
* Alimentation : source 5 V separee, masse commune avec l'Arduino
*
* Composants, brochage et fiche complete : www.marocproduits.com
*/
#include "Servo.h"
Servo axe;
const byte PIN_SERVO = 9;
const int ANGLE_REPOS = 20;
const int ANGLE_TRAVAIL = 140;
// Amene l'axe a la consigne par pas d'un degre
void allerA(int cible) {
cible = constrain(cible, 0, 180);
int courant = axe.read();
while (courant != cible) {
int ecart = cible - courant;
courant = courant + (ecart / abs(ecart));
axe.write(courant);
delay(15);
}
}
void setup() {
axe.attach(PIN_SERVO);
allerA(ANGLE_REPOS);
}
void loop() {
allerA(ANGLE_TRAVAIL);
delay(2000);
allerA(ANGLE_REPOS);
delay(2000);
}Comment ça marche
axe.attach(9)réserve la broche et démarre la trame de commande : la bibliothèque envoie elle-même une impulsion toutes les 20 ms, sans que la boucle principale ait à s’en occuper.allerA()lit la position courante avecaxe.read(), puis s’en rapproche d’un degré à la fois. L’expressionecart / abs(ecart)vaut 1 ou -1 : le pas va toujours dans le bon sens, que la cible soit au-dessus ou en dessous de la position courante.- Le
delay(15)fixe la vitesse de la rampe : un degré toutes les 15 ms, soit environ 66° par seconde. Le servomoteur sait faire beaucoup plus vite — 0,20 s pour 60°, c’est-à-dire environ 300° par seconde — donc c’est bien la rampe qui règle le rythme, et non la limite du moteur. constrain()ramène toute valeur dans la plage de 0 à 180°. Sans cette borne, une cible hors plage ferait chercher au programme une position que le servo ne peut pas atteindre, et la boucle ne s’arrêterait jamais.- Les deux angles sont nommés en tête de programme : pour changer la position de repos ou de travail, deux lignes suffisent, sans toucher au reste.
Pour aller plus loin
Pour viser un seul angle, remplacez l’appel par un write() unique et laissez le servo en place : un servomoteur conserve sa consigne et n’a pas besoin d’être réécrit en boucle. Pour une consigne plus fine que le degré, axe.writeMicroseconds(1500) adresse directement la largeur d’impulsion, sans passer par la table d’angles de la bibliothèque. Et si le palonnier bute en fin de course, resserrez la plage à 10–170° dans le programme plutôt que de laisser le moteur forcer contre sa butée.
Variante : le même servo en rotation continue
Le MG996 en rotation continue partage le même boîtier, les mêmes engrenages et le même connecteur, mais son axe n’a plus ni butée ni position à tenir : la consigne y devient une vitesse et un sens. Il fait avancer une roue ; il n’oriente pas une pièce. Un servo de position comme le MG995 ne doit pas être utilisé ainsi, et il ne doit pas être laissé en appui contre sa butée : il force, chauffe et consomme sans rien déplacer.
Questions fréquentes
Puis-je alimenter le servo 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 au démarrage d’un mouvement. 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 ou trois 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.
Le servo grogne ou chauffe alors qu’il ne bouge pas
Il force contre quelque chose. Trois causes possibles : une consigne au-delà de la plage utile, une charge supérieure à son couple, ou un montage qui exerce une contrainte mécanique l’empêchant de tenir sa position. Un servo qui ronronne en position consomme en permanence et chauffe : réduisez la charge, ou élargissez la marge en fin de course. Et ne forcez jamais l’axe à la main sur ce modèle, le train métallique transmet directement l’effort au moteur.
Le servo tremble en position, sans bouger
Un frémissement de quelques degrés autour de la consigne vient presque toujours de l’alimentation : une source faible laisse la tension varier au rythme des corrections du moteur. Alimentez le servomoteur par une source dédiée et vérifiez la masse commune avant de chercher ailleurs. La zone morte du modèle est de 5 µs : une consigne qui s’en écarte de moins que cela n’entraîne aucun mouvement.
Comment savoir si le servo est en bon état avant de le monter ?
En le faisant tourner à vide sur toute sa course, et en écoutant. Un servo sain est régulier sur toute la plage ; un servo usé saute des angles, grogne à certaines positions ou chauffe sans charge. Cela se vérifie sans programme, avec le testeur de servomoteur cité plus bas.
À combiner avec
Pour vérifier un servo d’occasion, ou comparer deux modèles sans écrire une ligne de programme, le testeur de servomoteur Gear CCPM fait tourner le moteur sur toute sa course et affiche sa position. Et pour donner l’angle à la main pendant les essais, le joystick analogique se lit sur une entrée analogique et se transforme en consigne : les deux axes de son manche couvrent naturellement la course de 0 à 180°.









