Bouton poussoir

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

Bonjour,
Mets ton code entre balise # pour qu'il soit lisible.
@+

C'est bon merci.

Re,
Dans ton setup, tu déclares où ton entrée bouton poussoir, genre :

pinMode (boutonPousoir, INPUT);
// ou
pinMode (boutonPousoir, INPUT_PULLUP);

?

icare:
Re,
Dans ton setup, tu déclares où ton entrée bouton poussoir, genre :

pinMode (boutonPousoir, INPUT);

// ou
pinMode (boutonPousoir, INPUT_PULLUP);

Par défaut tous les pins sont en entrée, à mon avis il manque une résistance de pull up ou pull down ...

Bah dans mon branchement j'ai mis un résistance. Je viens de voir ce qu'est un "pull down " ça a l'aire bien. Mais je sais pas comment l’intégrer a mon programme..

Une resistance c'est un composant, donc rien à voir directement avec le programme. Dans tout les cas visiblement tu découvres et tu n'as donc pas suivi les tutos de base.