ULN2003 5V à 12V, mais attention au moteur 28BYJ-48 5V ou 12V max !
Spécifications moteur pas à pas 28BYJ-48 5V et 12V
/**
* Stepper Motor Control. This sketch drives a stepper motor
* Author: Eric VALLEE
*/
#include <Stepper.h>
#define STEPS 100 // Couple Max
// Créer une instance de la classe stepper
// L'ULN2003 (fils 1 2 3 4) est branché sur les sorties 4 5 6 7
// de l'Arduino (et sur GND, +V)
// Stepper small_stepper(STEPS, 4, 6, 5, 7); // Sens horaire
Stepper small_stepper(STEPS, 7, 5, 6, 4); // Sens anti-horaire
int Steps2Take = 0; //Nombre de pas de rotation souhaité
long temps = 0; //Durée de rotation pour un tour
//************************************************************
// Selon les spécifications du moteur
// 64 pas par tour, 4 phases, angle de 5.625°
// Démultiplication 1:64 pour ce moteur réducteur mécanique
// 360°/5.625°x64=4096 angles avec la démultiplication
// 360°/5.625°x64x4 bobines/2 bipolaire=2048 step / tour
void setup() {
Serial.begin(9600); // 9600 bps
Serial.println("Test de moteur pas a pas");
}
void loop() {
Serial.println("Moteur en marche ");
//Faire tourner le moteur
small_stepper.setSpeed(1);
// Vitesse de 300 (max) réduire ce chiffre pour un mouvement
// plus lent. 100 permet d'avoir un couple élevé >300 le
// moteur vibre sans tourner
Steps2Take = 2048;
// Une rotation compl�te avec 2048 pas (1 tour environ 4.5sec)
//Pour tourner à l'envers de 6 fois 1/30eme de tour,
// simplement multiplier Steps2Take par 6/30 et mettre un
// moins pour inverser le sens
// Exemple Steps2Take = -6*2048/30;
temps = millis();
small_stepper.step(Steps2Take); //Ca tourne
temps = millis()- temps ;
//Chronométre un rour complet 6.236 sec par tour à vitesse 100
Serial.println(temps);
//Affiche le temps (en ms) pour un tour complet
delay(2000); //pause
}