Skip to content

Instantly share code, notes, and snippets.

@EDISON-SCIENCE-CORNER
Last active October 4, 2020 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EDISON-SCIENCE-CORNER/ace277a868e4aec7f5f92fbf12e12c72 to your computer and use it in GitHub Desktop.
Save EDISON-SCIENCE-CORNER/ace277a868e4aec7f5f92fbf12e12c72 to your computer and use it in GitHub Desktop.
//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