Qu'est-ce qu'un contrôleur de moteur servo ?
Définition du contrôleur de moteur servo
Un contrôleur de moteur servo (ou pilote de moteur servo) est défini comme un circuit utilisé pour contrôler la position d'un moteur servo.
Circuit du pilote de moteur servo
Le circuit du pilote de moteur servo comprend un microcontrôleur, une alimentation électrique, un potentiomètre et des connecteurs, assurant un contrôle précis du moteur.
Rôle du microcontrôleur
Le microcontrôleur génère des impulsions PWM à des intervalles spécifiques pour contrôler avec précision la position du moteur servo.
Alimentation électrique
La conception de l'alimentation électrique pour un contrôleur de moteur servo dépend du nombre de moteurs connectés. Les moteurs servo utilisent généralement une alimentation de 4,8V à 6V, avec 5V comme standard. Dépasser la tension d'alimentation peut endommager le moteur. La consommation de courant varie en fonction du couple et est plus faible en mode inactif et plus élevée lorsqu'il tourne. Le courant maximal, connu sous le nom de courant de blocage, peut atteindre jusqu'à 1A pour certains moteurs.
Pour le contrôle d'un seul moteur, utilisez un régulateur de tension comme le LM317 avec un dissipateur de chaleur. Pour plusieurs moteurs, une alimentation électrique de haute qualité avec un taux de courant plus élevé est nécessaire. Un convertisseur d'alimentation à découpage (SMPS) est un bon choix.
Schéma bloc ci-dessous montrant les interconnexions dans un pilote de moteur servo

Contrôle du moteur servo
Le moteur servo a trois bornes.
Signal de position (impulsions PWM)
Vcc (de l'alimentation électrique)
Masse

La position angulaire du moteur servo est contrôlée en appliquant des impulsions PWM de largeurs spécifiques. La durée des impulsions varie de 0,5 ms pour une rotation de 0 degré à 2,2 ms pour une rotation de 180 degrés. Les impulsions doivent être données à des fréquences autour de 50 Hz à 60 Hz.
Pour générer la forme d'onde PWM (modulation de largeur d'impulsion), comme illustré dans la figure ci-dessous, on peut utiliser soit le module PWM interne du microcontrôleur, soit les temporisateurs. L'utilisation du bloc PWM est plus flexible, car la plupart des familles de microcontrôleurs sont conçues de manière à ce que ce bloc PWM convienne mieux aux besoins des applications telles que le moteur servo. Pour différentes largeurs d'impulsions PWM, il faut programmer les registres internes en conséquence.
Maintenant, nous devons également indiquer au microcontrôleur combien il doit tourner. À cette fin, nous pouvons utiliser un simple potentiomètre et utiliser un convertisseur analogique-numérique (ADC) pour obtenir l'angle de rotation ou, pour des applications plus complexes, un accéléromètre peut être utilisé.

Algorithme du programme
Concevons le programme pour contrôler un seul servo et l'entrée de position est donnée via le potentiomètre connecté à une broche du contrôleur.
Initialiser les broches de port pour entrée/sortie.
Lire l'ADC pour la position désirée du servo.
Programmer les registres PWM pour la valeur désirée.
Dès que vous déclenchez le module PWM, la broche du canal PWM sélectionné passe à haut (logique 1) et après avoir atteint la largeur requise, elle repasse à bas (logique 0). Donc, après avoir déclenché le PWM, vous devez démarrer un temporisateur avec un délai d'environ 19 ms et attendre que le temporisateur débordeAller à l'étape 2
Il existe divers modes de PWM disponibles que vous pouvez utiliser en fonction du microcontrôleur que vous choisissez. Une certaine optimisation doit être réalisée dans le code pour contrôler le servo.
Si vous prévoyez d'utiliser plus d'un servo, vous aurez besoin d'autant de canaux PWM. Chaque servo peut recevoir le signal PWM séquentiellement. Mais vous devez veiller à ce que le taux de répétition des impulsions pour chaque servo soit maintenu. Sinon, les servos sortiront de synchronisation.