Moteur pas à pas Velleman

Salut à tous,
Je suis embetté avec un moteur pas à pas,
-j'ai une carte Arduino/Genuino Uno
-Une carte arduino motor shield (VMA03)
-Un moteur pas à pas venant d'un charly robot (A2405-9212-A2)
Donc j'ai essayé plusieurs programme en vain à chaque fois le moteur ne fais que vibrer, on dirait que le moteur n'a pas assez d'alimentation, ou alors mon programme est complétement faux, étant donné que je suis très nul en codage c'est un programme que j'ai récupéré un programme sur internet qui est censé être utilisable avec mon moteur et mes cartes arduino, s'il vous plaît aidez moi je suis vraiment très mal je demande à votre part d'humanité de m'aider car ça fait déjà beaucoup de temps que je consacre à ce moteur pour rien, ça me fous l'air.
Je dois l'utiliser pour faire avancer le pas de vis qui est fournit avec la machine pour faire avancer le poids qui sera disposé dessus pour équilibré une balançoire à bascule.

// --- Programme Arduino ---
// par X. HINAULT - Le 10/03/2010
// www.mon-club-elec.fr 

// --- Que fait ce programme ? ---
/* teste moteur pas à pas bipolaire connecté via interface sur 4 broches*/

// --- Fonctionnalités utilisées ---
// Utilise un ou plusieurs moteurs pas à pas 

// --- Circuit à réaliser ---
// Connecter  sur la broche 2 (configurée en sortie)  la broche de commande du pas 1 du moteur pas à pas
// Connecter  sur la broche 3 (configurée en sortie)  la broche de commande du pas 2 du moteur pas à pas
// Connecter  sur la broche 4 (configurée en sortie)  la broche de commande du pas 3 du moteur pas à pas
// Connecter  sur la broche 5 (configurée en sortie)  la broche de commande du pas 4 du moteur pas à pas

//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...

// --- Inclusion des librairies utilisées ---

#include <Stepper.h> // librairie pour moteurs pas à pas

// --- Déclaration des constantes ---
const int NombrePas=200; // Nombre de pas du servomoteur 

// --- constantes des broches ---

const int Pas_1=2; //declaration constante de broche 
const int Pas_2=3; //declaration constante de broche 
const int Pas_3=4; //declaration constante de broche 
const int Pas_4=5; //declaration constante de broche 

// --- Déclaration des variables globales ---

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
Stepper stepper(NombrePas, Pas_1, Pas_3, Pas_2, Pas_4);  // crée un objet Stepper pour contrôler le moteur pas à pas
// Pas_1 et Pas_3 commandent la 1ère phase, Pas_2 et Pas_4 la 2ème phase 


//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage --- 

// initialise la vitesse de rotation du moteur pas à pas en tour par minute
stepper.setSpeed(200);  

// ------- Broches en sortie -------  

pinMode(Pas_1, OUTPUT); //met la broche en sortie 
pinMode(Pas_2, OUTPUT); //met la broche en sortie 
pinMode(Pas_3, OUTPUT); //met la broche en sortie 
pinMode(Pas_4, OUTPUT); //met la broche en sortie 

// ------- Broches en entrée -------  


// ------- Activation du rappel au + interne des broches en entrée si nécessaire -------  


} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// --- ici instructions à exécuter par le programme principal --- 

for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
  stepper.step(1); // un pas en sens positif
}


delay (1000); 

for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
  stepper.step(-1); // un pas en sens négatif
}

delay (1000); 

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

// --- Fin programme ---


// ----- mémo moteur pas à pas ---  
//  stepper.step(valeur); // fait tourner le moteur du nombre pas indiqués - sens + et - 
// Stepper stepper(Nombre_Pas, Pas1, Pas2, Pas3, Pas4); // crée un objet Stepper  
//  stepper.setSpeed(30); // fixe la vitesse de rotation du moteur en nombre de tours par minute 
//

Bonjour,

je viens de tester ce même moteur et je suis aussi un peu surpris par son fonctionnement.

Pour le matériel :

Il est alimenté par une source de 5V indépendante, et heureusement car en peu de temps il est très chaud (peut être 40°C au touché). Il faut donc une source suffisante je dirais 2A.

Pour le soft :

Le moteur est de 64 pas par tour

On commence par définir une vitesse
et ensuite on lui indique de combien de pas on veut qu'il se déplace.

Attention ce moteur à un réducteur de 1/64. Si on veut que l'arbre de sortie fasse un tour il faut donc lui demander de faire une rotation de 64*64 pas. Les essais ne sont pas concluants.

64pas donne pour un tour de moteur un angle en sortie de 360/64=5°.

Pour la vitesse si on lui envoi une trame trop rapide, le rotor ne pourra pas suivre, c'est un problème de couple et d'inertie.
ex vitesse=1000 il fait du sur place

Pour le signe négatif, le moteur tourne pour moi toujours dans le même sens ??

#include <Stepper.h>

//pour un moteur de 64 pas par tour et brancher sur les broches 2, 3, 4, 5
Stepper moteur(64, 2, 3, 4, 5);

void setup()
{
moteur.setSpeed(20);

}
void loop()
{moteur.step(64); //5°
delay(500);
moteur.step(-16*64); //90°
delay(500);
}

Pour le moteur j'ai trouvé cela :

Modèle : 28BYJ-48 – 5V
tension de service : 5 Vcc
nombre de phases : 4
pas : 64
rapport de réduction : 1:64
diamètre : 28 mm
Stride Angle : 5.625° /64
Frequence : 100Hz
DC résistance 50Ω±7%(25℃)
Idle In-traction Frequency : > 600Hz
Idle Out-traction Frequency :> 1000Hz
Couple de traction : >34.3mN.m(120Hz)
Couple de positionnement automatique : >34.3mN.m
Couple de friction : 600-1200 gf.cm
Couple de poussée : 300 gf.cm
Résistance d’isolation : >10MΩ(500V)
Puissance électrique d’isolation : 600VAC/1mA/1s
Classe d’isolation : A
Montée en température : <40K(120Hz)
Bruit : <35dB(120Hz,No load,10cm)