ACCUEIL | ARDUINO > S'INSTALLER > DEBUTER > APPROFONDIR | PROCESSING | MECATRONIQUE | MATERIEL | OUTILS | TESTS | Plus...|
ATELIERS Python + Qt | Mes Robots | RepRap | Mes lib'Arduino | Mes shields Arduino | Mes distros | RaspberryPi |
ATELIERS ARDUINO| VIDEOS | COMPRENDRE | REFERENCES | CODER | TECHNIQUE | GNU/LINUX | LIENS | Rien à voir |
Test simple de la rotation d'un moteur pas à pas bipolaireARDUINO - EXPERT - MOTEURS PAS A PAS PrésentationCe programme teste la rotation d'un moteur pas à pas bipolaire connecté sur 4 broches via une interface double driver (ici une carte Dual Driver 1A (basée sur TB6612FNG) - 6 euros environ). Le programme réalise une rotation complète du moteur dans 1 sens, puis dans l'autre sens. Voir également la librairie Stepper Ce programme utilise les fonctionnalités suivantes :
Matériel NécessaireL'espace de développement Arduino
![]() Le matériel suivant pour réaliser le montage associé
![]()
![]()
![]() Disponible ici (6 Euros) : http://www.watterott.com/Motor-Driver-1A-Dual-TB6612FNG_1 Instructions de montage
Le schéma théorique du montage![]() Le schéma théorique du montage Le circuit du montage
![]() Le schéma du montage à réaliser Explication du programmeStructure globale du programmeCe programme simple comprend :
Déroulement du programmeLe programme se déroule de la façon suivante :
![]() Le déroulement du programme Au niveau de la partie déclarative :Inclusion des librairies utilisées
#include <Stepper.h> // librairie pour servomoteur Déclaration de constantes utiles
const int NombrePas=200; // Nombre de pas du servomoteur Déclaration des constantes de broches
const int Pas_1=2; //declaration constante de broche const int Pas_2=3; //declaration constante de broche const int Pas_3=4; //declaration constante de broche const int Pas_4=5; //declaration constante de broche Déclarations des objets utiles pour les fonctionnalités utilisées
Stepper stepper(NombrePas, Pas_1, Pas_2, Pas_3, Pas_4); // crée un objet Stepper pour contrôler le moteur pas à pas Au niveau de la fonction d'initialisation setup( ) :Initialisation des fonctionnalités utilisées :
// initialise la vitesse de rotation du moteur pas à pas en tour par minute stepper.setSpeed(30); configuration des broches utilisées :
pinMode(Pas_1, OUTPUT); //met la broche en sortie pinMode(Pas_2, OUTPUT); //met la broche en sortie pinMode(Pas_3, OUTPUT); //met la broche en sortie pinMode(Pas_4, OUTPUT); //met la broche en sortie Au niveau de la boucle principale, la fonction loop ( ) :
for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
stepper.step(1); // un pas en sens positif
}
delay (1000);
for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
stepper.step(-1); // un pas en sens négatif
}
delay (1000);
Se reporter aux commentaires présents dans le programme pour plus de détails. Mise en oeuvre du programmePréparation du montage et programmation de la carte Arduino :
Fonctionnement
Le programme complet en langage Arduino :A copier/coller directement dans l'éditeur Arduino
// --- Programme Arduino ---
// par X. HINAULT - Le 10/03/2010
// www.mon-club-elec.fr
// --- Que fait ce programme ? ---
/* teste moteur pas à pas bipolaire connecté via interface sur 4 broches*/
// --- Fonctionnalités utilisées ---
// Utilise un ou plusieurs moteurs pas à pas
// --- Circuit à réaliser ---
// Connecter sur la broche 2 (configurée en sortie) la broche de commande du pas 1 du moteur pas à pas
// Connecter sur la broche 3 (configurée en sortie) la broche de commande du pas 2 du moteur pas à pas
// Connecter sur la broche 4 (configurée en sortie) la broche de commande du pas 3 du moteur pas à pas
// Connecter sur la broche 5 (configurée en sortie) la broche de commande du pas 4 du moteur pas à pas
//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...
// --- Inclusion des librairies utilisées ---
#include <Stepper.h> // librairie pour moteurs pas à pas
// --- Déclaration des constantes ---
const int NombrePas=200; // Nombre de pas du servomoteur
// --- constantes des broches ---
const int Pas_1=2; //declaration constante de broche
const int Pas_2=3; //declaration constante de broche
const int Pas_3=4; //declaration constante de broche
const int Pas_4=5; //declaration constante de broche
// --- Déclaration des variables globales ---
// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
Stepper stepper(NombrePas, Pas_1, Pas_3, Pas_2, Pas_4); // crée un objet Stepper pour contrôler le moteur pas à pas
// Pas_1 et Pas_3 commandent la 1ère phase, Pas_2 et Pas_4 la 2ème phase
//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
void setup() { // debut de la fonction setup()
// --- ici instructions à exécuter au démarrage ---
// initialise la vitesse de rotation du moteur pas à pas en tour par minute
stepper.setSpeed(200);
// ------- Broches en sortie -------
pinMode(Pas_1, OUTPUT); //met la broche en sortie
pinMode(Pas_2, OUTPUT); //met la broche en sortie
pinMode(Pas_3, OUTPUT); //met la broche en sortie
pinMode(Pas_4, OUTPUT); //met la broche en sortie
// ------- Broches en entrée -------
// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------
} // fin de la fonction setup()
// ********************************************************************************
//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
void loop(){ // debut de la fonction loop()
// --- ici instructions à exécuter par le programme principal ---
for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
stepper.step(1); // un pas en sens positif
}
delay (1000);
for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
stepper.step(-1); // un pas en sens négatif
}
delay (1000);
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************
//*************** Autres Fonctions du programme *************
// --- Fin programme ---
// ----- mémo moteur pas à pas ---
// stepper.step(valeur); // fait tourner le moteur du nombre pas indiqués - sens + et -
// Stepper stepper(Nombre_Pas, Pas1, Pas2, Pas3, Pas4); // crée un objet Stepper
// stepper.setSpeed(30); // fixe la vitesse de rotation du moteur en nombre de tours par minute
//
|