Last active
October 4, 2020 13:27
-
-
Save EDISON-SCIENCE-CORNER/ace277a868e4aec7f5f92fbf12e12c72 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//LAST UPDATION 4 october 2020 | |
#include <EEPROM.h> | |
int pin = 2; //define interrupt pin to 2 | |
volatile int state = LOW; | |
int L1 = 8; | |
int L2 = 9; | |
int buttonPin = 6; | |
int p = 0; | |
int buttonState = 0; | |
int lastButtonState = 0; | |
void setup() { | |
attachInterrupt(digitalPinToInterrupt(pin), buttonread, FALLING); | |
pinMode(L1, OUTPUT); | |
pinMode(L2, OUTPUT); | |
pinMode(buttonPin, INPUT); | |
p = EEPROM.read(0); | |
if (p < 0 || p > 8) | |
{ | |
p = 0; | |
EEPROM.update(0, p); | |
delay(1000); | |
} | |
} | |
void loop() | |
{ | |
if (p == 1) //both on | |
{ | |
digitalWrite(L1, 1); | |
digitalWrite(L2, 1); | |
delay(10); | |
} | |
if (p == 2)// blinking both with 500ms delay | |
{ | |
digitalWrite(L1, 0); | |
digitalWrite(L2, 0); | |
delay(500); | |
digitalWrite(L1, 1); | |
digitalWrite(L2, 1); | |
delay(500); | |
} | |
if (p == 3) // blinking both with 100ms delay | |
{ | |
digitalWrite(L1, 0); | |
digitalWrite(L2, 0); | |
delay(100); | |
digitalWrite(L1, 1); | |
digitalWrite(L2, 1); | |
delay(100); | |
} | |
if (p == 4) //blinking one after the other with 1000ms delay | |
{ | |
digitalWrite(L1, 1); | |
digitalWrite(L2, 0); | |
delay(1000); | |
digitalWrite(L1, 0); | |
digitalWrite(L2, 1); | |
delay(1000); | |
} | |
if (p == 5) //blinking one after the other with 500ms delay | |
{ | |
digitalWrite(L1, 1); | |
digitalWrite(L2, 0); | |
delay(500); | |
digitalWrite(L1, 0); | |
digitalWrite(L2, 1); | |
delay(500); | |
} | |
if (p == 6) //for blinking l1 three times then three time L2 with 500ms delay | |
{ | |
digitalWrite(L1, 1); | |
delay(500); | |
digitalWrite(L1, 0); | |
delay(500); | |
digitalWrite(L1, 1); | |
delay(500); | |
digitalWrite(L1, 0); | |
delay(500); | |
digitalWrite(L2, 1); | |
delay(500); | |
digitalWrite(L2, 0); | |
delay(500); | |
digitalWrite(L2, 1); | |
delay(500); | |
digitalWrite(L2, 0); | |
delay(500); | |
} | |
if (p == 7) //for blinking l1 three times then three time L2 with 200ms delay | |
{ | |
digitalWrite(L1, 1); | |
delay(200); | |
digitalWrite(L1, 0); | |
delay(200); | |
digitalWrite(L1, 1); | |
delay(200); | |
digitalWrite(L1, 0); | |
delay(200); | |
digitalWrite(L1, 1); | |
delay(200); | |
digitalWrite(L1, 0); | |
delay(200); | |
digitalWrite(L2, 1); | |
delay(200); | |
digitalWrite(L2, 0); | |
delay(200); | |
digitalWrite(L2, 1); | |
delay(200); | |
digitalWrite(L2, 0); | |
delay(200); | |
digitalWrite(L2, 1); | |
delay(200); | |
digitalWrite(L2, 0); | |
delay(200); | |
} | |
if (p == 8) | |
{ | |
p = 0; | |
} | |
} | |
void buttonread() | |
{ | |
p++; | |
if (p > 8) | |
{ | |
p = 0; | |
} | |
EEPROM.update(0, p); | |
delay(1000); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment