Utilisation d'un moteur pas à pas (théorie)

De Fab Lab Sud31-Val d'Ariège
Aller à la navigation Aller à la recherche

Notes

  • Notions moteur pas à pas
  • Notions pont en H

Branchement

Branchements pour utilisation d'un moteur pas à pas

Le matériel nécessaire est le suivant :

  • Un moteur pas à pas 5V (dans cet exemple, ce modèle est utilisé.
  • Un circuit double pont en H référence L293D
  • Arduino Uno, breadboard, fils…

Pour les branchements, suivre le schéma ci-contre.

  • Sont reliés à la broche 5V de l'Arduino
    • Broche « +V » du L293D (n° 16)
    • Broche « +Vmotor » du L293D (n° 8)
    • Broche « Enable 1 » du L293D (n° 1)
    • Broche « Enable 2 » du L293D (n° 9)
  • Broche GND de l'Arduino relié à une des broches « 0V » du L293D (n° 4, 5, 12 ou 13)
  • Broche 9 de l'Arduino à la broche « In 4 » de L293D (n° 15)
  • Broche 10 de l'Arduino à la broche « In 3 » de L293D (n° 10)
  • Broche 11 de l'Arduino à la broche « In 2 » de L293D (n° 7)
  • Broche 12 de l'Arduino à la broche « In 1 » de L293D (n° 2)
  • Broche « Out 1 » du L293D (n° 3) au fil bleu du moteur pas à pas
  • Broche « Out 2 » du L293D (n° 6) au fil jaune du moteur pas à pas
  • Broche « Out 3 » du L293D (n° 11) au fil rose du moteur pas à pas
  • Broche « Out 4 » du L293D (n° 14) au fil orange du moteur pas à pas
  • Le fil rouge du moteur pas à pas ne doit être relié à rien.


Code source

Le code source est repris de l'exemple de Adafruit


#include <Stepper.h>

// On défini les broches utilisés pour contrôler le moteur pas à pas
const byte in1Pin = 12;
const byte in2Pin = 11;
const byte in3Pin = 10;
const byte in4Pin = 9;

Stepper motor(513, in1Pin, in2Pin, in3Pin, in4Pin); // Déclaration du moteur pas à pas, avec en paramètres
                                                    //  le nombre de pas nécessaires pour un tour complet
                                                    //  du moteur, suivi des broches de contrôle

// La fonction setup est exécutée une unique fois quand on appuie sur le bouton RESET ou alimente la carte
void setup() {
  // On passe les broches de contrôle en mode sortie
  pinMode(in1Pin, OUTPUT);
  pinMode(in2Pin, OUTPUT);
  pinMode(in3Pin, OUTPUT);
  pinMode(in4Pin, OUTPUT);

  // On initialise le port série
  Serial.begin(9600);

  // On défini la vitesse de rotation du moteur, en nombre de tours par minute
  motor.setSpeed(10);
}

// La fonction loop est exécutée indéfiniment
void loop() {


  // On lit le nombre saisi dans le moniteur série
  if (Serial.available()) {    
    int steps = Serial.parseInt();
    
    // On fait tourner le moteur du nombre de pas saisis.
    motor.step(steps);
  }

}