Comment stopper une boucle dans l'instant ? RESOLU

Bonjour,

Après plusieurs recherches qui traitent plus ou moins de ce sujet j'en reste bloqué au même point, a savoir :

Je débute et m’entraîne à mémoriser les commandes pour cela j'ai fais un petit sketch avec des led simulant des feux tricolors.
pour résumer quand une led est verte d'un coté, de l'autre coté elle est rouge etc..

Jusque là pas de problème sauf que je souhaite rajouter 2 boutons poussoirs simulant les fameux boutons d'appel pour pieton (vous appuyez dessus les feux stoppent ). le mieux que j'ai réussis à faire est que si je reste appuyé sur le bouton poussoir alors une fois qu'il a exécuté la boucle comme il détecte le bouton poussoir la boucle s'arrete. Sauf que je souhaite que la boucle s'arrete avec une seule pression sur le bouton poussoir (donc sans rester appuyé) et instantanément.

Des idées ? comment faire pour stopper une longue boucle par exemple instantanément avec une seule pression de bouton poussoir ?

salut,

if(MaVariable==0) {

digitalWrite(LEDrouge, HIGH);
digitalWrite(LEDorange, LOW);
digitalWrite(LEDvert, LOW);

}

if(digitalRead(MonBouton1)==LOW) MaVariable=1; // desactivation
if(digitalRead(MonBouton2)==LOW) MaVariable=0; // activation

merci pour le code, mais encore une fois ceci ne fonctionne pas je m'explique :

pour un code court pas de soucis mais maintenant pour un code assez long du style :

       digitalWrite(ledV2, LOW);
  digitalWrite(ledR1, LOW);
  digitalWrite(ledV1, HIGH);
  digitalWrite(ledR2, HIGH);
  delay(1000);
  digitalWrite(ledV1, LOW);
  digitalWrite(ledR2, LOW);
  digitalWrite(ledO1, HIGH);
  digitalWrite(ledO2, HIGH);
 delay(1000);
  digitalWrite(ledO1, LOW);
  digitalWrite(ledO2, LOW);
  digitalWrite(ledV2, HIGH);
  digitalWrite(ledR1, HIGH);
  delay(1000);

si j'aplique cette methode il faudra que je reste appuyé sur le bouton poussoir jusqu'a ce que la boucle se termine, relise le digitalRead du bouton poussoir et detecte l'état haut pour ensuite arreter la boucle.
Ce que je recherche c'est à arréter instantanément la boucle avec une simple pression sur le bouton poussoir (sans rester appuyé).

Bonjour,

J'ai écrit une leçon sur la gestion des feux.

Boucle non bloquante : http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Le code est installé dans les exemples en même temps que l’IDE. Menu Fichiers/Exemples/02.Digital/BlinkWithoutDelay

Merci pour toutes ces informations, j'ai enfin compris !

il ne me reste plus qu'a bosser ! lol

merci encore a tout le monde !