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 :

  • Le moteur à réluctance variable
  • Le moteur à aimants permanents
  • Le moteur hybride, qui combine les deux technologies précédentes

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
}