Moteur Pas à Pas (UNL2003)
Matériel testé : moteur pas à pas 28BYJ-48 et module UNL2003
- Type : unipolaire
- Tension : 5V
- Nombre de pas par tour : 2048
En savoir plus sur les moteurs pas à pas : https://si.blaisepascal.fr/1t-moteur-pas-a-pas/
Câblage

Programmation
En langage C
Bibliothèque : TinyStepper.h
#include <TinyStepper.h>
// Ports numériques utilisés
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
// Nombre de demis-pas par tours
#define HALFSTEPS 4096
// Initialisation du moteur
TinyStepper stepper(HALFSTEPS, IN1, IN2, IN3, IN4);
void setup()
{
Serial.begin(38400);
stepper.Enable();
delay(1000);
}
void loop() {
// Mouvements relatifs (en degrés)
stepper.Move(45);
stepper.Move(-90);
stepper.Move(120);
stepper.Move(-15);
stepper.Move(30);
stepper.Move(-300);
stepper.Move(600);
stepper.Move(-100);
delay(2000);
// Tour complet avec phases d'accélération/décélération
stepper.AccelMove(360);
stepper.AccelMove(-360, 1, 10);
delay(2000);
}
Bibliothèque : Stepper.h
#include <Stepper.h>
const int stepsPerRevolution = 2048; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(15);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
Avec MATLAB/Simulink
…
Dépannage
Le moteur vibre un peu n’importe comment, mais ne tourne pas !
C’est très probablement dû à une inversion de polarité des bobines.
Dans le programme, inverser les numéros de ports des 2 broches « centrales ». Dans l’exemple ci-dessous, inverser les ports 9 et 10 :
#define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11
