How to make a led light stay on when pressed once and off when pressed again

i want to know how to keep led on when i press the button once and off when pressed again. could anyone give the code pls

Take a look at the StateChangeDetection example in the IDE

Here is example code using the state change detection method to use a push button to toggle the state of the built in LED (pin 13 on Uno).

// by C Goulding aka groundFungus

const byte  buttonPin = 4;    // the pin that the pushbutton is attached to
const byte ledPin = 13;       // the pin that the LED is attached to

bool buttonState = 0;         // current state of the button
boollastButtonState = 0;     // previous state of the button

void setup()
   // initialize the button pin as a input with internal pullup enabled
   pinMode(buttonPin, INPUT_PULLUP);
   // initialize the LED as an output:
   pinMode(ledPin, OUTPUT);
   // initialize serial communication:

void loop()
   static unsigned long timer = 0;
   unsigned long interval = 50;  // check switch 20 times per second
   if (millis() - timer >= interval)
      timer = millis();
      // read the pushbutton input pin:
      buttonState = digitalRead(buttonPin);
      // compare the new buttonState to its previous state
      if (buttonState != lastButtonState)
         if (buttonState == LOW)
            // if the current state is LOW then the button
            // went from off to on:
            digitalWrite(ledPin, !digitalRead(ledPin)); // toggle the output
      // save the current state as the last state,
      //for next time through the loop
      lastButtonState = buttonState;

The Arduino tutorial uses an active high switch (high when pressed). A better way is to wire the switch as active low. The button switch is wired active low in the above code. See my tutorial on the state change detection method with an active low switch.

I also use the millis() for timing to make the code non-blocking. See these tutorials:
Several things at a time.
Beginner's guide to millis().
Blink without delay().


thanks sir ..... i thought no one would answer this question, but you did with the code and also gave the links. thank you again.

Out of interest why did you think that ?

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.