View difference between Paste ID: euYQQ4Jc and F80XzHQP
SHOW: | | - or go back to the newest paste.
1-
long previousMillis = 0;
1+
unsigned long previousMillis = 0;  
2-
long stoptime = 2000;
2+
unsigned long stoptime = 2000;
3
unsigned long currentMillis = millis();
4
5
6
int led = 13;
7
int ledstate = LOW;
8
9
boolean timerOn = false;  // know when to check for the timer
10
boolean toogleLED = true;  // set a flag so the switch only happens once
11
12
void setup(){
13-
void loop(){
13+
14-
  previousMillis = currentMillis;
14+
15-
  if(ledstate == LOW){
15+
16-
  Serial.println("Turning on LED, Lets see if it turns off in 2 seconds");
16+
17-
  digitalWrite(led, HIGH);
17+
  Serial.println("...Program start\n");
18-
  ledstate = HIGH;
18+
19
20
void loop() {
21-
  else if(currentMillis - previousMillis > stoptime) {
21+
  currentMillis = millis();  // get current time
22
  
23-
    digitalWrite(led, LOW );
23+
  digitalWrite(led, ledstate);  // always update the pin
24
25
  if((currentMillis - previousMillis >= stoptime) && (timerOn == true)) {
26
    // we hit the interval time, stoptime
27
    Serial.println("Timer has expired, Turning off LED");
28
    ledstate = LOW;
29
    timerOn = false;
30
  }
31
  
32
  if ((ledstate == LOW) && (toogleLED == true)) {
33
    Serial.println("Turning on LED, Lets see if it turns off in 2 seconds");
34
    ledstate = HIGH;
35
    previousMillis = currentMillis;  // store CURRENT time to compare against
36
    toogleLED = false;
37
    timerOn = true;  
38
  }
39
}