Publié 2026-03-18
Hé, les amis qui ont faitservomoteurla programmation doit avoir rencontré cet obstacle : vous voulez que leservomoteurpour tourner à 45 degrés, mais il saute à 90 degrés à la place ; vous voulez que le bras mécanique se lève lentement comme une main humaine, mais il se met en place, ce qui est effrayant. Pour le dire franchement, vous ne savez tout simplement pas comment faire leservomoteurdéplacez-vous en douceur et avec précision selon l'angle souhaité. Ne vous inquiétez pas, aujourd'hui, nous allons le démonter et expliquer comment programmer le servo pour obtenir des changements fluides sous n'importe quel angle.
Si vous souhaitez contrôler le servo comme vous le souhaitez, vous devez d'abord comprendre qui il écoute. Il y a un petit moteur à l'intérieur de l'appareil à gouverner ainsi qu'un système de rétroaction composé d'un jeu d'engrenages et d'un potentiomètre. Il ne reconnaît qu'un signal appelé PWM (Pulse width Modulation). Vous pouvez considérer ce signal comme une commande de « durée » envoyée au servo.
La méthode spécifique de cette commande consiste à émettre une impulsion de haut niveau sur la ligne de signal du servo dans une période fixe (généralement 20 millisecondes) via la programmation. La largeur de cette impulsion, c'est-à-dire la durée du niveau haut, détermine directement où s'arrête l'arbre de sortie du servo. Changer la largeur de cette impulsion dans le programme peut faire tourner le servo à n'importe quel angle souhaité.
Comme mentionné précédemment, le signal PWM est en réalité une onde carrée. Vous pouvez le considérer comme un interrupteur très ponctuel qui s’allume et s’éteint rapidement toutes les 20 millisecondes. La clé réside dans la durée de chaque allumage, qui est la largeur d’impulsion. Pour la plupart des servos, une impulsion de 1 milliseconde correspond à 0 degré, 1,5 milliseconde correspond à 90 degrés et 2 millisecondes correspond à 180 degrés.
Ainsi, si vous souhaitez que le servo tourne à 45 degrés, vous avez besoin que le programme génère une impulsion d'environ 1,25 millisecondes. Le fait que ce signal soit généré rapidement ou avec précision détermine directement la douceur et la précision de la position de l'appareil à gouverner. Heureusement, les microcontrôleurs grand public actuels, tels que STM32, disposent de fonctions de bibliothèque prêtes à l'emploi pour nous aider à générer ces signaux avec précision.
Cette relation est en fait une correspondance biunivoque entre la « largeur d'impulsion » et « l'angle de rotation ». Pour faire simple, le servo tournera à l'angle correspondant en fonction de la largeur de l'impulsion. Il existe généralement une relation linéaire entre eux. Vous pouvez y penser comme si vous tourniez un robinet. L'angle de torsion (largeur d'impulsion) détermine la taille du débit d'eau (angle du serveur).
Veuillez cependant noter que pour différentes marques et modèles de servos, cette correspondance peut être légèrement différente. Par exemple, dans certains servos, une impulsion de 0,5 millisecondes correspond à 0 degré et une impulsion de 2,5 millisecondes correspond à 180 degrés. Donc avant de commencer la programmation, il est préférable de regarder les informations techniques du servo et de confirmer sa plage de largeur d'impulsion, afin de pouvoir frapper là où vous le pointez.
Ce n’est pas difficile à dire. L’environnement de programmation actuel est déjà très convivial. Par exemple, cela peut être réalisé avec seulement quelques lignes de code. Il vous suffit d'inclure leServo.hbibliothèque, définissez un objet servo, puis utilisez()pour lier les épingles, et enfin utiliser leécrire (angle)fonction pour remplir l'angle que vous souhaitez tourner (par exemple 117 degrés), et le servo tournera docilement.
Si vous souhaitez obtenir un effet fluide de 30 degrés à 150 degrés lentement, vous devez utiliser une boucle. Laissez la valeur de l'angle commencer à 30, augmentez-la un peu à chaque fois, par exemple 1 degré, puis appelezécrire()fonction une fois, en ajoutant un petit délai au milieu, par exemple 15 millisecondes. De cette façon, le servo se déplacera étape par étape et cela apparaîtra comme un mouvement continu et fluide.
️ Étapes simples pour obtenir un mouvement fluide :
1. Utilisez unpourboucle pour augmenter l'anglejede la valeur de départ à la valeur cible.
2. Dans la boucle, utilisez.écrire(i)pour définir l'angle actuel.
3. Ajoutez un court délai, tel queretard(15), pour contrôler la vitesse de déplacement.
C'est d'une grande utilité ! C’est au cœur de presque tous les projets de créateurs qui souhaitent faire bouger quelque chose. L’exemple le plus typique est celui de la fabrication de robots. Par exemple, si vous souhaitez qu'un robot à six pattes lève gracieusement une jambe, vous devez contrôler les trois servos articulaires sur ses jambes pour qu'ils se déplacent en coordination avec un temps et un angle spécifiques.
Un autre exemple est la fabrication d'un cardan de caméra sur une voiture intelligente. Lorsque la voiture détecte la cible, le cardan doit faire tourner le servo en douceur afin que la caméra soit toujours dirigée vers la cible au lieu de sauter une par une. Il y a aussi un bras robotique pour saisir des objets. Vous devez contrôler avec précision l'angle de chaque articulation afin que l'extrémité du bras robotique dessine un bel arc pour éviter les obstacles et saisir les objets avec précision.
Lorsque vous êtes prêt à aller grand et à commencer à acheter un servo, vous devez prêter attention à quelques paramètres. Le premier est le couple, qui détermine la puissance de l’appareil à gouverner. L'unité est généralement le kg·cm. Si le projet que vous souhaitez réaliser est très lourd, comme soulever un bras robotique, alors vous devez en choisir un avec un couple plus important.
La seconde est la rapidité et la précision. La vitesse est exprimée en « secondes/60 degrés », ce qui signifie le nombre de secondes nécessaires pour tourner à 60 degrés. La précision dépend de la capacité du servo à s'arrêter à la position précise souhaitée. Pour les projets d'entrée de gamme ordinaires, des servos analogiques ordinaires suffisent ; si vous avez des exigences élevées en matière de précision et de vitesse de réponse, vous pouvez envisager des servos numériques. Il est recommandé de se rendre dans un premier temps sur les sites officiels de ces fabricants professionnels et de regarder les comparatifs de paramètres d'asservissement et les tutoriels qu'ils proposent, qui pourront vous éviter bien des détours.
Avez-vous déjà été confronté à des phénomènes particulièrement étranges lorsque vous contrôliez vous-même l'appareil à gouverner ? Par exemple, le servo tremble, chauffe ou ne bouge pas du tout ? Venez dans l’espace commentaires pour parler de vos expériences, partageons et évitons ensemble les pièges ! Si vous trouvez cet article utile, n'oubliez pas de l'aimer et de le partager avec plus d'amis~
Heure de mise à jour:2026-03-18
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.