Publié 2026-04-07
Ce guide fournit tout ce dont vous avez besoin pour contrôler avec précision l'angle de rotation d'un micro standardservomoteurà l'aide d'un microcontrôleur. Le principe de base est simple : leservomoteurLa position de l'arbre de sortie est déterminée par la largeur d'un signal d'impulsion. Pour les micros les plus courantsservomoteurs, une largeur d'impulsion de 1,5 millisecondes (ms) centre l'arbre à 90°, 1,0 ms le déplace à 0° et 2,0 ms le déplace à 180°. Cependant, les servos du monde réel varient. Cet article vous donne des méthodes vérifiées, des exemples de code et des étapes d'étalonnage pour obtenir un contrôle précis degré par degré sans dépendre d'une marque spécifique.
UNMicro-servocontient un petit moteur à courant continu, un potentiomètre de rétroaction et un circuit de commande. Le circuit compare la largeur d’impulsion entrante à la position du potentiomètre. Lorsque la largeur d'impulsion correspond à la position souhaitée, le moteur s'arrête. La relation entre la largeur d’impulsion et l’angle est linéaire dans les limites mécaniques du servo.
Spécifications des signaux standards :
Taux de répétition des impulsions :50 Hz (période = 20 ms)
Plage de largeur d'impulsion utilisable :Généralement 1,0 ms à 2,0 ms
Plage d'angle correspondante :0° à 180°
Cela signifie que le servo attend une impulsion toutes les 20 ms. En modifiant la largeur d'impulsion de 1,0 ms à 2,0 ms, vous commandez l'arbre de 0° à 180°.
Tu en achètes deuxMicro-servos du même lot. On se centre parfaitement à 90° quand on envoie une impulsion de 1,5 ms. L'autre s'arrête à 85°. Cela est dû aux tolérances de fabrication du potentiomètre de rétroaction et de l'assemblage mécanique. Par conséquent, calibrez toujours chaque servo individuellement.
La plupart des plates-formes de microcontrôleurs fournissent une bibliothèque d'asservissements intégrée qui génère des impulsions stables à 50 Hz. Vous trouverez ci-dessous un exemple de code générique qui fonctionne avec n'importe quel microcontrôleur prenant en charge les bibliothèques de sortie PWM et de servocommande.
Connectez le fil d'alimentation du servo (rouge) à une alimentation 5 V capable de fournir au moins 500 mA.
Connectez le fil de terre (marron ou noir) au GND du microcontrôleur.
Connectez le fil de signal (orange, jaune ou blanc) à une broche compatible PWM (par exemple, la broche 9).
#inclureServo monServo ; void setup() { monServo.attach(9); // Attache le servo sur la broche 9 } void loop() { myServo.write(0); // Commande 0 degré de retard (1000); monServo.write(90); // Commande délai de 90 degrés (1000); monServo.write(180); // Commande délai de 180 degrés (1000); }
Leécrire (angle)La fonction convertit automatiquement l'angle en largeur d'impulsion correspondante en utilisant le mappage par défaut (0°→1,0 ms, 180°→2,0 ms). Cependant, cette valeur par défaut peut ne pas correspondre à votre servo spécifique.
Pour obtenir des angles précis, vous devez déterminer les largeurs d'impulsion exactes qui produisent 0° et 180° sur VOTRE servo.
1. Fixez un pointeur ou marquez la position neutre de l’arbre.
![]()
2. Envoyez une impulsion de 1,5 ms. L'arbre doit être proche de 90°. Notez tout décalage.
3. Diminuez la largeur d'impulsion par pas de 10 µs jusqu'à ce que l'arbre s'arrête de bouger. C'est votre véritable largeur d'impulsion de 0°.
4. Augmentez la largeur d'impulsion de 1,5 ms par pas de 10 µs jusqu'à ce que l'arbre s'arrête de bouger. C'est votre véritable largeur d'impulsion de 180°.
Résultats de mesure typiques de trois servos courants :
Ces valeurs montrent qu'en supposant qu'une valeur comprise entre 1 000 µs et 2 000 µs peut entraîner des erreurs allant jusqu'à 15°. Utilisez toujours des valeurs étalonnées.
La plupart des bibliothèques de servos vous permettent de définir des plages de largeur d'impulsion personnalisées à l'aide d'unattacher()surcharge ou une fonction distincte. Exemple:
monServo.attach(9, 540, 2420); // Broche, largeur d'impulsion minimale (µs), largeur d'impulsion maximale (µs)
Après fixation avec des limites calibrées,monServo.write(90)enverra l'impulsion centrale exacte (1480 µs dans ce cas), donnant un vrai 90°.
Étape 1 : Calibrez toujours chaque servo individuellement– Ne présumez pas des spécifications d’usine. Passez 5 minutes à mesurer les vraies largeurs d'impulsion de 0° et 180°.
Étape 2 : Utilisez une alimentation dédiée– N’alimentez pas les micro-servos directement à partir de la broche 5 V du microcontrôleur. Une consommation de courant soudaine peut réinitialiser le contrôleur. Utilisez un UBEC 5V 1A ou une alimentation externe régulée.
Étape 3 : Stockez les valeurs d'étalonnage dans votre code– Après l’étalonnage, codez en dur les largeurs d’impulsion min et max. Exemple:
#define SERVO_PIN 9 #define SERVO_0_PULSE 540 // mesuré µs pour 0° #define SERVO_180_PULSE 2420 // mesuré µs pour 180° Servo myServo ; monServo.attach(SERVO_PIN, SERVO_0_PULSE, SERVO_180_PULSE);
Étape 4 : Vérifiez avec un test simple– Commande 0°, 45°, 90°, 135°, 180°. Utilisez un rapporteur pour vérifier l’exactitude. Si un angle est décalé de plus de 2°, répétez l'étalonnage.
Étape 5 : Documentez vos paramètres– Notez les largeurs d’impulsion calibrées pour chaque servo. Lorsque vous remplacez un servo, recalibrez-le immédiatement.
L'angle du micro servo est directement contrôlé par la largeur d'impulsion. Le mappage standard (1,0 ms = 0°, 1,5 ms = 90°, 2,0 ms = 180°) est un point de départ. Les vrais servos nécessitent un calibrage individuel des largeurs d'impulsion minimales et maximales pour obtenir une véritable précision de 0° à 180°. Sans calibrage, vous pouvez rencontrer des décalages de 10° à 20°.
En suivant la procédure d'étalonnage et en personnalisant la plage de largeur d'impulsion dans votre code, vous obtiendrez un positionnement des servos répétable et précis pour toutes les applications, des bras robotiques aux cardans de caméra. Testez toujours les véritables limites de chaque servo et ajustez votre code en conséquence. Cette pratique élimine les incertitudes et garantit que votre projet fonctionne de manière fiable à chaque fois.
Heure de mise à jour:2026-04-07
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.