const int switchPin = 2;
const int ledPin = 13;
int buttonState;
int lightState = 0;
int blinkState = LOW;
long previousMillis = 0;
long interval = 1000;
unsigned long currentMillis = 0;
void setup() {
// put your setup code here, to run once:
pinMode(switchPin, INPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
buttonState = digitalRead(switchPin);
}
void loop() {
// put your main code here, to run repeatedly:
int val = digitalRead(switchPin);
delay (10);
int val2 = digitalRead(switchPin);
if (val == val2){
if (val != buttonState) {
if (val == LOW) { // Remove this IF statement to engage LED when button is pressed
if (lightState == 0) {
lightState = 1;
digitalWrite(ledPin, HIGH);
Serial.println(("Button pressed, light ON"));
currentMillis = 0;
previousMillis = 0;
blinkState = LOW;
}
else{
lightState = 0;
digitalWrite(ledPin, LOW);
blinkState = LOW;
Serial.println(("Button pressed, light OFF"));
}
}
}
}
if (lightState== 1){
currentMillis = millis();
if(currentMillis - previousMillis > interval ){
previousMillis = currentMillis;
if (blinkState == LOW)
blinkState = HIGH;
else
blinkState = LOW;
digitalWrite(ledPin, blinkState);
}
}
buttonState = val;
}