Maison > Aperçu de l'industrie >Servomoteur
ASSISTANCE TECHNIQUE

Code servo d'entraînement pwm, méthode de servocommande simple et facile à comprendre

Publié 2026-02-13

Avez-vous déjà rencontré cette situation : vous avez unservomoteuravec une grande joie et je voulais le faire bouger, mais du coup, vous avez écrit beaucoup de code et leservomoteursoit il n'a pas bougé, soit il a tremblé comme une convulsion ? Ne vous inquiétez pas, c'est probablement parce que je ne comprends pas le PWM (Pulse width Modulation). En termes simples, le PWM est comme un « signal » spécifique envoyé à l'appareil à gouverner. En modifiant la largeur de l'impulsion, il lui dit de « se tourner vers cet angle » ou de « se tourner vers cet angle ». Dans cet article, nous allons bien comprendre ce « signal secret » et rendre votre appareil à gouverner obéissant.

Comment contrôler leservomoteurangle avec code

Si vous souhaitez que le servo tourne selon un angle spécifié, le noyau doit lui envoyer un signal PWM avec une période de 20 millisecondes (ms), puis ajuster la durée du niveau haut, qui est la largeur d'impulsion. Généralement, une impulsion de 1 ms correspond à -90°, 1,5 ms correspond à 0° et 2 ms correspond à +90°.

Dans le code, vous n'avez pas besoin de compter manuellement ces dizaines de microsecondes. La plupart des cartes de développement (comme) ont des fonctions de bibliothèque prêtes à l'emploi. Par exemple, en utilisant leServo.hbibliothèque, il vous suffit de.écrire(90), et il calculera automatiquement la largeur d'impulsion correspondante pour vous, et continuera à émettre le signal, et le servo tournera régulièrement à 90°.

Pourquoi le servo vibre-t-il toujours ?

La gigue est certainement la chose la plus ennuyeuse pour les débutants. La raison la plus probable est que l’alimentation électrique du servo n’est pas suffisante. Le servo nécessite un courant relativement important lors de la rotation. Si vous utilisez directement la broche 5 V de la carte de développement pour l'alimenter, la tension deviendra facilement instable, ce qui entraînera une confusion du signal et le servo commencera à trembler. À ce stade, préparez une alimentation externe séparée pour le servo, comme plusieurs batteries, et connectez le fil de terre de l'alimentation au fil de terre de la carte de développement, et le problème peut être fondamentalement résolu.

Une autre cause fréquente est l'interférence sur la ligne de signal. Si votre ligne de connexion est très longue ou s'il y a des équipements électriques puissants tels que des moteurs et des transformateurs à proximité, les signaux d'interférence se mélangeront. La solution consiste à utiliser autant que possible des lignes DuPont plus courtes ou à garder les lignes de signaux d'asservissement éloignées des sources d'interférences.

Quels paramètres PWM affectent les performances du servo

Il existe trois paramètres PWM les plus pertinents pour les performances du servo : la fréquence, le rapport cyclique et la résolution. La fréquence PWM requise par le servo est fixée à 50 Hz, soit une période de 20 ms, et elle ne peut pas être modifiée de manière aléatoire.

Le cycle de service est la proportion du temps de haut niveau par rapport à l'ensemble du cycle. Par exemple, à un niveau élevé de 2 ms, le rapport cyclique est de 10 %. On ajuste l'angle du servo en changeant ce rapport. La résolution fait référence au nombre de parties que votre panneau de commande peut subdiviser dans un cycle. Par exemple, une résolution de 8 bits est divisée en 256 parties. Plus la résolution est élevée, plus la rotation du servo sera fluide et précise, sans la sensation de sauter d'une image à l'autre.

Quels sont les pièges courants lors de l’écriture de code ?

Lorsque vous commencez à écrire du code, l’erreur la plus courante que vous faites est d’oublier de l’initialiser. j'ai seulement écrit.(9), mais j'ai oublié de l'écrireinstallation()fonction, ou le numéro de broche a été mal écrit, et bien sûr le servo n'a pas répondu. N'oubliez pas de vérifier votre code pour vous assurer que l'objet servo est correctement connecté à la broche sur laquelle vous l'avez réellement branché.

Un autre écueil concerne la fonction temps. Si vous voulez réaliser "tournez d'abord à 90°, attendez 2 secondes, puis tournez à 0°", n'utilisez pas beaucoup deretard()danspourboucle pour obtenir une rotation lente, sinon tout le programme sera bloqué. La bonne approche consiste à utiliser le()fonction de synchronisation ou d'utilisation.écrire()avec une méthode non bloquante consistant à augmenter progressivement la valeur de l'angle, de sorte que le servo puisse gérer d'autres tâches tout en effectuant une transition en douceur.

Comment obtenir un asservissement multicanal dans un gameplay avancé

Lorsque vous devez fabriquer un bras pour un robot et contrôler plusieurs servos en même temps, vous pouvez simplement connecter les broches une par une, mais cela prendra beaucoup de ressources en broches et le code sera très compliqué à écrire. Une meilleure option consiste à utiliser une carte de servomoteur, comme celle-ci.

Il peut contrôler jusqu'à 16 servos via deux lignes de signal (protocole I2C), et les impulsions de chaque canal peuvent être ajustées indépendamment. Dans le code, il vous suffit d'appeler la fonction de bibliothèque correspondante, telle quepwm.(0, 0, 300), pour contrôler le servo sur le canal 0. De cette façon, votre carte de contrôle principale est libérée, la structure du code est beaucoup plus claire et il est facile de contrôler des dizaines de servos.

Comment vérifier rapidement votre code servo

Une fois le code écrit, comment savoir rapidement s’il est correct ? Le plus simple est d'écrire un programme "sweeping leg" : tournez lentement le servo de 0° à 180°, puis inversement, et le cycle continue. S'il n'y a pas de décalage ou de gigue pendant la rotation et que la plage d'angle est précise, cela signifie que votre connexion matérielle de base et votre logique de code fonctionnent fondamentalement bien.

️ Les étapes spécifiques sont très simples :

1. Dansinstallation(), connectez le servo à la broche spécifiée.

2. Dansboucle(), utilisez d'abord unpourboucle pour augmenter l'angle de 0 à 180, en augmentant de 1 degré à chaque fois et en ajoutant un petit délai.

3. Utilisez-en un autrepourboucle pour réduire l'angle de 180 à 0, et ajouter également un délai.

Regarder le servo se balancer doucement d'avant en arrière de vos propres yeux vous donne un bien plus grand sentiment d'accomplissement que de le fixer directement à un angle, et cela vous aide également à comprendre l'essence du contrôle PWM.

En voyant cela, vous devriez avoir une bonne idée de la façon d'utiliser PWM pour contrôler le servo. Dépêchez-vous et essayez-le. Si un servo est utilisé dans votre projet, pensez-vous que le plus gros casse-tête est le problème d'alimentation électrique ou le codage du contrôle multicanal ? Bienvenue pour partager votre point de vue dans la zone de commentaires, et n'oubliez pas de liker et de partager ces informations utiles avec plus d'amis qui en ont besoin !

Heure de mise à jour:2026-02-13

Alimenter l’avenir

Contactez le spécialiste des produits Kpower pour recommander un moteur ou une boîte de vitesses adapté à votre produit.

Courrier à Kpower
Soumettre une demande
+86 0769 8399 3238
 
kpowerCarte