#define BUTTON_PIN 2
#define LED_PIN 4
int led_state=LOW;
int lastButtonstate=HIGH;
int buttonstate;
unsigned long lastDebouncetime = 0;
unsigned long debounceDelay= 50;
void setup()
{
pinMode(LED_PIN, OUTPUT);
pinMode(BUTTON_PIN, INPUT_PULLUP);
}
void loop()
{
int reading=digitalRead(BUTTON_PIN);
if(reading!=lastButtonstate)
{
lastDebouncetime=millis();
}
if((millis()-lastDebouncetime)>debounceDelay)
{
if(reading!=buttonstate)
{
buttonstate=reading;
if(buttonstate==LOW)
{
led_state=!led_state;
digitalWrite(LED_PIN, led_state);
}
}
}
lastButtonstate = reading;
}