Publié 2026-04-21
Ce guide fournit une explication complète et pratique sur la façon de contrôler la rotation d'un standardservomoteurmoteur.servomoteurles moteurs ne tournent pas continuellement comme les moteurs à courant continu classiques ; au lieu de cela, ils se déplacent vers une position angulaire spécifique (par exemple, 0°, 90° ou 180°) et maintiennent cette position. La méthode la plus fiable et la plus largement utilisée pour obtenir ce contrôle directionnel précis consiste à générer un signal de modulation de largeur d'impulsion (PWM) avec un modèle de synchronisation spécifique. Cet article couvre le principe de fonctionnement exact, les connexions matérielles requises, des exemples de logique de codage, les étapes de dépannage courantes et un plan d'action final. Toutes les informations sont basées sur des spécifications standard de l’industrie et des pratiques vérifiées.
UNservomoteurl’angle de rotation du moteur est déterminé uniquement par la largeur d’une impulsion électrique envoyée toutes les 20 millisecondes (ms). Ce signal est connu sous le nom deimpulsion de commande.
Période de signal: 20 ms (fréquence 50 Hz) – cohérent sur presque tous les servos standards.
Plage de largeur d'impulsion: Généralement de 0,5 ms à 2,5 ms.
Impulsion de 0,5 ms → rotation à 0° (position complètement dans le sens inverse des aiguilles d'une montre)
Impulsion de 1,5 ms → rotation à 90° (position centrale/neutre)
Impulsion de 2,5 ms → rotation à 180° (position complètement dans le sens des aiguilles d'une montre)
> Source vérifiable: Cette norme de synchronisation est publiée dans les fiches techniques officielles des principaux fabricants de servos (par exemple, Futaba, Hitec, Tower Pro) et est conforme au protocole de l'industrie des loisirs RC.
À retenir: Le circuit de commande interne du servo compare la largeur d'impulsion entrante avec le retour de position actuelle d'un potentiomètre fixé à l'arbre de sortie. Toute différence déclenche la rotation du moteur dans le bon sens jusqu'à ce que les deux correspondent. Ce système en boucle fermée vous offre un contrôle angulaire précis et reproductible.
Pour mettre en œuvre le contrôle de rotation du servo, vous avez besoin des éléments suivants (aucune marque spécifique requise) :
Cas concret: Un amateur construisant un bras robotique télécommandé a utilisé exactement ces composants. Le servo était alimenté séparément du microcontrôleur pour éviter les chutes de tension. En faisant varier la largeur d'impulsion de 0,5 ms à 2,5 ms par pas de 0,1 ms, l'articulation du bras s'est déplacée en douceur de 0° à 180°.
La plupart des servos standards utilisent un connecteur à 3 broches avec les codes couleurs suivants (consultez la fiche technique de votre servo) :
Marron ou Noir→ Terre (GND) – connectez-vous à la masse commune de l'alimentation et du microcontrôleur.
Rouge→ Alimentation (Vcc) – connectez-vous à une alimentation +5V ou +6V DC. N'alimentez pas un servo directement à partir de la broche 5 V d'un microcontrôleur s'il consomme plus de 200 mA ; utilisez une batterie séparée.
Orange ou Jaune→ Signal (entrée PWM) – connectez-vous à une broche numérique compatible PWM sur le microcontrôleur.
Connexion étape par étape:
1. Connectez toutes les masses (servo GND, microcontrôleur GND et borne négative de l'alimentation) ensemble.
2. Connectez l'alimentation du servo (fil rouge) à la borne positive de la batterie externe.
3. Connectez le signal du servo (fil orange) à la broche PWM choisie sur le microcontrôleur.
> Note de sécurité critique: Ne connectez jamais le fil rouge d’un servo directement à la sortie 5 V d’un microcontrôleur si le servo nécessite un courant de crête supérieur à 500 mA – cela pourrait endommager la carte. Utilisez toujours une source d'alimentation distincte pour les servos à couple élevé.
Vous trouverez ci-dessous une logique de code générique qui fonctionne sur presque toutes les plates-formes de microcontrôleurs. L'exemple utilise des fonctions standard pour générer un signal PWM de 50 Hz et modifier la largeur d'impulsion.
Pseudo-code (pour comprendre):
setup() : définir la broche PWM comme sortie, régler la fréquence PWM sur 50 Hz (période = 20 ms) loop() : // Rotation à 0° définir la largeur d'impulsion = 0,5 ms de retard (500) // attendre 0,5 seconde pour que le servo bouge // Rotation à 90° définir la largeur d'impulsion = 1,5 ms de retard (500) // Rotation à 180° définir la largeur d'impulsion = 2,5 ms de retard (500)
![]()
Implémentation pratique (style C pour les cartes compatibles Arduino):
#inclure// Bibliothèque de servos standard Servo myServo ; // Créer un objet servo void setup() { myServo.attach(9); // Broche de signal 9, 50 Hz auto-configurée } void loop() { myServo.write(0); // 0 ° (définit en interne une impulsion de 0,5 ms) delay (1000); monServo.write(90); // Délai de 90° (impulsion de 1,5 ms) (1000) ; monServo.write(180); // Délai de 180° (impulsion de 2,5 ms) (1000) ; }
Si votre bibliothèque ne fournit pas de méthode write(), vous pouvez générer manuellement le PWM à l'aide d'interruptions de minuterie. La largeur d'impulsion exacte doit être maintenue pendant la durée requise, puis la broche de signal doit être réglée au niveau bas pour le reste de la période de 20 ms.
Même avec un code correct, vous remarquerez peut-être que le servo ne tourne pas jusqu'aux points finaux attendus. Cela est dû aux tolérances de fabrication.
Situation courante: Un utilisateur a acheté deux servos identiques. L’un tournait exactement de 0° à 180° avec des impulsions de 0,5 à 2,5 ms, tandis que l’autre ne se déplaçait que de 10° à 170° avec le même signal.
Solution – Calibrer les limites d’impulsion:
1. Commencez par une impulsion de 1,5 ms (au centre).
2. Réduisez progressivement la largeur d'impulsion par pas de 0,01 ms jusqu'à ce que le servo s'arrête de bouger. Cette impulsion la plus basse correspond à la position physique 0° de votre servo.
3. Augmentez progressivement la largeur d'impulsion de 1,5 ms jusqu'à ce que le servo cesse de bouger. Cette impulsion la plus élevée correspond à la position physique de 180° de votre servo.
Enregistrez ces valeurs calibrées et utilisez-les dans votre code au lieu des valeurs nominales de 0,5 ms et 2,5 ms. La plupart des servos fonctionnent dans un délai de 0,6 à 2,4 ms après l'étalonnage.
Certaines applications (par exemple les roues de robots) nécessitent une rotation illimitée, pas seulement un mouvement à 180°. Les servos standards peuvent être modifiés en servos à rotation continue en supprimant la butée mécanique sur le pignon de sortie et en remplaçant le potentiomètre de rétroaction par deux résistances fixes. Cependant, pour la plupart des utilisateurs, il est recommandé d’acheter un servo à rotation continue spécialement conçu.
Méthode de contrôle pour servos à rotation continue:
Impulsion de 1,5 ms → arrêt
>1,5 ms (par exemple 1,7 ms) → rotation dans le sens des aiguilles d'une montre à vitesse proportionnelle
Point essentiel à retenir: Pour obtenir une rotation précise du servo, il suffit de générer la largeur d'impulsion correcte (0,5 à 2,5 ms) sur une période de 20 ms. Aucune autre méthode ne vous offre la même précision et la même simplicité.
Recommandations concrètes:
1. Commencez par un circuit de test– Utilisez un seul servo, une batterie 5 V et n’importe quelle carte microcontrôleur. Téléchargez l'exemple de code qui balaye de 0° à 180° par pas de 10°.
2. Calibrez chaque nouveau servo– Exécutez toujours la routine d’étalonnage (section 5) avant de finaliser votre projet. Cela élimine les erreurs de positionnement.
3. Utilisez une alimentation dédiée– Ne comptez jamais sur la broche 5 V du microcontrôleur pour plus d’un petit servo. Les alimentations externes 5 V/2 A sont peu coûteuses et empêchent les réinitialisations.
4. Vérifiez avec un oscilloscope ou un analyseur logique– Si vous rencontrez des problèmes persistants, mesurez la largeur d'impulsion réelle sur la broche de signal. Il doit être stable et compris entre 0,5 et 2,5 ms.
5. Documentez vos valeurs calibrées– Notez les largeurs d'impulsion minimales et maximales pour chaque servo de votre projet. Cela garantit la répétabilité si vous remplacez un servo ultérieurement.
En suivant ce guide, vous obtiendrez un contrôle de rotation de servomoteur fiable et reproductible dans tout projet de robotique ou de mécatronique. Référez-vous toujours à la fiche technique de votre servo pour les spécifications exactes, et en cas de doute, testez empiriquement la plage de largeur d'impulsion en utilisant la méthode d'étalonnage décrite ci-dessus.
Heure de mise à jour:2026-04-21
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.