PrécédentLes servomoteurs15 / 24SuivantIntroduction
3. Les microcontrôleurs

Les moteurs pas-à-pas

Les moteurs pas-à-pas

moteur pas-à-pas  moteurs pas-à-pas 

Les sont utilisés lorsqu'on souhaite un asservissement en position d'un axe de rotation avec une précision inégalée par les servomoteurs.

Constitution

Les sont constitués de :

Les types de

Principe

En faisant varier le champ électromagnétique des différentes phases, on peut faire varier la position angulaire de l'aimant.

Exemples avec phases bipolaires

En alimentant une paire de phases avec une tension positif, l'aimant se place dans l'alignement du champ électromagnétique formé par la paire de phase.
En alimentant la paire de phase avec une tension négative, l'aimant se place dans le sens contraire.

Pas 1
Pas 1
Pas 2
Pas 2
Pas 3
Pas 3

Exemples avec phases unipolaires

Pas 1
Pas 1
Pas 2
Pas 2
Pas 3
Pas 3

Les moteurs possèdent plus de phases car un débattement de 45° est vite limité.

Un intérieur de moteur
Un intérieur de moteur

Les unipolaires présentent l'avantage de faire circuler un courant positif dans le circuit de commande. Ils sont donc plus simples à mettre en oeuvre mais ils nécessitent plus de bobinage.

Commande des

Moteurs unipolaires

Les unipolaires ont besoins d'être contrôlés via un circuit adaptés, le plus connu est le REFULN2803
Driver ULN2803
Driver ULN2803

Pour les moteurs unipolaires, il faut mettre une des phases à la masse pour faire circuler le courant dans la phase  [2]

On constate sur la figure suivante un montage Darlington : deux transistors NPN forme un seul transistor dont le coefficient $\beta$ est le produit de chacun des coefficients $\beta$ de chaque transistor.

Cela permet de contrôler des charges avec très peu de courant de commande.  [3]

Contrôle d'une phase
Contrôle d'une phase
Driver de controle
Driver de controle

Moteurs bipolaires

On a vu qu'il fallait inverser la tension de commande au borne des bobines. Pour cela on peut utiliser le montage en pont en H.

Structure du pont en H
Structure du pont en H

Et qui dit inversion de courant dit inversion de tension. Notre objectif est atteint, nous pouvons mettre des tensions positives et négatives aux bornes des phases de nos moteurs.

Ce principe est également utilisé pour contrôler les moteurs à courant continu

On peut utiliser le circuit REFL298

Un pont en H intégré
Un pont en H intégré

Avantages et inconvénients des

Domaines d'application

Comment distinguer les différents types de moteurs ?

Mise en pratique avec Arduino

Nous utiliserons un 28BYJ-48 de type unipolaire.

Le moteur 28BYJ-48
Le moteur 28BYJ-48

Les caractéristiques sont les suivantes :

Pour augmenter le nombre de pas, on ajoute un train d'engrenage.

Une augmentation du nombre de pas
Une augmentation du nombre de pas

Notes

  1. Contrôle sans asservissement, contrairement aux servomoteurs

  2. Due au câble relié à l'alimentation positive du moteur

  3. Se référer à la partie Circuits de puissance

Liste du matériel

Branchements

Nous utiliserons les broches 8, 9, 10 et 11 et l'alimentation 5V du moteur sera fournie par la broche +5V de l'Arduino

Schéma Arduino
Schéma Arduino

Code C++

Ce code fait tourner le moteur d'un tour, attend 2 secondes puis fait un tour dans l'autre sens avec un délai de 2s.

C++

Code

#include  //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

Mise en pratique avec l'ESP12 NodeMCU

Nous utiliserons le même 28BYJ-48

Liste du matériel

Branchements

Les numéros des broches sont différents sur les cartes ESP812 (modèle NodeMCU).
Voici les équivalences des broches entre le code et l'emplacement physique.

Broches ESP12
Broches ESP12

Nous utiliserons les broches D1, D2, D5 et D6 et l'alimentation 5V du moteur sera fournie par la broche Vin de l'ESP12

Schéma ESP12
Schéma ESP12

Code ESP12

Ce code fait tourner le moteur d'un tour, attend 2 secondes puis fait un tour dans l'autre sens avec un délai de 2s.

C++

Code minimaliste ESP12

#include  //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, 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
PrécédentLes servomoteurs15 / 24SuivantIntroduction