Salut à tous !
je suis confronté à un problème pour le pilotage de mon moteur pas à pas linéaire bipolaire (une vis avance et recule) (12V, 0.4A), modèle 39BYGL215A
j'utilise un controleur L298N que j'ai branché de la facon ci dessous à mon moteur
mes diode sont des BYV27 100 Ultra fast,
j'utilise ce code la, juste pour tester le controle de mon moteur et lui faire faire un aller retour
le probleme est que lorsque je pose mon moteur a plat (vis horizontale) mon moteur vibre et la vis tourne de facon irrégulière, (on dirait qu'il subit des frottements) et ne respecte pas du tout le code
lorsque je prend mon moteur dans les mains et que je met la vis à la verticale, elle descend.. je le retourne, elle change de sens et descend dans l'autre sens toujours sans respecter le code, mais cette fois ci tourne de facon régulière (comme si il n'y avait plus de frottements)
dans le datasheet de mon moteur il est dit "rate voltage : 12V et en sortie de chaque phase j'ai mesuré 2.3V et 0.4A
est ce que mon moteur a besoin d'une alimentation exterieure pour amplifier le voltage des phase ?
je ne sais pas quoi faire, si quelqu'un peut me filer un coup de main ce serait vraiment cool
// --- 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 programmevoid 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 tensionvoid 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(100); // 100 pas en sens positif
}delay (1000);
for (int i=1; i<=NombrePas; i++){ // boucle de défilement du nombre de pas
stepper.step(-100); // 100 pas en sens négatif
}delay (1000);
} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************