Publié 2026-04-21
servomoteurLes moteurs sont des composants essentiels dans la robotique, les véhicules RC et les systèmes d'automatisation, fournissant un contrôle précis de la position angulaire. Ce guide explique le principe de fonctionnement interne d'une normeservomoteurmoteur et la méthode de contrôle PWM étape par étape, en utilisant des exemples courants du monde réel (tels qu'une articulation de bras de robot ou un mécanisme de direction dans un modèle réduit de voiture) pour vous aider à comprendre et à appliquerservomoteurcontrôler immédiatement.
Un servomoteur est un système en boucle fermée composé d'un moteur à courant continu, d'un train d'engrenages, d'un potentiomètre de retour de position et d'un circuit de commande. Contrairement à un simple moteur à courant continu qui ne tourne qu'en continu, un servomoteur vous permet de lui commander de se déplacer selon un angle spécifique (généralement de 0° à 180° ou de 0° à 270°) et de maintenir cette position contre une force externe.
Exemple concret :Dans un bras robotique à 5 degrés de liberté, chaque articulation utilise un servomoteur. Lorsque vous envoyez une commande pour lever le bras à 45°, le servo tourne exactement à 45° et y reste, même si une petite charge est appliquée.
Comprendre le fonctionnement interne vous aide à dépanner et à contrôler efficacement les servos.
Séquence de fonctionnement :
1. Le circuit de commande reçoit un signal PWM (modulation de largeur d'impulsion) d'un contrôleur externe (par exemple, microcontrôleur, récepteur RC).
2. La largeur d'impulsion du signal PWM définit l'angle cible.
3. Le potentiomètre mesure l'angle actuel de l'arbre de sortie.
4. Le circuit de contrôle calcule l'erreur : angle cible – angle réel.
5. Si l'erreur est positive, elle fait avancer le moteur à courant continu ; s'il est négatif, il recule.
6. Lorsque l'erreur devient nulle (l'angle réel correspond à la cible), le moteur s'arrête et le servo maintient la position.
Ce retour en boucle fermée est la principale raison pour laquelle les servos obtiennent un positionnement précis et reproductible.
Tous les servos amateurs standard utilisent un signal PWM avec une fréquence d'images fixe (généralement 50 Hz, soit une période de 20 ms). Le poste est déterminé par lelargeur d'impulsionau sein de chaque période.
Paramètres PWM standards (pour servos 0° à 180°) :
Largeur d'impulsion 0,5 ms → 0°
Largeur d'impulsion 1,5 ms → 90° (position neutre)
Largeur d'impulsion 2,5 ms → 180°
> Important:Ces valeurs sont basées sur les conventions de l'industrie (Futaba, Hitec, etc.). Vérifiez toujours la fiche technique de votre servo, car certains servos utilisent 0,7 ms à 2,3 ms pour la même plage.
Calcul de la largeur d'impulsion pour n'importe quel angle cible (cartographie linéaire) :
Largeur d'impulsion (ms) = 0,5 + (angle / 180) × 2,0
Exemple : Pour 45° → 0,5 + (45/180)×2,0 = 0,5 + 0,5 = 1,0 ms
Exemple de contrôle pratique (en utilisant un pseudo-code de type Arduino) :
// La bibliothèque Servo génère automatiquement le PWM 50 Hz correct #includeServo monservo ; void setup() { monservo.attach(9); // Sortie PWM sur la broche 9 } void loop() { myservo.write(0); // Impulsion de 0,5 ms → délai 0° (1000) ; monservo.write(90); // Impulsion de 1,5 ms → délai de 90° (1000) ; monservo.write(180); // Impulsion de 2,5 ms → délai de 180° (1000) ; }
Si vous générez du PWM manuellement, assurez-vous d'une période de 20 ms (50 Hz) et faites varier uniquement la largeur d'impulsion à temps élevé.
Pour contrôler avec succès un servomoteur dans votre projet, suivez cette séquence :
Étape 1 – Exigences d’alimentation
La plupart des servos standard fonctionnent entre 4,8 V et 6,0 V. Un servo bloqué peut consommer 0,5 à 1,5 A. N'alimentez pas un servo directement à partir de la broche 5 V d'un microcontrôleur – utilisez un BEC (Battery Eliminator Circuit) séparé ou une alimentation de servo dédiée.
Étape 2 – Connexion du signal
Connectez le fil du signal de commande (généralement jaune, blanc ou orange) à une broche compatible PWM de votre contrôleur. Connectez la masse (marron ou noir) à la masse du contrôleur et à la masse de l’alimentation (terre commune).
Étape 3 – Générez le bon PWM
Fréquence : 50 Hz (période de 20 ms)
Largeur d'impulsion : 0,5 ms à 2,5 ms pour la plage complète (à ajuster si votre servo utilise une plage différente)
Utilisez une bibliothèque ou une minuterie pour maintenir un timing stable ; les signaux instables provoquent une oscillation du servo.
Étape 4 – Test avec des angles connus
Commencez par 90° (impulsion de 1,5 ms). Testez ensuite 0° et 180° tout en observant le mouvement physique. Si le servo bourdonne ou n'atteint pas l'angle attendu, la plage de largeur d'impulsion peut nécessiter un étalonnage.
Exemple de cas :Une erreur courante dans la direction des voitures RC consiste à alimenter le servo à partir du BEC intégré du récepteur, qui ne peut pas fournir suffisamment de courant. Lorsque vous faites tourner les roues sur l'herbe, le servo cale et la tension chute, provoquant la réinitialisation du microcontrôleur. Solution : utilisez un UBEC 5 V/3 A séparé.
La position du servo est contrôlée uniquement par la largeur d'impulsion PWM, et non par la tension ou la fréquence.
Le retour en boucle fermée (potentiomètre + circuit de commande) garantit un maintien précis de l'angle.
Utilisez toujours une terre commune entre le contrôleur, le servo et l'alimentation externe.
Différents modèles de servos peuvent avoir des plages de largeur d'impulsion légèrement différentes – vérifiez toujours avec la fiche technique.
1. Avant d'écrire du code, mesurez les largeurs d'impulsion minimales et maximales réelles de votre servo à l'aide d'un simple croquis de test et d'un oscilloscope (ou d'un analyseur logique). Enregistrez ces valeurs.
2. Utiliser une bibliothèque de servos(comme Arduino Servo.h ou ESP32 Servo) au lieu de la génération PWM manuelle – les bibliothèques gèrent la synchronisation exacte de 50 Hz et convertissent automatiquementécrire (angle)à la largeur d'impulsion correcte.
3. Ajoutez un condensateur électrolytique de 100 à 470 µFentre les broches d'alimentation et de masse du servo, aussi près que possible du servo, pour absorber les pics de tension et réduire la gigue.
4. Pour les projets multi-servos(par exemple, un robot hexapode), calculez le courant de crête total (nombre de servos × 1 A chacun) et choisissez une alimentation avec une marge de 30 %.
5. Commencez toujours par la position neutre (impulsion de 1,5 ms)lors de l'assemblage d'une liaison mécanique, cela donne une amplitude de mouvement égale dans les deux sens.
En appliquant la méthode de contrôle PWM expliquée ci-dessus et en suivant les étapes d'action, vous obtiendrez un positionnement des servos fiable et précis dans tout projet de robotique ou d'automatisation. N'oubliez pas : largeur d'impulsion correcte + puissance adéquate + terrain d'entente = asservissement réussi.
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.