Programme Arduino

Maroala Messages postés 1 Statut Membre -  
 Maroala -
Bonjour,
Je suis nouveau sur ce site et nouveau dans arduino.
J'ai fait un programme de contrôle de moteur pas à pas avec la bibliothèque stepper et le petit moteur 28BYJ.
Mon problème: la vitesse commandée par la méthode setSpeed me parait fausse.
Voir le listing ci-dessous.
Qu'en pensez-vous?
Merci pour vos réponses.

#include <Stepper.h>
#define STEPS 2048 //nombre de pas par tour avec le réducteur
//Créer une instance de la classe stepper
//Le moteur (fils 1 2 3 4) est branché sur les sorties 8 9 10 11 de l'Arduino (et sur GND, +V)
Stepper small_stepper(STEPS, 8, 10, 9, 11); // Sens horaire 8 et 10 même bobine 9 et 11 même bobine
//Stepper small_stepper(STEPS, 11, 10, 9, 8); // Sens anti-horaire en inversant 8 et 11 (si on préfère)
int Steps2Take = 0; //Nombre de pas de rotation demandé au moteur
long temps = 0;

//************************************************************
void setup()
{
Serial.begin(9600); // 9600 bps
Serial.println("Test de moteur pas a pas");
}
void loop()
{
//Faire tourner le moteur
small_stepper.setSpeed(10); //variable en tours par minute avec le réducteur. Avec la valeur 10, le moteur fait 20480 pas en 41,6 secondes au lieu de 1 min
//Réduire ce chiffre pour un mouvement plus lent
//minimum 1 et maximum 14. Au delà, les pas sautent. en deçà, il faut diminuer "steps 2048" au début du prog et modifier Steps2Take
Steps2Take = 20480; // Une rotation complète avec 2048 pas, donc ici 10 tours
temps = millis();
small_stepper.step(Steps2Take); //Ca tourne
temps = millis() - temps ; //Chronomètre
Serial.print(Steps2Take);
Serial.print(" pas: ");
Serial.print(temps); //Affiche le temps (en ms)
Serial.println(" ms");
delay(2000); //pause
}
}

1 réponse

Mimiste Messages postés 1159 Statut Membre 206
 
Bonjour

#define STEPS 2048

Tu a obtenu comment cette valeur pour ce moteur ? Ce serait pas plutôt 4096 ?
0
Maroala
 
Je cois que 4096 est le compte en demi-pas, ce qui fait 2048 pas entiers.
Stepper fonctionne en pas entiers, d'où cette valeur dans le prog.
0