Comment construire un servomoteur avec un cerveau Arduino. Basé sur servoStrap https://github.com/danithebest91/servostrap
Ce programme utilise un ar...duino pour un contrôle en boucle fermée d'un moteur DC.
Le mouvement du moteur est détecté par un encodeur en quadrature.
Deux entrées nommées et Dir permettent de modifier la position cible.
Le port série imprime la position actuelle et la position cible à chaque seconde.
L'entrée en série peut être utilisée pour nourrir un nouvel emplacement pour le servo (pas de cr LF).
Broches utilisées:
Les entrées numériques 2 et 8 sont connectées aux deux signaux d'encodeur (AB).
L'entrée numérique 3 est l'entrée de pas.
L'entrée analogique 0 est l'entrée DIR.
Les sorties numériques 5 et 6 contrôlent les sorties PWM pour le moteur (j'utilise le demi-L298 ici).
Veuillez noter que les gains PID KP, KI, KD doivent être réglés à chaque configuration différente.
MISE À JOUR: Je viens d'ajouter une nouvelle version du micrologiciel que l'utilisation d'une interruption supplémentaire sur le changement de broche permettra une résolution de l'encodeur 4x. La fréquence de sortie PWM a également été augmentée en dehors de la plage audible (31KHz), mais les broches de sortie ont été modifiées, alors vérifiez les commentaires dans le code.
Mise à jour 2: J'ai téléchargé la capture d'un analyseur montrant les signaux de l'encodeur, les broches de pas et DIR et les sorties PWM d'une opération d'impression en cours. Le logiciel Saleae peut être téléchargé pour parcourir la capture (utilisez la dernière version bêta). https://www.saleae.com/downloads