Arduino comment utiliser un moteur pas à pas ( ULN2003A et 28BYJ-48 )

Aujourd’hui on va apprendre à comment utiliser un moteur pas à pas avec arduino.
On retrouve ce type de moteur dans les imprimantes 3D et tout appareil nécessitant une précision de positionnement.

Stepper Motor ULN2003A circuit

 
// Made By https://retroetgeek.com

#include <Stepper.h>

// change this to fit the number of steps per revolution
// nombre de step 
const int stepsPerRevolution = 32*64;  
// for your motor


// initialize the stepper library on pins 8 through 11
// initialisation de la librairie stepper
// (step,1N2,1N4,1N3,1N1)
Stepper myStepper(stepsPerRevolution, 9, 11, 10, 8);
//Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);


void setup() {

  Serial.begin(9600);
}

void loop() {
  // read the sensor value:
  // on lit la valeur sur le potentiometre
  int sensorReading = analogRead(A0);
  // map it to a range from 0 to 10:
  // convertie la valeur au potentiometre
  int motorSpeed = map(sensorReading, 0, 1023, 0, 10);
  
  if (motorSpeed > 0) {
    // on donne la vitesse du moteur
    // motor speed
    myStepper.setSpeed(motorSpeed);
    Serial.print("Vitesse ");
    Serial.println(motorSpeed);
    // 100 step
    myStepper.step(2048);
    delay(1500);
    myStepper.step(-2048);
    delay(1500);
  }
}


En matériel il nous faut :

  • 1 arduino
  • 1 module driver motor ULN2003A
  • 1 moteur 28BYJ-48
  • 1 potentiomètre

Pour le câblage le potentiomètre est branché sur le pin A0 de l’arduino et les deux autres coté du potentiomètre sont sur le 5V et le Gnd.
Pour la commande moteur J’utiliser les pin 8,9,10,11 de l’arduino et je les branches sur les pin 1N1, 1N2, 1N3, 1N4 et je n’oublie pas d’alimenter le module en 5 Volt.

Pour le code la librairie de base présente dans l’arduino ne nous permet que de fonctionner en 4 séquences au lieux des 8 pour le moteur. Le fonctionnement est du type led AB, led BC, led CD, led DA  au lieu de led A, led AB, led B , led BC , led C, led CD, led D, led DA.
Donc pour faire un tour complet on doit lui envoyer 32*64 soit 2048 au lieux des 4096.

Pour commencer le code j’appelle la librairie “Stepper.h” .
Je définie une constante avec le nombre de step par tour avec “const int stepsPerRevolution = 32*64;” .
J’initialise un stepper motor avec “Stepper myStepper(stepsPerRevolution, 9, 11, 10, 8);” .
ATTENTION à l’ordre des pin

Dans le setup j’ai initialisé un serial pour visualiser la vitesse moteur que l’on va définir avec le potentiomètre.
Dans la boucle nous allons lire la valeur du potentiomètre avec “analogRead(A0);”, ensuite on va mapper la valeur avec “map(sensorReading, 0, 1023, 0, 10);” qui va ici nous donner une valeur entre 0 et 10.

J’ai une condition qui déclenche le moteur si notre vitesse est supérieure à 0.
Je définis la vitesse de mon moteur avec “setSpeed(motorSpeed);” et je vais pouvoir ensuite choisir le nombre de step je souhaite faire faire au moteur avec la commande “step(mavaleur);” .

Rien de compliqué dans le code, c’est plutôt le type d’utilisation qui va certainement complexifié le code.

Télécharger le code : – TutoStepperMotor

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagramtwitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel  et à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.

Merci les RetroGeeker et RetroGeekeuse