# Leds to be turned off immediately when I turn off the switch

**URL:** <https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794>\
**Category:** Programming\
**Created:** [November 8, 2023, 2:20pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794 "2023-11-08T14:20:09Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![schwarz046](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/schwarz046/32/983998_2.png) [@schwarz046](https://forum.arduino.cc/u/schwarz046)\
**Post date:** [November 8, 2023, 2:16pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/1 "2023-11-08T14:16:35Z")

</div>

Hello, could anyone please help me with my code?  
It's composed of 4 way switch and 8 Leds, each switch has a pattern of led lighting. What I really need is for leds to be also immediately turned off when the switch is off, even if its respective pattern is still not finished running. Thank you

Here's my code:

int LED1 = 13;  
int LED2 = 12;  
int LED3 = 11;  
int LED4 = 10;  
int LED5 = 9;  
int LED6 = 8;  
int LED7 = 7;  
int LED8 = 6;  
int S1 = 5;  
int S2 = 4;  
int S3 = 3;  
int S4 = 2;

int val = HIGH;

int oneSec = 1000;

void setup() {  
// put your setup code here, to run once:  
pinMode(LED1, OUTPUT);  
pinMode(LED2, OUTPUT);  
pinMode(LED3, OUTPUT);  
pinMode(LED4, OUTPUT);  
pinMode(LED5, OUTPUT);  
pinMode(LED6, OUTPUT);  
pinMode(LED7, OUTPUT);  
pinMode(LED8, OUTPUT);

pinMode(S1, INPUT);  
pinMode(S2, INPUT);  
pinMode(S3, INPUT);  
pinMode(S4, INPUT);

}

void loop() {  
// put your main code here, to run repeatedly:

```
if (val=digitalRead(S1)) {

```

digitalWrite(LED1, HIGH);//First row  
delay(oneSec);  
digitalWrite(LED2, HIGH);//Secondo row  
delay(oneSec);  
digitalWrite(LED1, LOW);  
digitalWrite(LED3, HIGH);//Third row  
delay(oneSec);  
digitalWrite(LED2, LOW);  
digitalWrite(LED4, HIGH);//Fourth row  
delay(oneSec);  
digitalWrite(LED3, LOW);//FIFTH  
digitalWrite(LED5, HIGH);//FIFTH  
delay(oneSec);  
digitalWrite(LED4, LOW);//SIXTH  
digitalWrite(LED6, HIGH);//SIXTH  
delay(oneSec);  
digitalWrite(LED5, LOW);//SEVENTH  
digitalWrite(LED7, HIGH);//SEVENTH  
delay(oneSec);  
digitalWrite(LED6, LOW);//EIGHTH  
digitalWrite(LED8, HIGH);//EIGHTH  
delay(oneSec);  
digitalWrite(LED7, LOW);//NINETH  
delay(oneSec);  
digitalWrite(LED8, LOW);  
}  
else{  
digitalWrite(LED1, LOW);  
digitalWrite(LED2, LOW);  
digitalWrite(LED3, LOW);  
digitalWrite(LED4, LOW);  
digitalWrite(LED5, LOW);  
digitalWrite(LED6, LOW);  
digitalWrite(LED7, LOW);  
digitalWrite(LED8, LOW);  
}  
if (val = digitalRead(S2)) {  
digitalWrite(LED1, HIGH);  
delay(oneSec);  
digitalWrite(LED1, LOW);  
digitalWrite(LED2, HIGH);  
delay(oneSec);  
digitalWrite(LED2, LOW);  
digitalWrite(LED1, HIGH);  
digitalWrite(LED3, HIGH);  
digitalWrite(LED1, HIGH);  
digitalWrite(LED3, HIGH);  
delay(oneSec);  
digitalWrite(LED1, LOW);  
digitalWrite(LED3, LOW);  
digitalWrite(LED2, HIGH);  
digitalWrite(LED4, HIGH);  
digitalWrite(LED2, HIGH);  
digitalWrite(LED4, HIGH);  
delay(oneSec);  
digitalWrite(LED2, LOW);  
digitalWrite(LED4, LOW);  
digitalWrite(LED3, HIGH);  
digitalWrite(LED5, HIGH);  
digitalWrite(LED3, HIGH);  
digitalWrite(LED5, HIGH);  
delay(oneSec);  
digitalWrite(LED3, LOW);  
digitalWrite(LED5, LOW);  
digitalWrite(LED4, HIGH);  
digitalWrite(LED6, HIGH);  
digitalWrite(LED4, HIGH);  
digitalWrite(LED6, HIGH);  
delay(oneSec);  
digitalWrite(LED4, LOW);  
digitalWrite(LED6, LOW);  
digitalWrite(LED5, HIGH);  
digitalWrite(LED7, HIGH);  
digitalWrite(LED5, HIGH);  
digitalWrite(LED7, HIGH);  
delay(oneSec);  
digitalWrite(LED5, LOW);  
digitalWrite(LED7, LOW);  
digitalWrite(LED6, HIGH);  
digitalWrite(LED8, HIGH);  
digitalWrite(LED6, HIGH);  
digitalWrite(LED8, HIGH);  
delay(oneSec);  
digitalWrite(LED6, LOW);  
digitalWrite(LED8, LOW);  
digitalWrite(LED7, HIGH);  
delay(oneSec);  
digitalWrite(LED7, LOW);  
digitalWrite(LED8, HIGH);  
delay(oneSec);  
digitalWrite(LED8, LOW);  
} else{  
digitalWrite(LED1, LOW);  
digitalWrite(LED2, LOW);  
digitalWrite(LED3, LOW);  
digitalWrite(LED4, LOW);  
digitalWrite(LED5, LOW);  
digitalWrite(LED6, LOW);  
digitalWrite(LED7, LOW);  
digitalWrite(LED8, LOW);  
}

```
if (val = digitalRead(S3)) {
    digitalWrite(LED1, HIGH);

```

delay(oneSec);  
digitalWrite(LED1, LOW);//1st row  
digitalWrite(LED2, HIGH);  
delay(oneSec);  
digitalWrite(LED2, LOW);//2nd row  
digitalWrite(LED3, HIGH);  
delay(oneSec);  
digitalWrite(LED3, LOW);//3rd row  
digitalWrite(LED4, HIGH);  
delay(oneSec);  
digitalWrite(LED4, LOW);//4th row  
digitalWrite(LED5, HIGH);  
delay(oneSec);  
digitalWrite(LED5, LOW);//5th row  
digitalWrite(LED6, HIGH);  
delay(oneSec);  
digitalWrite(LED6, LOW);//6th row  
digitalWrite(LED7, HIGH);  
delay(oneSec);  
digitalWrite(LED7, LOW);//7th row  
digitalWrite(LED8, HIGH);  
delay(oneSec);  
digitalWrite(LED8, LOW);//8th row  
digitalWrite(LED7, HIGH);  
delay(oneSec);  
digitalWrite(LED7, LOW);//9th row  
digitalWrite(LED6, HIGH);  
delay(oneSec);  
digitalWrite(LED6, LOW);//10th row  
digitalWrite(LED5, HIGH);  
delay(oneSec);  
digitalWrite(LED5, LOW);//11th row  
digitalWrite(LED4, HIGH);  
delay(oneSec);  
digitalWrite(LED4, LOW);//12th row  
digitalWrite(LED3, HIGH);  
delay(oneSec);  
digitalWrite(LED3, LOW);//13th row  
digitalWrite(LED2, HIGH);  
delay(oneSec);  
digitalWrite(LED2, LOW);//14th row  
digitalWrite(LED1, HIGH);//15th row  
delay(oneSec);  
} else{  
digitalWrite(LED1, LOW);  
digitalWrite(LED2, LOW);  
digitalWrite(LED3, LOW);  
digitalWrite(LED4, LOW);  
digitalWrite(LED5, LOW);  
digitalWrite(LED6, LOW);  
digitalWrite(LED7, LOW);  
digitalWrite(LED8, LOW);  
}

