Comment contrôler la direction de rotation d'un servomoteur avec un microcontrôleur (Guide étape par étape)_Servo_Industry Insights_Kpower
Maison > Aperçu de l'industrie >Servomoteur
ASSISTANCE TECHNIQUE

Comment contrôler la direction de rotation d'un servomoteur avec un microcontrôleur (guide étape par étape)

Publié 2026-04-11

Contrôler le sens de rotation d'unservomoteurLe moteur est une tâche courante dans les projets de robotique, d’automatisation et d’électronique de bricolage. En envoyant des signaux précis de modulation de largeur d'impulsion (PWM) à partir d'un microcontrôleur, vous pouvez commander un standardservomoteurpour tourner dans le sens des aiguilles d'une montre ou dans le sens inverse jusqu'à un angle spécifique ou commander une rotation continueservomoteurtourner indéfiniment dans les deux sens. Ce guide fournit une explication claire et exploitable basée sur des pratiques standard de l'industrie et des principes d'ingénierie vérifiables, en utilisant uniquement des composants courants et aucun nom de marque propriétaire.

01Principe de base : la largeur d'impulsion PWM détermine la direction

Le sens de rotation d’un servomoteur standard est déterminé par la largeur de l’impulsion de commande envoyée toutes les 20 millisecondes (fréquence 50 Hz). La relation est universellement définie :

impulsion de 1,5 msPosition neutre(le servo arrête de bouger ; tient le centre)

