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/