Bonjour,
Je post car j'ai un petit soucis. J'ai effectuer un programme, et je ne comprend pas quelque chose. Mon programme consiste a comptabiliser les longueur ( oui j'ai déjà poster ) mais cette fois si je dois gérer le départ de chaque entrainement par un bouton et la fin aussi. J'ai réaliser mon programme tout fonctionne bien sauf que une fois un exercice terminer, il ne veut pas continuer de comptabiliser la longueur du nageur je suis obliger de rappuyer pour stopper et relance de relever. Alors que ca doit le faire en continue. Si quelqu'un pourrais m'aider pour le faire un continu jusqu’à ce que je rappuie sur le bouton pour l'arreter serait sympa. Voici mon code. SI vous voulez voir le moniteur série demander moi et je fais un screen.
int vib = 8;
int led = 13;
int boutonPoussoir = 2;
int sensorX; // Valeur de l'axe X
int LONG = 0; // Nombre de longueurs effectuer par le nageur
int xmax = 610; // Valeur d'un culbute
int EX = 0; // Numéro d'exercice effectuer par le nageur
int ENT = 0; // Numéro de l'entrainement du nageur
int Performance [35]; // Tableau de 35 performances
boolean etat = false;
void setup ()
{
Serial.begin(9600); //Nécessaire à liaison série
pinMode (vib, OUTPUT);
pinMode (led, OUTPUT);
digitalWrite (led, HIGH);
}
void loop ()
{
if (digitalRead (boutonPoussoir) == HIGH)
{
if (etat == true)
{
digitalWrite(led, LOW); // allumer la led
LONG=0;
Serial.print ("Fin de votre entrainement. Felicitation vous avez fait ");
Serial.print ( EX );
Serial.println (" exercices. Au revoir bonne journee");
digitalWrite(led, HIGH); // allumer la led
}
else
{
digitalWrite(led, HIGH); // allumer la led
while ( LONG < 10)
{
while (sensorX <=xmax) // Tant que le bouton est bas ou il y a une culbute
{
sensorX = analogRead(A0); // Acutaliser la valeur de l'axe X
}
if ( sensorX >= xmax ) // Si il y a une culbute
{
LONG ++ ; // On incrémente les longueurs
delay (500); // delai sinon il capte plusieur rotation d'un coup
sensorX = analogRead(A0); // Acutaliser la valeur de l'axe X
delay(1000); // durant 1 seconde
Serial.print ("LONG=");
Serial.println ( LONG );
}
}
EX++;
LONG=0;
Serial.print ("EX=");
Serial.println ( EX );
Serial.print ("LONG=");
Serial.println ( LONG );
digitalWrite(vib, HIGH); // allumer le vibreur
delay(2000); // durant 2 secondes
digitalWrite(vib, LOW); // eteindre la vibreur
}
etat = !etat;
delay (3);
}
}
Merci d'avance Cashh