int val = 0;
int buttonPin = 3;
int LEDstate = 0;
int lightVal = 0;
int lightPin = A0;
int luxVal = 0;
int LEDpin = 4;
unsigned long milliTime = 0;
extern volatile unsigned long timer0_millis;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin, LOW);
pinMode(LEDpin, OUTPUT);
// put your setup code here, to run once:
}
void loop()
{
// put your main code here, to run repeatedly:
unsigned long milliTimeStart = millis();
int ToggleLEDFast = 0;
int ToggleLEDSlow = 0;
while(digitalRead(buttonPin) == 1)
{
digitalWrite(LEDpin, HIGH);
Serial.println("Button is not pressed");
}
while (digitalRead(buttonPin) == 0)
{
milliTime = millis() - milliTimeStart;
Serial.println("Button is Pressed");
Serial.println(milliTime);
}
if(milliTime < 2000 || (ToggleLEDSlow == 1) )
{
ToggleLEDSlow = 1;
while (ToggleLEDSlow == 1)
{
digitalWrite(LEDpin, LOW);
milliTime = 0;
noInterrupts ();
timer0_millis = 0;
interrupts ();
milliTime =millis();
delay(100);
if(digitalRead(buttonPin)==0)
{
ToggleLEDSlow =0;
digitalWrite(LEDpin, HIGH);
if ((milliTime <= 1000) && (milliTime >= 2000))
{
ToggleLEDFast =1;
}
}
delay(1000);
digitalWrite(LEDpin,HIGH);
delay(1000);
}
}
if((milliTime > 2000)||(ToggleLEDFast == 1) )
{
ToggleLEDFast = 1;
while (ToggleLEDFast == 1)
{
digitalWrite(LEDpin, LOW);
milliTime = 0;
noInterrupts ();
timer0_millis = 0;
interrupts ();
milliTime =millis();
delay(250);
if(digitalRead(buttonPin)==0)
{
ToggleLEDFast = 0;
digitalWrite(LEDpin, HIGH);
if(milliTime <= 1000 && milliTime <= 2000)
{
ToggleLEDSlow = 1;
digitalWrite(LEDpin,HIGH);
}
}
delay(250);
digitalWrite(LEDpin,HIGH);
delay(250);
}
}
}
/*
if(milliTime < 2000 )
{
ToggleLEDFast = 1;
while (ToggleLEDFast == 1)
{
digitalWrite(LEDpin, LOW);
millis(500);
digitalWrite(LEDpin,HIGH);
if(milliTime < 2000 && val == 0)
{
ToggleLEDFast = 0;
}
}
}
*/