Un tutoriel pour contrôler deux moteurs à courant continu avec la carte Esus.
Contrôle de deux moteurs
Vous avez besoin :
- Une carte Esus,
- Une alimentation ou une batterie,
- Deux moteurs CC.
Attention , le courant maximum de sortie des ponts en H est de 1.2 A !
Le branchement
- Les moteurs sont à connecter sur le bornier ci dessous :
Ce bornier est relié au composant L293, c’est un double pont en H.
Contrôle des moteurs
Pour contrôler un moteur avec la carte Esus, il faut utiliser la fonction :
void motors1_set(unsigned int speed, boolean direction); void motors2_set(unsigned int speed, boolean direction);
Un peu d’explication pour ces fonctions:
- motors1_set : permet de contrôlé la vitesse et la direction d’un moteur. Cette fonction gère un moteur sur la bornier gauche de la carte Esus.
- motors2_set : permet de contrôlé la vitesse et la direction d’un moteur. Cette fonction gère un moteur sur la bornier droit de la carte Esus.
- La vitesse varie entre 0 et 1023.
- La direction est de type boolean (true ou false) :
- DIR_FORWARD = true
- DIR_BACK = false
Contrôle d’un moteur
- Initialisation de la carte Esus :
#include <esusBoard.h>
void setup()
{
// initialisation de la carte Esus
initEsusBoard();
}
void loop()
{
}
- Ensuite, appel de la fonction de la commande moteur :
void loop()
{
// commande moteur avec la vitesse max
motors1_set(1023, true);
}
- Et, maintenant pour contrôler deux moteurs :
void loop()
{
// commande moteur avec la vitesse max
motors1_set(1023, DIR_FORWARD);
motors2_set(1023, DIR_BACK);
}
Exercice
Réaliser un programme pour faire avancer deux moteurs dans un sens, puis après 2 secondes dans un autre sens. Avec une vitesse de 50% de la vitesse maximum.
Réponse :
void loop() { motors1_set(1023/2, DIR_FORWARD); motors2_set(1023/2, DIR_FORWARD); delay(1000); motors1_set(1023/2, DIR_BACK); motors2_set(1023/2, DIR_BACK); delay(1000); }