-
Notifications
You must be signed in to change notification settings - Fork 0
/
delay_sensor.ino
53 lines (44 loc) · 1.34 KB
/
delay_sensor.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
delay off without delay (use millis)
progrma scris de Nicu Florica (niq_ro)
http;//www.arduinotehniq.com/
http://nicuflorica.blogspot.ro/
http://arduinotehniq.blogspot.com
v.0 - 20.04.2019 - Craiova, Romania
v.1.0 - add (infrared) sensor
*/
#define pinsensor 3 // pin for trigger
#define pinled 4 // pin for led
unsigned long delaytime = 3000; // 30000 = 30s, time on the led
unsigned long pushtime; // variable for store time of push
byte aprins = 0; // led is off
void setup()
{
Serial.begin(9600); // serial monitor
Serial.println("-----------------");
Serial.println("Delay off with millis() function by Nicu FLORICA (niq_ro) !");
Serial.println("-----------------");
pinMode(pinsensor,INPUT);
//digitalWrite(pinbutton,HIGH);
pinMode(pinled,OUTPUT);
digitalWrite(pinled,LOW);
Serial.println("LED is OFF !");
}
void loop()
{
if ((digitalRead(pinsensor) == HIGH) and (aprins == 0)) // if sensor was triggered and led is off
{
Serial.println("Sensor is triggered!");
digitalWrite(pinled, HIGH); // led on
Serial.println("LED on !");
pushtime = millis(); // store the time of push
aprins = 1;
}
if ((aprins == 1) and (millis() - pushtime > delaytime)) // if led is on and time is end
{
Serial.println("LED off !");
digitalWrite(pinled, LOW); // led off
aprins = 0;
Serial.println("-------------------");
}
} // end of main loop