Arduino - Moteur Servo
Dans ce tutoriel, nous allons apprendre à utiliser le moteur servo avec Arduino. En détail, nous apprendrons :
- Comment fonctionne un moteur servo
- Comment programmer un Arduino pour contrôler un moteur servo
- Comment programmer un Arduino pour contrôler la vitesse d'un moteur servo
- Comment fournir la puissance supplémentaire pour les moteurs servo à couple élevé.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
À propos du servomoteur
Le servo-moteur est un composant capable de faire tourner sa manette (généralement entre 0° et 180°). Il est utilisé pour contrôler la position angulaire de l'objet.
Brochage
Le servomoteur utilisé dans cet exemple comprend trois broches :
- Broche VCC : (généralement rouge) doit être connectée à VCC (5V)
- Broche GND : (généralement noire ou marron) doit être connectée à GND (0V)
- Broche de signal : (généralement jaune ou orange) reçoit le signal de commande PWM d'une broche Arduino.
Comment ça fonctionne
Après avoir connecté la broche VCC et la broche GND à 5V et 0V, respectivement, nous pouvons contrôler le moteur servo en générant un signal PWM approprié sur la broche de signal.
L'angle est déterminé par la largeur du signal PWM.
La fiche technique du servo-moteur nous fournit les paramètres suivants :
- Période de MLI (PÉRIODE)
- Largeur minimale de MLI (LARGEUR_MAX)
- Largeur maximale de MLI (LARGEUR_MIN)
Ces paramètres sont fixés dans la bibliothèque Servo d'Arduino. Nous n'avons PAS besoin de connaître la valeur des paramètres.
L'angle est déterminé comme suit :
- Si la largeur du PWM = WIDTH_MIN, le moteur servo tourne à 0°.
- Si la largeur du PWM = WIDTH_MAX, le moteur servo tourne à 180°.
- Si la largeur du PWM est entre WIDTH_MIN et WIDTH_MAX, le moteur servo tourne à un angle compris entre 0° et 180° proportionnellement.
Arduino - Moteur Servo
Certains pins d'Arduino peuvent être programmés pour générer un signal PWM. Nous pouvons contrôler le moteur servo en connectant la broche de signal du moteur servo à une broche d'Arduino, et en programmant pour générer du PWM sur la broche d'Arduino.
Grâce à la bibliothèque Servo Arduino, contrôler un moteur servo est un jeu d'enfant. Nous n'avons même pas besoin de savoir comment fonctionne un moteur servo. Nous n'avons pas non plus besoin de savoir comment générer un signal PWM. Nous devons juste apprendre à utiliser la bibliothèque.
Diagramme de câblage
Vous pouvez trouver en ligne des schémas de câblage représentant une connexion du pin VCC d'un moteur servo directement au pin 5V de la carte Arduino, comme illustré ci-dessous. Bien que cette méthode puisse fonctionner, elle est fortement déconseillée en raison du risque potentiel d'endommager la carte Arduino.
This image is created using Fritzing. Click to enlarge image
Au lieu de cela, pour protéger votre carte Arduino, nous recommandons fortement d'utiliser une alimentation externe pour le moteur servo. Le schéma de câblage ci-dessous illustre comment connecter le moteur servo à une source d'alimentation externe.
This image is created using Fritzing. Click to enlarge image
Veuillez vous assurer de connecter le GND de l'alimentation externe au GND de la carte Arduino. Ne négligez pas cette étape cruciale pour un fonctionnement correct.
Comment programmer un moteur servo
- Inclure la bibliothèque :
- Déclarez un objet Servo :
Si vous contrôlez plus d'un moteur servo, vous devez simplement déclarer plusieurs objets Servo :
- Configurez la broche de contrôle de l'Arduino, qui se connecte à la broche de signal du moteur servo. Par exemple, la broche 9 :
- Enfin, tournez l'angle du servo-moteur à l'angle désiré. Par exemple, 90° :
Code Arduino
Étapes rapides
- Connectez l'Arduino au PC via le câble USB
- Ouvrez l'Arduino IDE, sélectionnez la carte et le port appropriés
- Copiez le code ci-dessus et ouvrez-le avec l'Arduino IDE
- Cliquez sur le bouton Upload dans l'Arduino IDE pour téléverser le code sur l'Arduino
- Voyez le résultat : le moteur servo tourne lentement de 0 à 180° puis revient lentement de 180 à 0°.
Explication du code
Vous pouvez trouver l'explication dans la ligne de commentaires du code Arduino ci-dessus.
Comment contrôler la vitesse du moteur servo
En utilisant les fonctions map() et millis(), nous pouvons contrôler la vitesse du moteur servo de manière fluide sans bloquer d'autres codes.
Vidéo
Défiez-vous
Utilisez le servomoteur pour réaliser l'un des projets suivants :
- Contrôler la position d'un moteur servo à l'aide d'un potentiomètre. Indice : Consultez Arduino - Potentiomètre.
- Ouverture/fermeture automatique de la poubelle. Indice : Consultez Arduino - Capteur ultrasonique.
Connaissances supplémentaires
- La bibliothèque Servo prend en charge jusqu'à 12 moteurs sur Arduino UNO et 48 sur l'Arduino Mega.
- L'alimentation de la broche 5V de l'Arduino peut ne pas être suffisante pour le moteur servo dans l'un des cas suivants :
- Utilisation d'un moteur servo à couple élevé, capable de porter un objet lourd.
- Utilisation de nombreux moteurs servo.
- Ne connectez pas la broche positive de la source d'alimentation supplémentaire à la broche 5V de l'Arduino.
- Vous devez connecter la broche négative de la source d'alimentation supplémentaire à la broche GND de l'Arduino.
Dans ces cas, nous pourrions avoir besoin de fournir une source d'alimentation supplémentaire pour les moteurs servo.
This image is created using Fritzing. Click to enlarge image
Comme nous pouvons le voir dans le schéma ci-dessus, la broche VCC du moteur servo ne se connecte PAS à la broche 5V de l'Arduino. Elle se connecte à la broche positive d'une source d'alimentation externe.
Veuillez noter que :