Pour contrôler des servomoteurs avec un Arduino et un Sensor Shield V5.0, vous aurez besoin des éléments suivants :
Voici les étapes à suivre pour contrôler les servomoteurs :
Arduino UNO
L’Arduino UNO est un microcontrôleur populaire pour les projets de domotique, de robotique et de développement de produits électroniques. Il est facile à utiliser et à programmer grâce à son environnement de développement intégré (IDE) en open source et à sa grande communauté d’utilisateurs.
L’Arduino UNO dispose de :
L’Arduino UNO peut être utilisé avec un grand nombre de shields et de modules pour étendre ses fonctionnalités, comme le module Shield L 293D pour commander des moteurs. Il peut être programmé en utilisant un certain nombre de langages de programmation, notamment le C++ et le Processing.
En général, l’Arduino UNO est un choix idéal pour les débutants et les utilisateurs expérimentés qui cherchent à développer des projets électroniques intéressants et utiles.
Sensor Shield V5.0
Le module Sensor Shield V5.0 est une carte d’extension pour Arduino qui permet de connecter facilement différents capteurs et actionneurs à votre projet Arduino. La carte est dotée de plusieurs connecteurs qui permettent de brancher différents types de capteurs, tels que des capteurs de température, des capteurs de lumière, des capteurs de mouvement, des capteurs de distance, des modules RFID, des modules Bluetooth et des modules WiFi.
Le Sensor Shield V5.0 est équipé de bornes à vis pour les connexions électriques, ce qui facilite grandement le branchement des capteurs et des actionneurs. Il est également équipé de broches standard pour Arduino, ce qui permet de l’empiler sur la carte Arduino. La carte est compatible avec les modèles Arduino Uno, Mega, Leonardo et Due.
En plus des bornes à vis pour les connexions électriques, la carte est également équipée de bornes de connexion pour les servomoteurs et les moteurs pas à pas. Cela permet de contrôler facilement ces actionneurs à partir d’Arduino.
Le Sensor Shield V5.0 est une carte très utile pour les projets Arduino impliquant plusieurs capteurs et actionneurs. Elle facilite grandement le câblage et le branchement des différents composants. De plus, la carte est abordable et facile à trouver, ce qui en fait une option idéale pour les débutants comme pour les utilisateurs avancés.
Servomoteur
Un servomoteur est un moteur électrique qui utilise un système de retour de position pour contrôler précisément la rotation de son axe. Il est capable de tourner à des angles précis, généralement entre 0 et 180 degrés, et de maintenir sa position de manière stable. Les servomoteurs sont souvent utilisés dans les projets électroniques et robotiques pour contrôler des parties mobiles, telles que des bras robotiques, des roues, des ailerons, etc. Ils peuvent être commandés à l’aide d’un signal de commande PWM (modulation de largeur d’impulsion) généré par un microcontrôleur, tel que l’Arduino.
Un servomoteur peut être contrôlé à l’aide d’un module L293D, qui est un contrôleur de moteur à pont en H. Le module L293D est capable de fournir une tension d’alimentation et un signal PWM au servomoteur pour contrôler son positionnement précis, ainsi qu’une protection contre les surtensions et les courants élevés. Le servomoteur est connecté aux broches de sortie appropriées du module L293D, qui est lui-même connecté à un microcontrôleur, tel que l’Arduino. En utilisant un code approprié, le microcontrôleur peut générer des signaux PWM pour contrôler la position du servomoteur via le module L293D.
Batterie de 9V
Une batterie de 9 V est une source d’alimentation électrique qui fournit une tension nominale de 9 volts. Elle est souvent utilisée pour alimenter des dispositifs électroniques portables tels que des radios, des détecteurs de fumée, des calculatrices et des instruments de musique électroniques. Elle est généralement composée de six cellules sèches de 1,5 V connectées en série à l’intérieur d’un boîtier.
1- Connecter le Shield Sensor V5.0 à la carte Arduino UNO
2- Connecter le premier servomoteur au port N°0 du Shield Sensor V5.0
3- Connecter le deuxième servomoteur au port N°3 du Shield Sensor V5.0
4- Connecter le troisième servomoteur au port N°4 du Shield Sensor V5.0
5- Connecter le quatrième servomoteur au port N°7 du Shield Sensor V5.0
Voici le programme Arduino qui permet de commander quatre servomoteurs par l’Arduino et le Shield Sensor V5.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
#include <Servo.h> Servo servo1; // create servo object to control a servo Servo servo2; // create servo object to control a servo Servo servo3; // create servo object to control a servo Servo servo4; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { servo1.attach(0); // attaches the servo on pin 0 servo2.attach(3); // attaches the servo on pin 3 servo3.attach(4); // attaches the servo on pin 4 servo4.attach(7); // attaches the servo on pin 7 servo1.write(0); servo2.write(0); servo3.write(0); servo4.write(0); } void loop() { for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree servo1.write(pos); // tell servo1 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree servo2.write(pos); // tell servo2 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree servo3.write(pos); // tell servo3 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees // in steps of 1 degree servo4.write(pos); // tell servo4 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees servo1.write(pos); // tell servo1 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees servo2.write(pos); // tell servo2 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees servo3.write(pos); // tell servo3 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees servo4.write(pos); // tell servo4 to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } } |