Dans ce tutoriel, nous allons contrôler un servomoteur par ARDUINO UNO. Les servomoteurs sont utilisés là où un mouvement ou une position d'arbre précis est nécessaire. Ceux-ci ne sont pas proposés pour les applications à grande vitesse. Ceux-ci sont proposés pour une application à faible vitesse, couple moyen et position précise. Ces moteurs sont utilisés dans les machines à bras robotiques, les commandes de vol et les systèmes de contrôle.
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.
Composants du circuit
Matériel: ARDUINO UNO, alimentation (5v), condensateur 100uF, boutons (deux pièces), résistance 1KΩ (deux pièces), servomoteur (qui devait être testé).
Logiciel: arduino IDE (Arduino nightly).
Schéma et explication du circuit du servomoteur Arduino
Dans les cas normaux, nous devons accéder aux registres du contrôleur pour régler la fréquence et obtenir le rapport de service requis pour un contrôle précis de la position du servo, dans ARDUINO, nous n'avons pas à faire ces choses.
Dans ARDUINO, nous avons des bibliothèques prédéfinies, qui définiront les fréquences et les rapports de service en conséquence une fois le fichier d'en-tête appelé ou inclus. Dans ARDUINO, nous devons simplement indiquer la position du servo nécessaire et le PWM est automatiquement ajusté par UNO.
Les choses que nous devons faire pour obtenir une position précise du servo sont:
|
Nous devons d'abord définir la fréquence du signal PWM et pour cela, nous devons appeler «#include
Maintenant, nous devons définir un nom pour le servo «Servo sg90sevo», ici «sg90servo» est le nom choisi, donc en écrivant pour potion nous allons utiliser ce nom, cette fonctionnalité est utile lorsque nous avons de nombreux servos à contrôler, nous pouvons contrôler jusqu'à huit servos par cela.
Maintenant, nous disons à l'UNO où la broche de signal du servo est connectée ou où elle doit générer le signal PWM. Pour ce faire, nous avons «Sg90.attach (3);», ici nous disons à l'UNO que nous avons connecté la broche de signal du servo au PIN3.
Il ne reste plus qu'à régler la position, nous allons régler la position du servo en utilisant "Sg90.write (30);", par cette commande la main du servo se déplace de 30 degrés, c'est tout. Après cela, chaque fois que nous devons changer la position du servo, nous devons appeler la commande «Sg90.write (need_position_ angle);». Dans ce circuit, nous aurons deux boutons, un bouton augmente la position du servo et l'autre sert à diminuer la position du servo.
Le tutoriel de contrôle du servomoteur Arduino est expliqué étape par étape du code C ci-dessous.