Atelier n°4 : Les moteurs pas-à-pas
Programme de l’atelier
- Principe des moteurs pas-à-pas
- Commande des moteurs pas-à-pas
- Exemples
- Questions diverses
Le support de l’atelier est disponible dans le tableau en bas de page (Ressources)
Schémas
Commande d’un moteur pas-à-pas avec Arduino | Visualiser le schéma |
Commande d’un moteur pas-à-pas avec ESP8266 (ESP-12) | Visualiser le schéma |
Code pour la commande d’un moteur pas-à-pas avec Arduino
#include <Stepper.h> //Inclusion de la bibliothèque Stepper
int nbPas = 2048; //Nombre de pas pour le moteur 28BYJ-48
#define IN1 8 //Broche IN1
#define IN2 9 //Broche IN2
#define IN3 10 //Broche IN3
#define IN4 11 //Broche IN4
Stepper moteur(nbPas, IN1, IN3, IN2, IN4); //Création de l'objet moteur
void setup() {
moteur.setSpeed(10); //On définit la vitesse à 10 tr/min
}//Fin setup
void loop() {
moteur.step(nbPas); //On avance de nbPas pas, c'est à dire un tour complet (sens horaire)
delay(2000); //pause de 2s
moteur.step(-nbPas); //On avance de -nbPas pas, c'est à dire un tour complet (sens anti-horaire)
delay(2000); //pause de 2s
}//Fin loop
Code pour la commande d’un moteur pas-à-pas avec ESP8266
La procédure d’installation des bibliothèques Arduino pour l’ESP12 sont en annexe du support PDF de l’atelier.
#include <Stepper.h> //Inclusion de la bibliothèque Stepper
int nbPas = 2048; //Nombre de pas pour le moteur 28BYJ-48
#define IN1 D1 //Broche IN1
#define IN2 D5 //Broche IN2
#define IN3 D2 //Broche IN3
#define IN4 D6 //Broche IN4
Stepper moteur(nbPas, IN1, IN2, IN3, IN4); //Création de l'objet moteur
void setup() {
moteur.setSpeed(10); //On définit la vitesse à 10 tr/min
}//Fin setup
void loop() {
moteur.step(nbPas); //On avance de nbPas pas, c'est à dire un tour complet (sens horaire)
delay(2000); //pause de 2s
moteur.step(-nbPas); //On avance de -nbPas pas, c'est à dire un tour complet (sens anti-horaire)
delay(2000); //pause de 2s
}//Fin loop
Ressources
Support de l’atelier PDF | Télécharger le support au format PDF |
Documentation ULN2803 | Télécharger le document |
Pour aller plus loin
Une fois qu(un des programme a été testé avec Arduino ou ESP12 NodeMCU, nous vous invitons à faire un programme plus élaboré par exemple :
- Faire varier la vitesse du moteur pas-à-pas à l’aide d’un potentiomètre
Pour cela, on va utiliser la fonction analogRead qui va retourner une valeur comprise entre 0 et 1023
Un rappel sur les potentiomètre est disponible ici : https://www.crepp.org/les-potentiometres
- Démarrer/Stopper le moteur avec un bouton poussoir
Un rappel sur les boutons poussoir est présenté ici : https://www.crepp.org/les-boutons-poussoirs/