Pour commander des servomoteurs avec l’Arduino et le module Shield L293D, vous pouvez suivre les étapes suivantes :
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.
module Shield L293D
Le module Shield L293D est un circuit intégré qui permet de contrôler et d’alimenter des moteurs DC ou des moteurs pas à pas. Il est conçu pour être utilisé avec des microcontrôleurs tels que l’Arduino, et peut faciliter la mise en œuvre de projets de robotique et de domotique.
Le module Shield L293D dispose de :
Le module Shield L293D peut être utilisé avec l’Arduino UNO ou tout autre microcontrôleur compatible pour contrôler les moteurs DC. Il est facile à utiliser et à intégrer dans des projets de robotique et de domotique, car il nécessite peu de composants externes pour fonctionner.
En utilisant le module Shield L293D avec l’Arduino, vous pouvez développer des projets tels que des robots mobiles, des robots suiveurs de ligne, des robots de jeux, des robots de nettoyage, et bien plus encore. Il est important de noter que le module Shield L293D peut alimenter des moteurs de faible puissance seulement, donc si vous avez des moteurs plus puissants, vous devrez utiliser un autre type de contrôleur de moteur.
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.
Pour contrôler quatre moteurs DC de 5 V :
1- On branche le module L293D à la carte Arduino UNO
2- On connecte le premier servomoteur au port servo1 du module L293D
3- On connecte le deuxième servomoteur au port servo2 du module L293D
Voici le programme Arduino qui permet de commander deux servomoteurs par la carte Arduino et le module Shiel L293D :
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 |
#include <Servo.h> Servo servo1; // create servo object to control servo 1 Servo servo2; // create servo object to control servo 2 int pos = 0; // variable to store the servo position void setup() { servo1.attach(9); // attaches the servo on pin 9 to the servo object servo2.attach(10); // attaches the servo on pin 10 to the servo object servo1.write(0); servo2.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 = 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 } } |