```
if (val = digitalRead(S4)) {

```

digitalWrite(LED1, HIGH);  
delay(oneSec);  
digitalWrite(LED2, HIGH);  
delay(oneSec);  
digitalWrite(LED3, HIGH);  
delay(oneSec);  
digitalWrite(LED4, HIGH);  
delay(oneSec);  
digitalWrite(LED5, HIGH);  
delay(oneSec);  
digitalWrite(LED6, HIGH);  
delay(oneSec);  
digitalWrite(LED7, HIGH);  
delay(oneSec);  
digitalWrite(LED8, HIGH);  
delay(oneSec);  
digitalWrite(LED8, LOW);  
delay(oneSec);  
digitalWrite(LED7, LOW);  
delay(oneSec);  
digitalWrite(LED6, LOW);  
delay(oneSec);  
digitalWrite(LED5, LOW);  
delay(oneSec);  
digitalWrite(LED4, LOW);  
delay(oneSec);  
digitalWrite(LED3, LOW);  
delay(oneSec);  
digitalWrite(LED2, LOW);  
delay(oneSec);  
} else{  
digitalWrite(LED1, LOW);  
digitalWrite(LED2, LOW);  
digitalWrite(LED3, LOW);  
digitalWrite(LED4, LOW);  
digitalWrite(LED5, LOW);  
digitalWrite(LED6, LOW);  
digitalWrite(LED7, LOW);  
digitalWrite(LED8, LOW);  
}  
}

---

<div class="post-metadata">

