Un moteur pas à pas, ou stepper motor en anglais, permet de convertir une impulsion électrique en mouvement angulaire.
Il existe trois types de moteurs pas à pas :
Pour ce projet avec la Raspberry Pi Pico, nous utiliserons un moteur à aimants permanents, le modèle 28BYJ-48.
Les moteurs pas à pas sont idéaux pour des positionnements angulaires précis, comme dans les imprimantes, les scanners et les disques durs. Ils offrent de nombreux avantages : ils sont économiques, faciles à utiliser, maintiennent leur position, peuvent tourner sans limites et changer de direction. De plus, leur rotation peut être contrôlée avec précision.
Voici le schéma pour faire fonctionner le moteur pas à pas avec une Raspberry PICO :
Voici le programme pour faire fonctionner le moteur pas à pas avec la Raspberry PICO :
// Raspberry Pi Pico + Stepper Motor Example
#define DIR_PIN 2
#define STEP_PIN 3
void setup() {
pinMode(STEP_PIN, OUTPUT);
pinMode(DIR_PIN, OUTPUT);
digitalWrite(STEP_PIN, LOW);
}
void loop() {
// Move 200 steps (one rotation) CW over one second
digitalWrite(DIR_PIN, HIGH);
for (int i = 0; i < 200; i++) {
digitalWrite(STEP_PIN, HIGH);
digitalWrite(STEP_PIN, LOW);
delay(5); // 5 ms * 200 = 1 second
}
delay(500); // Wait half a second
// Move 200 steps (one rotation) CCW over 400 millis
digitalWrite(DIR_PIN, LOW);
for (int i = 0; i < 200; i++) {
digitalWrite(STEP_PIN, HIGH);
digitalWrite(STEP_PIN, LOW);
delay(2); // 2 ms * 200 = 0.4 seconds
}
delay(1000); // Wait another second
}