Publié 2026-04-05
Définition d'unservomoteurLe moteur à un angle de rotation spécifique est une tâche fondamentale en robotique, en automatisation et en électronique de bricolage. Ce guide vous fournit les étapes exactes, la logique du code et les méthodes d'étalonnage pour créer n'importe quel étalon.servomoteurfaites pivoter à n'importe quel angle dont vous avez besoin, sans compter sur une marque ou un produit spécifique. Vous apprendrez le principe universel de largeur d'impulsion, l'approche de programmation étape par étape et comment résoudre les erreurs d'angle courantes. À la fin, vous serez en mesure de régler les angles des servos avec précision et à plusieurs reprises.
Tous les servos standards utilisent unModulation de largeur d'impulsion (PWM)signal pour déterminer leur angle de rotation. Le signal de commande est une fréquence de 50 Hz (période = 20 millisecondes). Au cours de chaque période de 20 ms, une impulsion élevée (le temps de « marche ») indique au servo où aller.
Impulsion de 1,0 ms→ 0 degré (à fond dans le sens inverse des aiguilles d'une montre sur la plupart des servos)
impulsion de 1,5 ms→ 90 degrés (position centrale)
Impulsion de 2,0 ms→ 180 degrés (à fond dans le sens des aiguilles d'une montre)
Ces valeurs constituent la norme de l'industrie. Cependant, les points finaux réels peuvent varier légèrement entre les servos individuels. Le tableau ci-dessous montre la relation universelle :
> Fait clé: La largeur d'impulsion modifie l'angle de manière linéaire. Pour tout angle compris entre 0° et 180°, la largeur d'impulsion requise = 1,0 ms + (angle/180) × 1,0 ms.
Suivez ces quatre étapes universelles. Aucun logiciel ou matériel spécifique à la marque n'est supposé.
Un servo standard a trois fils :
Marron ou Noir– Masse (connectez-vous au GND de votre contrôleur)
Rouge– Alimentation (5 V pour la plupart des servos ; vérifiez la tension nominale de votre servo)
Orange ou Jaune– Signal (se connecter à une broche compatible PWM)
> Avertissement critique: N'alimentez pas un servo directement à partir de la broche 5 V d'un microcontrôleur lorsqu'il est sous charge. Utilisez une alimentation 5 V séparée capable de fournir au moins 1 A par servo.
Configurez votre microcontrôleur ou servomoteur pour produire un signal de 50 Hz (période de 20 ms). Réglez ensuite la largeur d'impulsion en fonction de votre angle cible.
Exemple de calcul: Pour régler 45°
Largeur d'impulsion = 1,0 + (45/180)×1,0 = 1,0 + 0,25 = 1,25 ms
Exemple de calcul: Pour régler 135°
Largeur d'impulsion = 1,0 + (135/180)×1,0 = 1,0 + 0,75 = 1,75 ms
La logique suivante fonctionne sur n'importe quelle plateforme (Arduino, Raspberry Pi, ESP32, etc.) :
Définir la fréquence PWM = 50 Hz Définir la résolution PWM = 1 µs (microseconde) par pas de fonction setAngle(angle_degrees) : si angle_degrees 180 : angle_degrees = 180 pulse_width_us = 1000 + (angle_degrees / 180)1000 # pulse_width_us est compris entre 1000 et 2000 Écrire le signal PWM : période = 20 000 µs, high_time = pulse_width_us
Après avoir téléchargé votre code, observez le klaxon du servo. Si le klaxon ne se déplace pas dans la position attendue, suivez l'étalonnage de la section 4.
Considérons un simple bras robotique doté de trois articulations (épaule, coude, poignet). Vous voulez que l’articulation du coude passe de 30° à 120° en 2 secondes.
Étapes du cas:
1. Identifiez le servo pour le coude.
2. Écrivez une boucle qui augmente progressivement l'angle :
Angle de départ = 30° → largeur d'impulsion = 1,0 + (30/180)×1,0 = 1,1667 ms
Angle final = 120° → largeur d'impulsion = 1,0 + (120/180)×1,0 = 1,6667 ms
3. Augmentez l'angle de 1° toutes les 20 millisecondes (50 pas par seconde).
![]()
4. Durée totale = (120 à 30) étapes × 0,02 s = 1,8 seconde (environ).
Résultat: Le coude bouge doucement de 30° à 120° sans à-coups. Cette méthode est utilisée quotidiennement dans des milliers de robots amateurs et éducatifs.
Même avec la plage correcte de 1,0 à 2,0 ms, vous constaterez peut-être qu'une commande pour 90° aboutit à 85° ou 95°. Ceci est normal en raison des tolérances de fabrication. Calibrez chaque servo individuellement :
1. Commandez le servo à 0° (envoyez une impulsion de 1,0 ms).
2. Marquez la position réelle sur le klaxon.
3. Commandez le servo à 180° (envoyez une impulsion de 2,0 ms).
4. Marquez la position réelle.
5. Mesurez la plage d'angle réelle. Par exemple, si la plage physique n'est que de 170° :
Véritable impulsion minimale = 1,0 ms (fonctionne toujours)
L'impulsion maximale réelle = 2,0 ms donne 170° → pour obtenir 180°, il vous faudrait 2,058 ms.
6. Au lieu de modifier la plage standard, mappez l'angle souhaité à la plage réelle :
angle_actuel = angle_souhaité × (true_max_angle / 180)
Exemple: Si l'angle maximum réel = 170°, pour obtenir le 90° souhaité :
angle_actuel = 90 × (170/180) = 85°→ envoyer une impulsion à 85°.
Cette cartographie linéaire garantit que le klaxon physique va exactement là où vous le souhaitez.
Évitez ces erreurs pour garantir le succès :
Certains servos sont modifiés pour une rotation continue. Dans ce cas, la largeur d'impulsion ne définit plus un angle absolu. Plutôt:
1,5 ms→ arrêter
(par exemple, 1,3 ms) → tourner dans un sens à une vitesse proportionnelle à la différence
>1,5 ms(par exemple, 1,7 ms) → tourner dans le sens opposé
Pour les servos à rotation continue, le « réglage d'un angle » n'est pas possible sans un capteur de retour (encodeur). Utilisez un servo standard (0–180°) pour un positionnement angulaire absolu.
Principe de base répété: L'angle de rotation du servo est défini en générant un signal PWM de 50 Hz avec une largeur d'impulsion comprise entre 1,0 ms (0°) et 2,0 ms (180°). La relation est linéaire.
Plan d'action immédiat:
1. Connectervotre servo à une alimentation 5 V dédiée (pas à la broche 5 V de votre microcontrôleur s'il y a plus d'un servo).
2. Générerun signal PWM de 50 Hz sur n'importe quelle broche GPIO en utilisant la bibliothèque de servos de votre plate-forme préférée ou le PWM brut.
3. Calculerla largeur d'impulsion :pulse_us = 1000 + (angle_désiré/180)1000.
4. Testavec 0°, 90° et 180°. Marquez les positions réelles.
5. Étalonneren utilisant la formule de cartographie de la section 4 si les positions sont décalées de plus de 2°.
6. Déplacez-vous progressivemententre les angles en modifiant l'angle de 1 à 2 ° toutes les 20 à 50 ms pour éviter les contraintes mécaniques.
En suivant ce guide, vous pouvez régler n'importe quel servo standard sur n'importe quel angle entre 0° et 180° avec une précision de ±1°. Aucune astuce spécifique à la marque n'est nécessaire : seulement la norme universelle PWM à laquelle obéissent tous les servos.
Heure de mise à jour:2026-04-05
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.