do it once until

int led = 13; // Alimentation de la bobine
int hall = A0; // Analyse du capteur a effet Hall
long startTime  = 0;                    // start time for stop watch
long elapsedTime = 0 ;



unsigned long valeur; //Donnees directes du capteru a effet Hall
float tension; // Valeur actuelle en voltage du capteur
float pretension; //  Valeur precedente en voltage du capteur

void setup() // Effectuer une seule fois
{
  pinMode (hall, INPUT); // Declarer capteur a effet Hall comme INPUT
  pinMode (led, OUTPUT); // Declarer led comme OUTPUT
  Serial.begin (9600); // Vitesse du retour des donnees
}


void loop() // Effectuer à chaque fois
{
  pretension = tension; // Tension precedente vs tension actuelle
  valeur = analogRead (hall); // Lecture du capteur a effet Hall
  tension = valeur * 5.0 / 1024; // Formule de calcul du voltage du capteur a effet Hall

  if (2.50 < tension < 2.95)
  {
    if (tension < (pretension - 0.005)) {  // compare them
      elapsedTime =   micros() - startTime;   
      startTime = micros(); 
      digitalWrite(led, HIGH); 
      delay (20);
      digitalWrite(led, LOW); // do something, they are different

    } 
  }



  Serial.print("tension= ");  // Imprimer les valeurs pecedentes du capteur 
  Serial.println(tension);	




  Serial.println();  // Sauter une ligne lors de l'affichage
  Serial.println();
}

Hi
I wan’t that my code turn the led HIGH
digitalWrite(led, HIGH); ONE TIME until the tension < 2.5 so he have to execute to blink it one time and wait until tension is 2.5.
So led should stay LOW if tension > 2.5 digitalWrite(led, LOW);

But now the code is blink many times
thank you!

Do not ask the same question twice, using a different username.

thank you but I don<t understand

int led = 13; // Alimentation de la bobine
int hall = A0; // Analyse du capteur a effet Hall
long startTime  = 0;                    // start time for stop watch
long elapsedTime = 0 ;



unsigned long valeur; //Donnees directes du capteru a effet Hall
float tension; // Valeur actuelle en voltage du capteur
float pretension; //  Valeur precedente en voltage du capteur

void setup() // Effectuer une seule fois
{
  pinMode (hall, INPUT); // Declarer capteur a effet Hall comme INPUT
  pinMode (led, OUTPUT); // Declarer led comme OUTPUT
  Serial.begin (57600); // Vitesse du retour des donnees
}


void loop() // Effectuer à chaque fois
{
  pretension = tension; // Tension precedente vs tension actuelle
  valeur = analogRead (hall); // Lecture du capteur a effet Hall
  tension = valeur * 5.0 / 1024; // Formule de calcul du voltage du capteur a effet Hall

  if (2.50 < tension && tension < 2.95)
  {
    if (tension < (pretension - 0.005)) {  // compare them
      elapsedTime =   (micros() - startTime) + 20000;   
      startTime = micros(); 
      digitalWrite(led, HIGH); 
      delay (20);
      digitalWrite(led, LOW); // do something, they are different
while (tension > 2.5){
valeur = analogRead (hall);
tension = valeur * 5.0 / 1024;
digitalWrite(led, LOW);}

    } 
  }


  Serial.print("elapsedTime= ");  // Imprimer les valeurs pecedentes du capteur 
  Serial.println(elapsedTime);
  Serial.print("tension= ");  // Imprimer les valeurs pecedentes du capteur 
  Serial.println(tension);	




  Serial.println();  // Sauter une ligne lors de l'affichage
  Serial.println();
}

I don<t know sometimes my program stops for no reason (no physical reason) why

long startTime = 0; // start time for stop watch
long elapsedTime = 0 ;
These should be: unsigned long

This is the same homework assignment you posted a couple of days ago. Why not sit down and try to figure it out for yourself?

no it<s not the same I finished the last one yesterday and I started a new project today