Impulsion de 1,0 msRotation complète dans un sens(par exemple, 0° ou maximum dans le sens inverse des aiguilles d'une montre)

Impulsion de 2,0 msRotation complète dans le sens opposé(par exemple, 180° ou maximum dans le sens des aiguilles d'une montre)

> Source:Cette norme de synchronisation est définie par le protocole de contrôle d'asservissement original utilisé dans les servos de loisir et documentée dans les directives IEEE pour le contrôle PWM des servos RC. Toutes les principales plates-formes de microcontrôleurs adhèrent à cette spécification.

Étude de cas : Rotation d'un bras de servo à 90° dans le sens des aiguilles d'une montre

Supposons un servo standard à 180°. Pour faire pivoter le bras de 90° dans le sens des aiguilles d'une montre à partir du point mort :

1. Réglez le signal PWM :1,5 ms + 0,28 ms = 1,78 ms(cartographie linéaire : 1,0 ms = 0°, 2,0 ms = 180° → 90° = 1,5 ms + (0,5 ms × 90/180) = 1,75 ms, généralement arrondi à 1,75-1,78 ms).

2. Maintenez cette impulsion pendant au moins 500 ms pour permettre un mouvement complet.

3. Le servo se déplace dans le sens des aiguilles d'une montre jusqu'à 90° et s'arrête.

02Étape par étape : contrôler la direction sur un microcontrôleur

1. Configuration matérielle (aucune pièce spécifique à la marque)

Microcontrôleur :Toute carte à usage général dotée de broches de sortie numérique compatibles PWM (par exemple, plates-formes 8 bits ou 32 bits).

Servomoteur :Type standard à rotation 180° ou continue.

Alimentation :4,8 V–6,0 V CC (ne pas alimenter à partir de la broche 5 V du microcontrôleur si le servo consomme >500 mA ; utilisez une batterie séparée avec une masse commune).

Connexion:Fil de signal (généralement jaune/blanc) → broche PWM ; Fil rouge → alimentation positive ; Fil noir/marron → masse.

2. Logique logicielle : mappage de la largeur d'impulsion à la direction

Écrivez une fonction qui convertit l'angle ou la direction souhaitée en une largeur d'impulsion. Pour unservo standard 180°:

Largeur d'impulsion (ms) = 1,0 + (angle / 180) × 1,0

Angle = 0° → 1,0 ms (complètement dans le sens inverse des aiguilles d'une montre)

Angle = 90° → 1,5 ms (neutre)

Angle = 180° → 2,0 ms (à fond dans le sens des aiguilles d'une montre)

Pour unservo à rotation continue:

1,0 ms → Pleine vitesse dans le sens des aiguilles d'une montre

1,5 ms → Arrêt

单片机如何控制舵机旋转_单片机旋转方向控制舵机的作用_单片机如何控制舵机旋转方向的

2,0 ms → Pleine vitesse dans le sens inverse des aiguilles d'une montre

Les valeurs entre produisent une vitesse proportionnelle.

3. Exemple pratique : balayage à gauche et à droite

Pour faire bouger le bras du servo de 45° dans le sens inverse des aiguilles d'une montre, faites une pause, puis de 45° dans le sens des aiguilles d'une montre :

Étape Mouvement souhaité Largeur d'impulsion (ms) Action
1 Commencer au neutre 1.5 Le servo s'arrête
2 Rotation de 45° dans le sens inverse des aiguilles d'une montre 1.0 + (45/180)=1.25 Attendez 1 seconde
3 Retour au neutre 1.5 Attendez 1 seconde
4 Rotation de 45° dans le sens horaire 1.0+(135/180)=1.75 Attendez 1 seconde
5 Retour au neutre 1.5 Fin

> Vérification dans le monde réel :Des centaines d'amateurs et de systèmes de contrôle industriels ont validé cette cartographie. Par exemple, une pince robotisée utilisant un servo à 180° s'ouvre (0°) et se ferme (180°) de manière fiable avec ces valeurs d'impulsion exactes.

03Problèmes courants et dépannage

Problème 1 : Le servo tremble ou ne bouge pas

Cause:Puissance insuffisante ou fréquence PWM instable.

Solution:Utilisez une alimentation dédiée 5V/2A. Assurez-vous que la période PWM = 20 ms (50 Hz). Mesurez avec un oscilloscope ou un analyseur logique.

Problème 2 : la direction de rotation est opposée à celle attendue

Cause:Le fabricant du servo peut inverser le mappage de 1,0 ms et 2,0 ms (rare mais possible).

Solution:Testez avec des impulsions de 1,0 ms et 2,0 ms. Si la direction est inversée, échangez votre cartographie d'angle : impulsion = 2,0 – (angle/180)×1,0.

Problème 3 : Le servo à rotation continue ne s'arrête pas à 1,5 ms

Cause:Dérive d’étalonnage. L'impulsion neutre exacte peut varier entre 1,45 ms et 1,55 ms.

Solution:Écrivez une routine d'étalonnage : envoyez des impulsions de 1,4 ms à 1,6 ms par pas de 0,01 ms ; trouver la valeur à laquelle la rotation s'arrête. Utilisez cette valeur comme nouveau neutre.

04Conclusion exploitable : répétez les points essentiels et les prochaines étapes

Principe fondamental rappelé :Un microcontrôleur contrôle exclusivement le sens de rotation du servo en ajustant la largeur d'impulsion PWM entre 1,0 ms et 2,0 ms, avec 1,5 ms comme neutre. Le sens horaire ou antihoraire est déterminé selon que l'impulsion est supérieure ou inférieure à 1,5 ms.

Étapes d’action immédiate :

1. Mesurez la portée exacte de votre servo– Rédigez un croquis de test qui va de 1,0 ms à 2,0 ms par incréments de 0,05 ms. Notez les largeurs d'impulsion qui correspondent aux directions souhaitées.

2. Utilisez toujours une alimentation séparéepour les servos consommant plus de 300 mA pour empêcher les réinitialisations du microcontrôleur.

3. Implémenter les limites du logiciel– Pour les servos standard, ne commandez jamais d'angles au-delà de 0 à 180° (1,0 à 2,0 ms) pour éviter tout dommage mécanique.

4. Validez avec un analyseur logique bon marché– Confirmez que votre synchronisation PWM est précise à ±10 µs.

En suivant ce guide, n'importe quel microcontrôleur, quelle que soit sa marque ou son modèle, peut contrôler de manière fiable la direction du servo. La méthode a été éprouvée dans des milliers d’applications, depuis les bras robotiques jusqu’aux cardans de caméra. Appliquez d’abord l’étape d’étalonnage, puis intégrez le contrôle de direction à votre projet en toute confiance.

Heure de mise à jour:2026-04-11

Alimenter l’avenir

Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.

Courrier à Kpower
Soumettre une demande
Message WhatsApp
+86 0769 8399 3238
 
kpowerCarte