Publié 2026-03-27
Avez-vous déjà été confronté à un tel embarras : vous voulez fabriquer un bras robotique, une voiture intelligente ou un robot sympa, mais leservomoteurtremble toujours beaucoup, ou reste coincé à mi-chemin de la rotation ? En fait, contrôler leservomoteurest beaucoup plus simple que vous ne le pensez. Aujourd'hui, nous allons parler de la façon de coordonner parfaitement ce puissant « cœur » avec le petit « muscle » duservomoteur.
De nombreux amis utilisent le servo pour la première fois, et le plus gros mal de tête est la vibration du servo. Ce n'est généralement pas parce que le servo est cassé, mais parce que le signal de commande est instable. L'appareil à gouverner s'appuie sur une onde PWM d'une période de 20 ms, dans laquelle le temps de niveau haut varie entre 0,5 ms et 2,5 ms, correspondant à 0 à 180 degrés. Il est livré avec une minuterie avancée qui peut produire des ondes PWM extrêmement précises, ce qui est beaucoup plus stable que l'utilisation de la simulation de fonction de retard. Vous pouvez imaginer que le servo est équipé d'un chef d'orchestre professionnel et que chaque battement est régulier.
Une autre cause fréquente est une alimentation électrique insuffisante. Le courant de démarrage instantané du servo peut atteindre plus de 1A. Si l'alimentation provient directement du 3,3 V de la carte de développement, le signal sera perturbé lorsque la tension chutera. ️ La bonne approche consiste à fournir une alimentation externe indépendante, à séparer l'alimentation de la carte de développement et du servo, et à partager uniquement la masse. C'est comme utiliser une ligne dédiée pour les appareils de haute puissance à la maison, sinon l'ampoule clignotera deux fois lorsque le climatiseur sera allumé.
Les ressources du timer sont très riches, TIM1 à TIM14, mais toutes ne sont pas adaptées au contrôle direct du servo. Pour les servos d'angle ordinaires, il suffit d'utiliser les minuteries générales TIM2, TIM3, TIM4 et TIM5. Ils peuvent facilement générer un PWM d’une période de 20 ms. Si vous contrôlez plusieurs servos en même temps, par exemple plus de 8, vous devriez alors envisager d'utiliser des minuteries avancées TIM1 ou TIM8. Ils ont des fonctions de sortie et de freinage complémentaires et sont plus adaptés au contrôle multicanal.
Comment choisir ? Regardez d’abord les épingles, puis les ressources. Connectez la ligne de signal du servo à la broche avec le canal de sortie de la minuterie. Par exemple, PA0 est le canal 1 de TIM2 et PB6 est le canal 1 de TIM4. Il est recommandé d'ouvrir le tableau de définition des broches dans le manuel de référence et de rechercher les broches comme une carte pour trouver les broches qui conviennent au câblage et n'entrent pas en conflit avec d'autres fonctions. N'oubliez pas que le câblage d'un bon ingénieur commence par la sélection des bonnes broches.
Il y a en fait trois étapes pour configurer PWM : allumer l'horloge, définir les paramètres et produire la forme d'onde. En prenant TIM2 comme exemple, si vous souhaitez que la période soit de 20 ms, soit 50 Hz, définissez la valeur de rechargement automatique ARR sur 2000 et le préscaler PSC sur 839. De cette façon, l'horloge de la minuterie est de 84 MHz/(839+1)= et 2000 impulsions correspondent exactement à 20 ms. Voici la clé, l'angle de contrôle du rapport cyclique : 0 degré correspond à une valeur de comparaison CCR de 50, 90 degrés équivaut à 150 et 180 degrés équivaut à 250. Cette formule de calcul n'est pas difficile, n'est-ce pas ?
Si vous utilisez des fonctions de bibliothèque pour développer, la forme d'onde apparaîtra dès que () sera appelé. Mais attention, n'utilisez jamais Delay pour contrôler la rotation du servo dans le programme, car cela entraînerait le gel du CPU et du servo. ️ La bonne approche consiste à modifier la valeur CCR et à laisser le matériel générer automatiquement une nouvelle forme d'onde, tout comme changer de vitesse sans éteindre le moteur, soyeux et fluide. Si vous utilisez la bibliothèque standard ou l'opération de registre, le principe est le même. Si vous comprenez parfaitement celui-ci, vous saurez tout sur les autres minuteries.
Contrôler un servo est simple, mais de nombreuses personnes tombent dans des malentendus lorsqu'elles contrôlent plusieurs servos. Une minuterie ne peut utiliser qu'un seul cycle, mais peut émettre plusieurs canaux. Par exemple, CH1, CH2, CH3 et CH4 de TIM2 peuvent produire simultanément du PWM avec différents cycles de service. Cela signifie qu'un minuteur peut piloter 4 servos sans interférer les uns avec les autres. Il vous suffit de définir la valeur CCR de chaque canal séparément pour permettre à plusieurs servos d'adopter différentes postures en même temps.
Si vous souhaitez construire un robot avec 18 degrés de liberté, vous avez besoin de plusieurs minuteries pour travailler ensemble. Regroupez les servos en groupes, tels que TIM2 pour les bras, TIM3 pour le corps et TIM4 pour les jambes. Chaque timer gère plusieurs servos qui lui sont propres. Cela rend non seulement la logique claire, mais évite également la confusion causée par un trop grand nombre d'interruptions d'une seule minuterie. C'est comme une chaîne de production dans une usine. Chaque ligne accomplit ses propres tâches afin que l'efficacité globale puisse être maximisée.
De nombreux novices aiment écrire directement dans la boucle principale pour contrôler la vitesse de rotation du servo. Par conséquent, une fois le servo tourné, la réponse des autres boutons sera lente. En fait, il est très simple d’obtenir une rotation douce, en utilisant l’idée de « machine à états ». Par exemple, si vous souhaitez que le servo tourne de 0 degrés à 90 degrés, au lieu de changer le CCR de 50 à 150 d'un seul coup, vous devez l'augmenter à chaque courte période de temps et effectuer des étapes dans l'interruption ou l'interruption de la minuterie. De cette façon, le processeur peut être occupé avec d'autres choses et le servo peut se déplacer de manière uniforme.
Vous pouvez également utiliser DMA pour vous aider. Si vous disposez d'une série de séquences d'actions prédéfinies, telles que les actions continues d'un bras de robot saisissant des objets, vous pouvez enregistrer ces valeurs CCR dans un tableau et laisser le DMA se déplacer automatiquement vers le registre de comparaison du minuteur. De cette façon, il n'y a presque aucune charge sur le processeur et le mouvement du servo peut être précis à l'échelle de la microseconde. Même si cela semble compliqué, la configuration du DMA est en réalité très simple. Une fois que vous l’aurez essayé une fois, vous connaîtrez sa puissance.
Même si le programme est parfaitement écrit, les problèmes matériels peuvent facilement rendre les gens fous. Le premier problème est celui du terrain d’entente. Le GND de la carte de développement et le GND de l'alimentation du servo doivent être connectés ensemble. Sinon, le signal de commande sera suspendu et le servo ne bougera pas ou ne tournera pas de manière aléatoire. De nombreuses personnes utilisent un multimètre pour mesurer correctement la tension, mais le signal est tout simplement erroné. Neuf fois sur dix, le fil de terre n’est pas correctement connecté. Deuxièmement, si la ligne de signal d'asservissement est trop longue, elle est susceptible d'être perturbée. Il est préférable d'utiliser une paire torsadée ou une petite résistance de 100 ohms en série.
Un autre artefact est l'analyseur logique. Un petit appareil qui coûte des dizaines de dollars, attachez-le simplement à la ligne de signal et vous pourrez voir de vos propres yeux si la forme d'onde PWM est correcte et si le temps de haut niveau est celui que vous souhaitez. Comparé au débogage aveugle, ce type de débogage visuel peut vous aider à localiser rapidement s'il s'agit d'un problème de code ou d'un problème matériel. Ne vous embêtez pas, prenez 10 minutes pour le vérifier, cela vous évitera un après-midi de devinettes.
Après avoir lu ceci, pensez-vous que le contrôle de l'appareil à gouverner est finalement assez systématique ? La prochaine fois que vous développerez un projet de robot, autant réfléchir aux points dont nous avons parlé aujourd'hui, de l'alimentation électrique à la sélection de la minuterie, du servo simple à la liaison multicanal, chaque étape est importante. Quelles œuvres intéressantes envisagez-vous d’utiliser cette technique pour créer ? Est-ce une main bionique, un robot à six pattes ou une voiture omnidirectionnelle ? Bienvenue pour partager votre créativité dans la zone de commentaires, et n'oubliez pas de l'aimer et de l'enregistrer afin que davantage de partenaires puissent jouer avec le servocommande !
Heure de mise à jour:2026-03-27
Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.