Publié 2026-03-27
Avez-vous déjà rencontré cette situation : vous souhaitez contrôler manuellement le sens de direction duservomoteur, mais vous ne savez pas comment utiliser les boutons les plus simples pour y parvenir ? Aujourd'hui, nous allons parler de la façon dont STM32 contrôle la rotation avant et arrière duservomoteurvia des boutons, afin que vous puissiez facilement répondre à cette exigence.
Le plus grand avantage de l’utilisation de boutons pour contrôler le servo est qu’il est intuitif et pratique. Imaginez que vous fabriquiez une poubelle intelligente. Le couvercle s'ouvre lorsque vous appuyez sur le bouton et se ferme lorsque vous appuyez à nouveau sur le bouton. Cette expérience interactive est-elle naturelle ? Le contrôle des boutons ne nécessite pas d'ordinateur ni d'interface compliquée. Il répond lorsqu'on appuie dessus. Il est particulièrement adapté aux prototypes de produits ou aux équipements en petits lots. De plus, le GPIO du STM32 permet de lire très simplement l'état du bouton. Cela peut être réalisé avec seulement quelques lignes de code, et le seuil de développement est particulièrement bas.
Pour ceux d'entre vous qui ont des besoins en matière d'applications d'appareil à gouverner, la commande par bouton est tout simplement « une bonne nouvelle pour les paresseux ». Par exemple, si vous souhaitez créer un distributeur automatique, appuyez sur pour distribuer de la nourriture et appuyez sur pour arrêter ; ou fabriquez un modèle de voiture télécommandé et utilisez des boutons pour contrôler l'angle de braquage. Cette méthode de contrôle est non seulement peu coûteuse, mais également très fiable. Si le bouton est cassé, il est peu coûteux de le remplacer. L’essentiel est que le coût d’apprentissage de l’utilisateur est presque nul et que n’importe qui peut appuyer sur le bouton.
Il existe différents servos sur le marché, comment choisir le bon ? Tout d’abord, examinez votre scénario d’utilisation. Si vous contrôlez simplement la direction et n'avez pas besoin de beaucoup d'efforts, un petit servo de 9 g suffit, c'est bon marché et courant. Si vous devez conduire quelque chose de plus lourd, comme un bras robotique en métal, vous devez utiliser ce servo à couple élevé. Faites attention à la tension de fonctionnement du servo. Le 5 V est courant, mais certains sont du 7,4 V. Il doit correspondre à l'alimentation électrique du STM32.
Il y a aussi la compatibilité des signaux de commande. La plupart des servos sont contrôlés par des signaux PWM avec une période de 20 ms et un temps de haut niveau de 0,5 ms à 2,5 ms correspondant à 0 à 180 degrés. Par conséquent, lors du choix d'un servo, assurez-vous de confirmer s'il s'agit d'une commande PWM standard, sinon le code devra être considérablement modifié. De plus, n'oubliez pas d'acheter une pièce de rechange supplémentaire lors de l'achat. Le servo est facile à griller lorsqu'il est bloqué, donc avoir une pièce de rechange vous permet de vous sentir à l'aise.
Les boutons et le servo sont connectés au STM32. Le câblage est la première étape et le problème le plus probable. Le bouton est généralement connecté à un port GPIO et à GND, et la résistance de rappel est activée en interne, de sorte que lorsque le bouton est relâché, il est de niveau haut et lorsqu'il est enfoncé, il est de niveau bas. Notez qu'il est préférable de connecter un condensateur de 0,1 uF aux deux extrémités du bouton pour éliminer les interférences de gigue. Le servo est connecté à l'alimentation 5V et à GND, et la ligne de signal est connectée à un autre port GPIO. Les alimentations doivent être séparées. Le courant de démarrage du servo est important et le partage de l'alimentation avec STM32 peut facilement provoquer une réinitialisation.
Voici un petit conseil : alimentez le servo séparément, et le port 5V du STM32 n'est utilisé que pour les boutons et les puces. Si l'alimentation électrique doit être partagée, la tension sera abaissée au démarrage du servo, provoquant le redémarrage du microcontrôleur. Une autre chose est de connecter tous les GND ensemble pour garantir que le potentiel de référence du signal est cohérent. Il est préférable de dessiner un schéma simple avant le câblage et de confirmer qu'il est correct avant de mettre sous tension pour éviter de brûler la carte.
![]()
La partie code n’est en fait pas compliquée. L'essentiel est d'interroger l'état du bouton et de modifier le cycle de service PWM du servo. Initialisez la minuterie pour produire PWM avec une période de 20 ms. Donnez d'abord une valeur intermédiaire telle qu'un niveau haut de 1,5 ms pour arrêter le servo à 90 degrés. Ensuite, la boucle principale détecte le bouton. Si le bouton avant est enfoncé, le cycle de service est augmenté pour augmenter l'angle du servo ; si le bouton d'inversion est enfoncé, le cycle de service est réduit. N'oubliez pas d'ajouter un délai pour éliminer la gigue, sinon il sautera plusieurs images une fois que vous appuierez dessus.
Afin d'éviter que le servo ne dépasse l'angle limite, des restrictions doivent être faites dans le code. Par exemple, après avoir été tourné à 180 degrés, il n'augmentera pas lorsqu'on appuie à nouveau ; il ne diminuera pas lorsqu'il sera inversé à 0 degré. Il y a un autre petit détail : la rotation du servo met du temps. Une pression continue et rapide peut facilement empêcher le servo de suivre le rythme. Vous pouvez mettre à jour le PWM dès que le bouton est relâché, ou attendre 200 ms après chaque pression sur le bouton pour permettre l'action suivante. Cela se sentira beaucoup mieux.
Vous rencontrerez certainement des problèmes lorsque vous le ferez pour la première fois. Le plus courant est que le servo ne bouge pas. Ne vous inquiétez pas, utilisez un multimètre pour vérifier si l'alimentation est de 5 V et s'il y a une forme d'onde sur la ligne de signal. Si vous n'avez pas d'oscilloscope, vous pouvez écrire un programme simple pour modifier les niveaux haut et bas de la broche PWM et l'observer avec une LED. Si la LED peut clignoter, cela signifie que la minuterie est correctement configurée. Regardez le servo pour voir s'il y a un son de « grésillement ». S'il y a un son, cela signifie qu'elle reçoit une force mais ne bouge pas, c'est-à-dire que la machine est bloquée.
La gigue des touches est également un problème courant, une seule pression donnant l'impression d'appuyer sur plusieurs pressions. La solution est d'ajouter un logiciel anti-rebond : après avoir détecté que le bouton est enfoncé, attendez 20 ms et relisez-le. S'il est toujours enfoncé, effectuez à nouveau l'action. De plus, s'il y a un grand nombre de clés, vous pouvez utiliser la méthode d'interruption au lieu de scanner tout le temps dans la boucle principale, ce qui économise des ressources et est sensible. Il existe en ligne des codes prêts à l'emploi pour ces problèmes, qui peuvent être utilisés avec de légères modifications.
Cette solution peut être étendue à de nombreuses choses intéressantes. Par exemple, créez un rideau intelligent à commande manuelle, appuyez sur le sens avant pour ouvrir le rideau et inversez le sens pour le fermer ; ou créez une plate-forme rotative, appuyez sur le bouton pour faire pivoter de 30 degrés pour prendre des photos. Il existe également des outillages simples qui peuvent être fabriqués dans l'industrie, avec des boutons pour contrôler le serrage et le desserrage, qui sont beaucoup moins chers que les outillages pneumatiques. Pour ceux qui fabriquent des produits, les servos commandés par bouton constituent l’une des solutions d’interaction homme-machine les moins coûteuses.
Si vous travaillez sur un projet de maison intelligente ou de bricolage, cette fonctionnalité vous sera certainement utile. Pensez-y, l'utilisation de STM32 et l'ajout de quelques boutons et servos peuvent répondre à de nombreux besoins de contrôle manuel, et il est stable et fiable. La clé est que le code et le matériel sont simples, que les paramètres peuvent être modifiés pour s'adapter à différents projets, et que la réutilisabilité est particulièrement forte. De nombreux petits produits utilisent cette méthode pour vérifier rapidement leurs fonctions, puis les optimiser et les mettre à niveau.
Quelles nouvelles astuces pensez-vous pouvoir utiliser avec le servo et les boutons dans votre projet ? N'hésitez pas à partager vos idées dans la zone de commentaires, ou recherchez directement sur notre site officiel pour voir plus de cas pratiques STM32. Aimez et enregistrez cet article pour ne pas vous perdre la prochaine fois que vous l'utiliserez !
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.