Bonjour,
J'ai programmé mon système pour que :
- Au début, une led invite à appuyer sur le bouton.
- Quand on appuis sur un bouton, le moteur se lance pour un tour puis s'arrête.
- On revient au début.
Mais cela ne marche qu'une fois. La deuxième fois, la led se rallume mais quand on appuis sur le bouton on revient au début tout de suite et le moteur ne fait rien. Je pense que c'est parce qu'on est déjà à la position d'arrivée pour lui, mais je ne sais pas comment changer cela.
Précision : j'ai d'autres choses qui se déroule en parallèle de la partie de ce code.
Voici mon code :
#include <AccelStepper.h>
const int ledBouton = 1;
const int bouton = 8;
int sablier = 0;
int etatBouton;
AccelStepper moteur (4,4,5,6,7);
void setup ()
{
pinMode (ledBouton, OUTPUT);
pinMode (bouton, INPUT_PULLUP);
moteur.setMaxSpeed (100);
}
void loop()
{
etatBouton = digitalRead (bouton);
switch (sablier) {
case 0 :
digitalWrite (ledBouton,HIGH);
if (etatBouton == LOW) {
sablier = 1 ;
digitalWrite (ledBouton,LOW);
}
break;
case 1 :
moteur.move(200);
moteur.setSpeed(100);
switch (moteur.currentPosition() ) {
case 200 :
sablier = 0;
break;
default : moteur.run();}
break;
}
}
Si quelqu'un a une idée, je le remercie du fond du coeur !!! J'y arrive vraiment pas sur ce coup là.