Programme Arduino
Maroala
Messages postés
1
Statut
Membre
-
Maroala -
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
}
}
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
}
}
A voir également:
- Programme Arduino
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Message programmé iphone - Guide
- Mettre en veille un programme - Guide
- Desinstaller un programme - Guide
Stepper fonctionne en pas entiers, d'où cette valeur dans le prog.