probleme avec la loop

Bonjour,j ai un programme avec 2 fontions des leds en séquences et un bouton poussoir en "stay on" pour un led appart,mon probleme est que je peux allumer ou éteindre mon led seulement en debut de boucle quand mes leds on fait leurs circuit.Il y a t il un moyen de rendre mon bouton poussoir independant pour que je puisse m en service en tout temps??

code, cahier des charges ? parce que là perso je comprends pas grand chose au but du sketch

pour prendre en compte l'action sur un bp à n'importe quel moment du déroulement d'un pgme, il faut utiliser les "interruptions"

/* sequentiel turn on/off 6 leds */ int ledgreen= 28; int ledyellow = 30; int ledred = 32;

// the number of the input pin // the number of the output pin

//Example 03: Turn on LED with button and keep it on

const int LED = 24; const int BUTTON = 22; int state = 0;

int val = 0; int old_val = 0;

void setup() { pinMode(ledgreen,OUTPUT); pinMode(ledyellow,OUTPUT); pinMode(ledred,OUTPUT); pinMode(LED,OUTPUT); pinMode(BUTTON, INPUT); } void loop() {

// put your main code here, to run repeatedly: val = digitalRead(BUTTON);

if( val == HIGH && old_val == LOW) { state = 1-state; delay (10); }

old_val = val;

if ( state == 1) digitalWrite(LED,HIGH); else digitalWrite(LED, LOW);

digitalWrite(ledgreen,HIGH); delay(200); digitalWrite(ledyellow,HIGH); delay(200); digitalWrite(ledred,HIGH); delay(200); digitalWrite(ledgreen,LOW); delay(300); digitalWrite(ledyellow,LOW); delay(300); digitalWrite(ledred,LOW); delay(300);}

mon boutton poussoir ne fonctionne quand debut de cycle

L'utilisation de delay() bloque l'exécution de la boucle et interdit donc la lecture du bouton. Il faut utiliser millis() pour gérer les événements lié au temps. Voir l'exemple blinkwithoutdelay dans l'IDE

bonjour,
merci de mettre le code entre balise code </>

déjà ta condition est fausse après la première boucle

if( val == HIGH && old_val == LOW) {
state = 1-state;
delay (10);
}

old_val = val;

val aura comme valeur 1 après, donc ca ne fonctionne qu’au début.

donc ca donnerait ceci, sans utiliser les interruptions
si bouton appuyé=>>> lance la séquence
sinon===> rien faire

if(digitalRead(BUTTON == HIGH){
sequence
}else{}