**Author:** ![schwarz046](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/schwarz046/32/983998_2.png) [@schwarz046](https://forum.arduino.cc/u/schwarz046)\
**Post date:** [November 8, 2023, 2:20pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/2 "2023-11-08T14:20:09Z")

</div>

Hello, could anyone please help me with my code?  
It's composed of 4 way switch and 8 Leds, each switch has a pattern of led lighting. What I really need is for leds to be also immediately turned off when the switch is off, even if its respective pattern is still not finished running. Thank you

Here's my code:

```arduino
int LED1 = 13;
int LED2 = 12;
int LED3 = 11;
int LED4 = 10;
int LED5 = 9;
int LED6 = 8;
int LED7 = 7;
int LED8 = 6;
int S1 = 5;
int S2 = 4;
int S3 = 3;
int S4 = 2;

int val = HIGH;

int oneSec = 1000;

void setup() {
  // put your setup code here, to run once:
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
    
 pinMode(S1, INPUT);
 pinMode(S2, INPUT);
 pinMode(S3, INPUT);
 pinMode(S4, INPUT);
    
}

void loop() {
  // put your main code here, to run repeatedly:
    
 
 
    
    if (val=digitalRead(S1)) {
digitalWrite(LED1, HIGH);//First row
  delay(oneSec);
  digitalWrite(LED2, HIGH);//Secondo row
  delay(oneSec);
  digitalWrite(LED1, LOW);
  digitalWrite(LED3, HIGH);//Third row
  delay(oneSec);
  digitalWrite(LED2, LOW);
  digitalWrite(LED4, HIGH);//Fourth row
  delay(oneSec);
  digitalWrite(LED3, LOW);//FIFTH
  digitalWrite(LED5, HIGH);//FIFTH
  delay(oneSec);
  digitalWrite(LED4, LOW);//SIXTH
  digitalWrite(LED6, HIGH);//SIXTH
  delay(oneSec);
  digitalWrite(LED5, LOW);//SEVENTH
  digitalWrite(LED7, HIGH);//SEVENTH
  delay(oneSec);
  digitalWrite(LED6, LOW);//EIGHTH
   digitalWrite(LED8, HIGH);//EIGHTH
  delay(oneSec);
  digitalWrite(LED7, LOW);//NINETH
  delay(oneSec);
  digitalWrite(LED8, LOW);
} 
        else{
        digitalWrite(LED1, LOW);
        digitalWrite(LED2, LOW);
        digitalWrite(LED3, LOW);
        digitalWrite(LED4, LOW);
        digitalWrite(LED5, LOW);
        digitalWrite(LED6, LOW);
        digitalWrite(LED7, LOW);
        digitalWrite(LED8, LOW);
       }
     if (val = digitalRead(S2)) {
digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED1, HIGH);
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);
digitalWrite(LED3, LOW);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);
digitalWrite(LED4, LOW);
digitalWrite(LED3, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED3, HIGH);
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);
digitalWrite(LED5, LOW);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED4, HIGH);
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);
digitalWrite(LED6, LOW);
digitalWrite(LED5, HIGH);
digitalWrite(LED7, HIGH);
digitalWrite(LED5, HIGH);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);
digitalWrite(LED7, LOW);
digitalWrite(LED6, HIGH);
digitalWrite(LED8, HIGH);
digitalWrite(LED6, HIGH);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);
digitalWrite(LED8, LOW);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);
  } else{
        digitalWrite(LED1, LOW);
        digitalWrite(LED2, LOW);
        digitalWrite(LED3, LOW);
        digitalWrite(LED4, LOW);
        digitalWrite(LED5, LOW);
        digitalWrite(LED6, LOW);
        digitalWrite(LED7, LOW);
        digitalWrite(LED8, LOW);
 }
    
  
    if (val = digitalRead(S3)) {
        digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED1, LOW);//1st row
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);//2nd row
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);//3rd row
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);//4th row
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);//5th row
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);//6th row
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);//7th row
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);//8th row
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED7, LOW);//9th row
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED6, LOW);//10th row
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED5, LOW);//11th row
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED4, LOW);//12th row
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED3, LOW);//13th row
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED2, LOW);//14th row
digitalWrite(LED1, HIGH);//15th row
delay(oneSec);
} else{
        digitalWrite(LED1, LOW);
        digitalWrite(LED2, LOW);
        digitalWrite(LED3, LOW);
        digitalWrite(LED4, LOW);
        digitalWrite(LED5, LOW);
        digitalWrite(LED6, LOW);
        digitalWrite(LED7, LOW);
        digitalWrite(LED8, LOW);
 }
    
    if (val = digitalRead(S4)) {
 digitalWrite(LED1, HIGH);
delay(oneSec);
digitalWrite(LED2, HIGH);
delay(oneSec);
digitalWrite(LED3, HIGH);
delay(oneSec);
digitalWrite(LED4, HIGH);
delay(oneSec);
digitalWrite(LED5, HIGH);
delay(oneSec);
digitalWrite(LED6, HIGH);
delay(oneSec);
digitalWrite(LED7, HIGH);
delay(oneSec);
digitalWrite(LED8, HIGH);
delay(oneSec);
digitalWrite(LED8, LOW);
delay(oneSec);
digitalWrite(LED7, LOW);
delay(oneSec);
digitalWrite(LED6, LOW);
delay(oneSec);
digitalWrite(LED5, LOW);
delay(oneSec);
digitalWrite(LED4, LOW);
delay(oneSec);
digitalWrite(LED3, LOW);
delay(oneSec);
digitalWrite(LED2, LOW);
delay(oneSec);
} else{
       digitalWrite(LED1, LOW);
        digitalWrite(LED2, LOW);
        digitalWrite(LED3, LOW);
        digitalWrite(LED4, LOW);
        digitalWrite(LED5, LOW);
        digitalWrite(LED6, LOW);
        digitalWrite(LED7, LOW);
        digitalWrite(LED8, LOW);
}
 }
    

```

---

<div class="post-metadata">

**Author:** ![qubits-us](https://avatars.discourse-cdn.com/v4/letter/q/5daacb/32.png) [@qubits-us](https://forum.arduino.cc/u/qubits-us)\
**Post date:** [November 8, 2023, 2:25pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/3 "2023-11-08T14:25:51Z")

</div>

Hi @schwarz046 ,

Welcome to the forum..  
The delay() function is what is jamming you up, it stops all execution until it finishes..  
Need to rewrite sketch using non-blocking delays and a state machine for the leds..  
Using arrays will make coding a bit easier and less..

let me know if you need more help..

god luck.. ~q

---

<div class="post-metadata">

**Author:** ![Benjamin269](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/benjamin269/32/1007881_2.png) [@Benjamin269](https://forum.arduino.cc/u/Benjamin269)\
**Post date:** [November 8, 2023, 2:31pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/4 "2023-11-08T14:31:16Z")

</div>

Hi @schwarz046 , Please don't crosspost.

[https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/1](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/1)

---

<div class="post-metadata">

**Author:** ![schwarz046](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/schwarz046/32/983998_2.png) [@schwarz046](https://forum.arduino.cc/u/schwarz046)\
**Post date:** [November 8, 2023, 2:33pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/5 "2023-11-08T14:33:07Z")

</div>

I'm new to arduino and kind of lost in what you just said, could you please make a sample code for that for me to use as reference? Thank you

---

<div class="post-metadata">

**Author:** ![UKHeliBob](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/ukhelibob/32/215663_2.png) [@UKHeliBob](https://forum.arduino.cc/u/UKHeliBob)\
**Post date:** [November 8, 2023, 2:34pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/6 "2023-11-08T14:34:06Z")

</div>

Welcome to the forum

Your topic has been moved to the Programming category of the forum

Please follow the advice given in the link below when posting code, in particular the section entitled 'Posting code and common code problems'  
  
Use **code tags** (the \< CODE/ \> icon above the compose window)&nbsp;to make it easier to read and copy for examination   
  
[https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum](https://forum.arduino.cc/t/how-to-get-the-best-out-of-this-forum)

---

<div class="post-metadata">

**Author:** ![dronemaster278](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/dronemaster278/32/1013044_2.png) [@dronemaster278](https://forum.arduino.cc/u/dronemaster278)\
**Post date:** [November 8, 2023, 2:46pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/7 "2023-11-08T14:46:40Z")

</div>

I have never used 4 way switches, but what i might try is wiring the switches into the lights. Is there a way that the switches can turn of the lights without the arduino even knowing? Could you also post your wiring?

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 8, 2023, 3:10pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/8 "2023-11-08T15:10:05Z")

</div>

those delays are killing you...

> [@schwarz046](#):
>
> ```arduino
> delay(oneSec);
> 
> ```

you need to change the structure of the code and get rid of the delays

For extra information and examples look at

- [Using millis() for timing. A beginners guide](https://forum.arduino.cc/index.php?topic=503368.0)
- [Several things at the same time](https://forum.arduino.cc/index.php?topic=223286.0)
- [Flashing multiple LEDs at the same time](https://forum.arduino.cc/t/flashing-multiple-leds-at-the-same-time/1065564)

---

<div class="post-metadata">

**Author:** ![alto777](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/alto777/32/317385_2.png) [@alto777](https://forum.arduino.cc/u/alto777)\
**Post date:** [November 8, 2023, 3:10pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/9 "2023-11-08T15:10:37Z")

</div>

> [@schwarz046](#):
>
> `if (val = digitalRead(S2)) {`

You probably want to use a test for equality '==' rather than an assignment '=' in logical tests like that.

And you need to rewrite your sketch so it does not rely on _delay_() for timing. When those sequences using delay begin, there is nothing checking the switches or doing anything else.

Get comfy and google

```
  blink without delay Arduino

```

And

```
  Arduino two things at once

```

And

```
  Arduino finite state machine

```

And

```
  Arduino finite state machine traffic lights

```

HTH

a7

---

<div class="post-metadata">

**Author:** ![StefanL38](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stefanl38/32/713548_2.png) [@StefanL38](https://forum.arduino.cc/u/StefanL38)\
**Post date:** [November 8, 2023, 3:16pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/10 "2023-11-08T15:16:00Z")

</div>

> [@schwarz046](#):
>
> What I really need is for leds to be also immediately turned off when the switch is off, even if its respective pattern is still not finished running.

This requires to use non-blocking timing. And this means writing code without a single delay().  
Each and every delay() **must** be replaced by non-blocking timing.

Are you ready for thinking **totally different** about how to do waiting ?  
If not. The only way would be to open a switch in the GND-wire to interrupt the electric current.  
Though switching on would still only be possible after finishing your existing code with all its delay()'s

Here you can learn about non-blocking timing

> [@Example-code for timing based on millis() easier to understand through the use of example-numbers / avoiding delay()](https://forum.arduino.cc/t/example-code-for-timing-based-on-millis-easier-to-understand-through-the-use-of-example-numbers-avoiding-delay/974017/1):
>
> non-blocking timing. Execute code only from time to time. There are a lot of different ways to learn programming. This thread wants to add another approach that is different to the yet existing ones. UPDATE 06.01.2023 if you are mainly interested in applying non-blocking timing you can do a quick read of this short tutorial / demonstration If you are intersted in understanding the details how it works go on reading here. I use an everyday analogon in this post to explain the basic principle …

best regards Stefan

---

<div class="post-metadata">

**Author:** ![camsysca](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/camsysca/32/1015228_2.png) [@camsysca](https://forum.arduino.cc/u/camsysca)\
**Post date:** [November 8, 2023, 3:27pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/11 "2023-11-08T15:27:02Z")

</div>

I took a different approach.

- fixed your comparisons,
- extracted duplicate codes,
- extracted each action,  
in order to show you where your logic falls down. What the others have pointed to is correct, you need to get rid of delays() to address your immediate need, but your logic is also incorrect.  
Look at the if..else structures. If any button is not pressed, your logic will clear the LEDs, regardless of the actions of the other buttons. Of course, in the next pass of the loop, the LEDs are turned on again, so it might seem like 'it's doing what it should', but an oscilloscope on the LED outputs will show you things your eyes can't see.  
613732 3675 6702

```arduino
void loop() {
  if (val == digitalRead(S1)) {
    pattern1();
  } else {
    clearall();
  }
  if (val == digitalRead(S2)) {
    pattern2();
  } else {
    clearall();
  }
  if (val == digitalRead(S3)) {
    pattern3();
  } else {
    clearall();
  }
  if (val == digitalRead(S4)) {
    pattern4();
  } else {
    clearall();
  }
}

```

---

<div class="post-metadata">

**Author:** ![qubits-us](https://avatars.discourse-cdn.com/v4/letter/q/5daacb/32.png) [@qubits-us](https://forum.arduino.cc/u/qubits-us)\
**Post date:** [November 8, 2023, 3:40pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/12 "2023-11-08T15:40:47Z")

</div>

Hi @schwarz046 ,

not sure which post to reply too.. 🙂  
give this a go..

```arduino

#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define LED5 9
#define LED6 8
#define LED7 7
#define LED8 6

const byte leds[] = {LED1, LED2, LED3, LED4, LED5, LED6, LED7, LED8};
const byte buttons[] = {5, 4, 3, 2};
byte lastButtons[] = {1, 1, 1, 1};
unsigned long lastReads[] = {0, 0, 0, 0};

byte currentState = 0;
byte currentStep = 0;

unsigned long lastStep = 0;
unsigned long stepDelay = 1000ul;

void setup() {
  // put your setup code here, to run once:

  for (int i = 0; i < sizeof(leds); i++) {
    pinMode(leds[i], OUTPUT);
  }
  for (int i = 0; i < sizeof (buttons); i++) {
    pinMode(buttons[i], INPUT_PULLUP);
  }

}

void loop() {
  // put your main code here, to run repeatedly:

  //what time is it now..
  unsigned long now = millis();

  for ( int i = 0; i < sizeof(buttons); i++) {
    if (now - lastReads[i] >= 50) {
      byte btn = digitalRead(buttons[i]);
      if (btn != lastButtons[i]) {
        lastReads[i] = now; //start debouncing..
        lastButtons[i] = btn;
        if (btn == LOW) {
          currentState = i + 1;
          currentStep = 0;
          AllOff();
        }
      }
    }
  }

  switch (currentState) {
    case 0: AllOff(); break;
    case 1: {
        switch (currentStep) {
          case 0: digitalWrite(LED1, HIGH); lastStep = now; currentStep++; break;
          case 1: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 2: digitalWrite(LED2, HIGH); lastStep = now; currentStep++; break;
          case 3: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 4: digitalWrite(LED1, LOW);
            digitalWrite(LED3, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 5: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 6: digitalWrite(LED2, LOW);
            digitalWrite(LED4, HIGH);//Fourth row
            lastStep = now; currentStep++; break;
          case 7: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 8: digitalWrite(LED3, LOW);
            digitalWrite(LED5, HIGH);//Fourth row
            lastStep = now; currentStep++; break;
          case 9: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 10: digitalWrite(LED4, LOW);
            digitalWrite(LED6, HIGH);//Fourth row
            lastStep = now; currentStep++; break;
          case 11: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 12: digitalWrite(LED5, LOW);
            digitalWrite(LED7, HIGH);//Fourth row
            lastStep = now; currentStep++; break;
          case 13: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 14: digitalWrite(LED6, LOW);
            digitalWrite(LED8, HIGH);//Fourth row
            lastStep = now; currentStep++; break;
          case 15: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 16: digitalWrite(LED7, LOW); lastStep = now; currentStep++; break;
          case 17: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 18: digitalWrite(LED7, LOW); currentStep++; break;
          case 19: AllOff(); currentStep++; break;
        }
      } break;
    case 2: {
        switch (currentStep) {
          case 0: digitalWrite(LED1, HIGH); lastStep = now; currentStep++; break;
          case 1: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 2: digitalWrite(LED1, LOW);
            digitalWrite(LED2, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 3: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 4: digitalWrite(LED2, LOW);
            digitalWrite(LED1, HIGH);//Third row
            digitalWrite(LED3, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 5: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 6: digitalWrite(LED1, LOW);
            digitalWrite(LED3, LOW);//Third row
            digitalWrite(LED2, HIGH);//Third row
            digitalWrite(LED4, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 7: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 8: digitalWrite(LED2, LOW);
            digitalWrite(LED4, LOW);//Third row
            digitalWrite(LED3, HIGH);//Third row
            digitalWrite(LED4, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 9: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 10: digitalWrite(LED3, LOW);
            digitalWrite(LED5, LOW);//Third row
            digitalWrite(LED4, HIGH);//Third row
            digitalWrite(LED6, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 11: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 12: digitalWrite(LED4, LOW);
            digitalWrite(LED6, LOW);//Third row
            digitalWrite(LED5, HIGH);//Third row
            digitalWrite(LED7, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 13: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 14: digitalWrite(LED5, LOW);
            digitalWrite(LED7, LOW);//Third row
            digitalWrite(LED6, HIGH);//Third row
            digitalWrite(LED8, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 15: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 16: digitalWrite(LED6, LOW);
            digitalWrite(LED8, LOW);//Third row
            digitalWrite(LED7, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 17: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 18: digitalWrite(LED7, LOW);
            digitalWrite(LED8, HIGH);//Third row
            lastStep = now; currentStep++; break;
          case 19: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 20: digitalWrite(LED8, LOW);
            lastStep = now; currentStep++; break;
          case 21: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 22: digitalWrite(LED8, LOW);
            currentStep++; break;
          case 23: AllOff(); currentStep++; break;
        }
      } break;
    case 3: {
        switch (currentStep) {
          case 0: digitalWrite(LED1, HIGH);
            lastStep = now; currentStep++; break;
          case 1: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 2: digitalWrite(LED1, LOW);
            digitalWrite(LED2, HIGH);
            lastStep = now; currentStep++; break;
          case 3: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 4: digitalWrite(LED2, LOW);
            digitalWrite(LED3, HIGH);
            lastStep = now; currentStep++; break;
          case 5: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 6: digitalWrite(LED3, LOW);
            digitalWrite(LED4, HIGH);
            lastStep = now; currentStep++; break;
          case 7: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 8: digitalWrite(LED4, LOW);
            digitalWrite(LED5, HIGH);
            lastStep = now; currentStep++; break;
          case 9: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 10: digitalWrite(LED5, LOW);
            digitalWrite(LED6, HIGH);
            lastStep = now; currentStep++; break;
          case 11: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 12: digitalWrite(LED6, LOW);
            digitalWrite(LED7, HIGH);
            lastStep = now; currentStep++; break;
          case 13: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 14: digitalWrite(LED7, LOW);
            digitalWrite(LED8, HIGH);
            lastStep = now; currentStep++; break;
          case 15: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 16: digitalWrite(LED8, LOW);
            digitalWrite(LED7, HIGH);
            lastStep = now; currentStep++; break;
          case 17: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 18: digitalWrite(LED7, LOW);
            digitalWrite(LED6, HIGH);
            lastStep = now; currentStep++; break;
          case 19: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 20: digitalWrite(LED6, LOW);
            digitalWrite(LED5, HIGH);
            lastStep = now; currentStep++; break;
          case 21: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 22: digitalWrite(LED5, LOW);
            digitalWrite(LED4, HIGH);
            lastStep = now; currentStep++; break;
          case 23: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 24: digitalWrite(LED4, LOW);
            digitalWrite(LED3, HIGH);
            lastStep = now; currentStep++; break;
          case 25: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 26: digitalWrite(LED3, LOW);
            digitalWrite(LED2, HIGH);
            lastStep = now; currentStep++; break;
          case 27: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 28: digitalWrite(LED2, LOW);
            digitalWrite(LED1, HIGH);
            lastStep = now; currentStep++; break;
          case 29: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 30: AllOff(); currentStep++; break;
        }
      } break;
    case 4: {
        switch (currentStep) {
          case 0: digitalWrite(LED1, HIGH);
            lastStep = now; currentStep++; break;
          case 1: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 2: digitalWrite(LED2, HIGH);
            lastStep = now; currentStep++; break;
          case 3: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 4: digitalWrite(LED3, HIGH);
            lastStep = now; currentStep++; break;
          case 5: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 6: digitalWrite(LED4, HIGH);
            lastStep = now; currentStep++; break;
          case 7: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 8: digitalWrite(LED5, HIGH);
            lastStep = now; currentStep++; break;
          case 9: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 10: digitalWrite(LED6, HIGH);
            lastStep = now; currentStep++; break;
          case 11: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 12: digitalWrite(LED7, HIGH);
            lastStep = now; currentStep++; break;
          case 13: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 14: digitalWrite(LED8, HIGH);
            lastStep = now; currentStep++; break;
          case 15: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 16: digitalWrite(LED8, LOW);
            lastStep = now; currentStep++; break;
          case 17: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 18: digitalWrite(LED7, LOW);
            lastStep = now; currentStep++; break;
          case 19: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 20: digitalWrite(LED6, LOW);
            lastStep = now; currentStep++; break;
          case 21: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 22: digitalWrite(LED5, LOW);
            lastStep = now; currentStep++; break;
          case 23: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 24: digitalWrite(LED4, LOW);
            lastStep = now; currentStep++; break;
          case 25: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 26: digitalWrite(LED3, LOW);
            lastStep = now; currentStep++; break;
          case 27: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 28: digitalWrite(LED2, LOW);
            lastStep = now; currentStep++; break;
          case 29: if (now - lastStep >= stepDelay) {
              currentStep++;
            } break;
          case 30: AllOff(); currentStep++; break;

        }
      } break;
  }

}

void AllOff() {
  for (int i = 0; i < sizeof(leds); i++) {
    digitalWrite(leds[i], LOW);
  }
}

```

have fun.. ~q

---

<div class="post-metadata">

**Author:** ![schwarz046](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/schwarz046/32/983998_2.png) [@schwarz046](https://forum.arduino.cc/u/schwarz046)\
**Post date:** [November 8, 2023, 4:17pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/13 "2023-11-08T16:17:02Z")

</div>

is there really no other way aside from using blink without delay? I've seen my peers use the "break;" command and it works for them

---

<div class="post-metadata">

**Author:** ![StefanL38](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stefanl38/32/713548_2.png) [@StefanL38](https://forum.arduino.cc/u/StefanL38)\
**Post date:** [November 8, 2023, 4:19pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/14 "2023-11-08T16:19:43Z")

</div>

You can't insert a "break;" **inside** a delay()

You will have to use while-loops and additionally

- check the state of all 4 switches inside the while-loop
- so you can **break;** out of the while-loop()

best regards Stefan

---

<div class="post-metadata">

**Author:** ![J-M-L](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/j-m-l/32/766245_2.png) [@J-M-L](https://forum.arduino.cc/u/J-M-L)\
**Post date:** [November 8, 2023, 4:26pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/15 "2023-11-08T16:26:21Z")

</div>

> [@schwarz046](#):
>
> is there really no other way aside from using blink without delay? I've seen my peers use the "break;" command and it works for them

when you need to wait, you could check the buttons

```arduino
unsigned long t0 = millis();
bool needToExit = false;
while (millis() - t0 <= 1000) {
  if (digitalRead(buttonPin) == LOW) { // button is pressed, interrupt sequence
    needToExit = true;
    break;
  }
}
if (needToExit) return; // or whatever is needed to exit from current pattern

```

not fantastic but could be away to check the button status along the pattern execution...

---

<div class="post-metadata">

**Author:** ![schwarz046](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/schwarz046/32/983998_2.png) [@schwarz046](https://forum.arduino.cc/u/schwarz046)\
**Post date:** [November 8, 2023, 4:26pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/16 "2023-11-08T16:26:29Z")

</div>

```arduino
int SW[4] = {2,3,4,5};
int LEDs[8] = {6,7,8,9,10,11,12,13};
int CurrentState=0;	

void setup()
{
  Serial.begin(9600);
  
  for(int x=0; x<4; x++)
  { 
   pinMode(SW[x], INPUT);
  }
  
  for (int x=0; x<8; x++)
  {
    pinMode(LEDs[x], OUTPUT);
 }
}

void loop()
{
  TurnOffAll();
  
   
  if (digitalRead(2)==HIGH && digitalRead(3)==LOW && digitalRead(4)==LOW && digitalRead(5)==LOW){
   
     Pattern1();
  }
  
  if (digitalRead(2)==LOW && digitalRead(3)==HIGH && digitalRead(4)==LOW && digitalRead(5)==LOW){
    
 Pattern2();
 }
 
 if (digitalRead(2)==LOW && digitalRead(3)==LOW && digitalRead(4)==HIGH && digitalRead(5)==LOW){
  
  Pattern3();
}
 
if (digitalRead(2)==LOW && digitalRead(3)==LOW && digitalRead(4)==LOW && digitalRead(5)==HIGH){

    Pattern4();
}
else
{
  TurnOffAll();
  }
  
Serial.println(digitalRead(2));
Serial.println(digitalRead(3));
Serial.println(digitalRead(4));
Serial.println(digitalRead(5));
Serial.println("================");

  //Serial.println(digitalRead(3));
 // Serial.println(digitalRead(4));
 // Serial.println(digitalRead(5));
 // Serial.println("=====================");
  
  
}

 void BlinkAll() {
   for (int x = 0; x <= 7; x++)
    {
     digitalWrite(LEDs[x], HIGH);
     delayMicroseconds(1000);
  }
 }

void TurnOffAll(){
    for (int x = 0; x <= 7; x++)
    {
      digitalWrite(LEDs[x], LOW);
    }
  }

void Pattern1()
  {
    for (int x = 0; x <= 8; x++)
    {
      digitalWrite(LEDs[x], HIGH);
      digitalWrite(LEDs[x-1], HIGH);
      delay(1000);
      if(digitalRead(2)==LOW)
      {
        break;
      }
      digitalWrite(LEDs[x-1], LOW);
      
   }
  }

void Pattern2()
  {
    for (int x = 0; x <= 9; x++)
    {
      digitalWrite(LEDs[x], HIGH);
      digitalWrite(LEDs[x-1], LOW);
      digitalWrite(LEDs[x-2], HIGH);
      delay(1000);
       if(digitalRead(3)==LOW)
      {
        break;
      }
      digitalWrite(LEDs[x-2], LOW);
    }
  }

void Pattern3()
{
 for(int x=0; x<=7; x++)
  {
    digitalWrite(LEDs[x], HIGH);
    delay(1000);
    digitalWrite(LEDs[x], LOW);
    if(digitalRead(4)==LOW)
      {
         break;
      }
  }
  for(int x=6; x>=0; x--)
  {
    digitalWrite(LEDs[x], HIGH);
    delay(1000);
    digitalWrite(LEDs[x], LOW);
    if(digitalRead(4)==LOW)
      {
        break;
      }
  }
}

void Pattern4()
{for(int x=0; x<=7; x++)
  {
    digitalWrite(LEDs[x], HIGH);
    delay(1000);
    if(digitalRead(5)==LOW)
      {
         break;
      }
  }
  for(int x=7; x>=0; x--)
  {
    digitalWrite(LEDs[x], LOW);
    delay(1000);
    if(digitalRead(5)==LOW)
      {
       break;
      }
  }
}

```

Above is the code of my peer. It gets the job done which is to immediately turn off all leds when no switch is turned on, and it happens to work when he integrated the "break" command in his code. It's too complex for me to understand but in what way can I also integrate "break" command in my code earlier?

---

<div class="post-metadata">

**Author:** ![alto777](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/alto777/32/317385_2.png) [@alto777](https://forum.arduino.cc/u/alto777)\
**Post date:** [November 8, 2023, 4:31pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/17 "2023-11-08T16:31:55Z")

</div>

> [@schwarz046](#):
>
> It gets the job done which is to immediately turn off all leds

You have a different idea if what _immediate_ means. It looks like you are happy waiting as long as 1000 milliseconds for this "immediate" reaction.

So if that is immediate enough for your purposes, all done.

When that level of immediacy proves to be excruciatingly unacceptable, you'll need to turn to one of the several examples offered that demonstrate the ideas some of us are pushing towards you.

a7

---

<div class="post-metadata">

**Author:** ![qubits-us](https://avatars.discourse-cdn.com/v4/letter/q/5daacb/32.png) [@qubits-us](https://forum.arduino.cc/u/qubits-us)\
**Post date:** [November 8, 2023, 4:58pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/18 "2023-11-08T16:58:18Z")

</div>

Hi @schwarz046 ,

My example in a sim..

[Uno Button Blink Leds..](https://wokwi.com/projects/380846752231062529)

good luck.. ~q

---

<div class="post-metadata">

**Author:** ![StefanL38](https://dub1.discourse-cdn.com/arduino/user_avatar/forum.arduino.cc/stefanl38/32/713548_2.png) [@StefanL38](https://forum.arduino.cc/u/StefanL38)\
**Post date:** [November 8, 2023, 5:00pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/19 "2023-11-08T17:00:06Z")

</div>

> [@qubits-us](#):
>
> My example in a sim..
> 
> [Uno Button Blink Leds..](https://wokwi.com/projects/380846752231062529)
> 
> good luck.. ~q

@qubits-us your example

> **[UnoLedsBlink - Wokwi ESP32, STM32, Arduino Simulator](https://wokwi.com/projects/380846752231062529)**
>
> Run IoT and embedded projects in your browser: ESP32, STM32, Arduino, Pi Pico, and more. No installation required!

it does not stop if the button is released

---

<div class="post-metadata">

**Author:** ![qubits-us](https://avatars.discourse-cdn.com/v4/letter/q/5daacb/32.png) [@qubits-us](https://forum.arduino.cc/u/qubits-us)\
**Post date:** [November 8, 2023, 5:01pm UTC](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794/20 "2023-11-08T17:01:09Z")

</div>

didn't realize that was a requirement..

sorry.. ~q

[Next page](https://forum.arduino.cc/t/leds-to-be-turned-off-immediately-when-i-turn-off-the-switch/1186794.md?page=2)
