- Matériel requis
- Schéma
- Qu'est-ce qu'un servomoteur?
- Explication du code Arduino
- Contrôle de plusieurs servos avec Arduino - Fonctionnement:
Utiliser un ou deux servo avec Arduino est facile, mais que faire si nous voulons utiliser plus d'un servomoteur?
Ici, nous allons vous montrer comment contrôler plusieurs servomoteurs avec Arduino. La connexion de plusieurs servomoteurs avec Arduino semble être facile et, mais si nous connectons tous les servos aux broches d'alimentation Arduino, ils ne fonctionneront pas correctement en raison du manque de courant suffisant pour entraîner tous les moteurs. Vous devez donc utiliser une alimentation séparée pour les moteurs, que ce soit à partir de certains adaptateurs (5v 2A) ou de batteries 9v de bonne qualité.
Matériel requis
- Arduino UNO
- Servomoteur
- Source de courant
- Planche à pain
- Connexion des fils
Schéma
Qu'est-ce qu'un servomoteur?
Avant d'entrer dans les détails, nous devons d'abord connaître les servomoteurs.
Les servomoteurs sont disponibles dans différentes formes et tailles. Un servomoteur aura principalement des fils, un pour la tension positive, un autre pour la terre et le dernier pour le réglage de la position. Le fil ROUGE est connecté à l'alimentation, le fil noir est connecté à la terre et le fil JAUNE est connecté au signal.
Un servomoteur est une combinaison de moteur à courant continu, de système de contrôle de position et d'engrenages. La position de l'arbre du moteur à courant continu est ajustée par l'électronique de commande dans le servo, en fonction du rapport cyclique du signal PWM sur la broche SIGNAL.
En termes simples, l'électronique de commande ajuste la position de l'arbre en contrôlant le moteur à courant continu. Ces données concernant la position de l'arbre sont envoyées via la broche SIGNAL. Les données de position à la commande doivent être envoyées sous forme de signal PWM via la broche Signal du servomoteur.
La fréquence du signal PWM (Pulse Width Modulated) peut varier en fonction du type de servomoteur. L'important ici est le DUTY RATIO du signal PWM. Sur la base de ce RATION DE SERVICE, l'électronique de commande règle l'arbre.
Comme le montre la figure ci-dessous, pour que l'arbre soit déplacé à 9o, la RATION DE MISE EN MARCHE doit être de 1 / 18.ie. 1 ms de temps ON et 17 ms de temps OFF dans un signal de 18 ms.
Pour que l'arbre soit déplacé à l'horloge 12o, le temps de marche du signal doit être de 1,5 ms et le temps d'arrêt doit être de 16,5 ms. Ce rapport est décodé par le système de contrôle en servo et il ajuste la position en fonction de celui-ci. Ce PWM ici est généré en utilisant ARDUINO UNO.
Avant de connecter des servos à Arduino, vous pouvez tester votre servo à l'aide de ce circuit de testeur de servomoteur. Consultez également nos projets Servo ci-dessous:
- Contrôle du servomoteur par Flex Sensor
Explication du code Arduino
Le code Arduino complet pour le contrôle de servo multiple est donné à la fin.
Arduino a une bibliothèque pour les moteurs servo et il gère toutes les choses liées au PWM pour faire pivoter le servo, il vous suffit d'entrer l'angle auquel vous voulez tourner et il y a la fonction servo1.write (angle); qui fera tourner le servo à l'angle souhaité.
Nous commençons donc ici par définir la bibliothèque du servomoteur.
#comprendre
Dans le code ci-dessous, nous initialisons les quatre servos en tant que Servo1, Servo2, Servo3 et Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Ensuite, nous définissons toutes les broches d'entrée du servo avec Arduino. Comme indiqué dans le code ci-dessous, Servo1 est connecté à la 3ème broche de l'Arduino. Vous pouvez changer les broches en fonction de vous, mais gardez à l'esprit qu'il devrait s'agir d'une broche PWM. L'utilisation d'un servo avec des broches numériques de l'Arduino n'est pas fiable.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Maintenant, dans la fonction void loop () , nous faisons simplement tourner tous les servos de 0 à 180 degrés, puis de 180 à 0 degrés. Le retard utilisé dans le code ci-dessous est utilisé pour augmenter ou diminuer la vitesse du servo car il affecte la vitesse croissante ou décroissante de la variable «i».
boucle vide () { pour (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retard (10); } pour (i = 180; i> 0; i--) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); retard (10); } }
Contrôle de plusieurs servos avec Arduino - Fonctionnement:
Nous sommes tous confrontés à des problèmes actuels en utilisant plus de deux servos avec un Arduino. La seule solution à cela est de connecter une alimentation externe avec une quantité appropriée de courant nominal (dans ce projet, j'ai utilisé 2A avec une alimentation 9v). Pour l'alimentation externe, vous pouvez utiliser des adaptateurs, RPS (Regulated Power Supply Instrument) ou des piles 9v volts de bonne qualité, vous pouvez utiliser le port USB de votre ordinateur portable pour alimenter un petit servo. Pour utiliser l'alimentation externe, il vous suffit de court-circuiter la terre Arduino à la terre d'alimentation externe.
Utilisez le code Arduino ci-dessous pour programmer votre Arduino et connectez tous les servomoteurs comme indiqué dans le schéma de circuit avec une alimentation appropriée aux moteurs. Par conséquent, tous les servos fonctionneront ensemble sans aucune interruption.