Bonjour je veux faire du stacking, 'empilement de photos) . pour déplacer mon plateau j'utilise un vieux pied de microscope et veux faire tourner la vis micrométrique d' un demi tour x fois. entre chaque demi tout je commande le déclenchement de mon apn. (déclenchement encadrer par un delay afin d'eviter les vibrations parasites)
J'ai essaye avec croquis et stepper h, mais après quelques boucles les "pas se desynchronisent". J'ai donc refait essai avec arduino uno, pilote moteur PAP TB6600 et moteur Nema 17. J'ai trouve un croquis avec librairie Accelstepper.h qui fait tourner le moteur 1 fois dans un sens puis 1 fois dans l'autre. On donne au programme la position à atteindre (stepper.moveTo ( 400) ;). Ca marche. Il le fait parfaitement 1 fois. Mais je voudrais qu'il le fasse soit n fois soit en boucle jusqu'à ce que je l'arrête. Un seul sens de déplacement me suffit.
J'ai donc supprimé dans le croquis le retour et ajouté une boucle for, ça ne marche pas. J'ai essayé une boucle do...while. Sans plus de succés. Quand je veux compiler message d'erreur: "class AccelStepper" has nomember named MoveTo".
Si quelqu'un pouvait m'aider à sortir de cette" boucle" dans laquelle j'aimerai rentrer. Merci
Materiel
Arduino Uno
TB6600 (1600)
Nema 17 (3401)
Alim ext 12V
Voici mon coquis
#define stepPin 3
#define motorInterfaceType 1
// Créez une nouvelle instance de la classe AccelStepper:
AccelStepper stepper = AccelStepper ( motorInterfaceType, stepPin, dirPin ) ;
int Compteur = 0;
void setup ( ) {
// Définissez la vitesse et l'accélération maximales:
stepper. setMaxSpeed ( 500 ) ;
stepper. setAcceleration ( 300 ) ;
Compteur=1;
}
void loop ( )
{
do
{
delay(30);
// Définissez la position cible:
stepper.MoveTo ( 400 ) ;
// Courir jusqu'à la position cible avec une vitesse et une accélération / décélération définies:
Compteur++; // correspond au nombre de prise de vues souhaitées
delay ( 100 ) ;
}
while
{
Compteur<30;
delay (50);
stepper.runPosition () ;
delay (3000);
}}