SHOW:
|
|
- or go back to the newest paste.
1 | ||
2 | const int button = 4; // connected to trigger button | |
3 | const int doorSensor = 5; // connected to door sensor switch (HIGH is closed, LOW is open) | |
4 | const int doorLock = 6; // connected to door lock relay trigger input (HIGH is unlocked, LOW is locked) | |
5 | ||
6 | int buttonState = 0; // variable for reading the pushbutton status | |
7 | int doorState = 0; // variable for reading the door status (open/closed) | |
8 | ||
9 | void setup(){ | |
10 | pinMode (doorSensor, INPUT); // set pin to input | |
11 | pinMode (button, INPUT); // set pin to input | |
12 | pinMode (doorLock, OUTPUT); // set pin to output | |
13 | } | |
14 | ||
15 | void loop(){ | |
16 | doorState = digitalRead(doorSensor); // read state of door sensor | |
17 | buttonState = digitalRead(button); // read state of button | |
18 | ||
19 | if (buttonState == HIGH) { // if button is pressed | |
20 | unlockDoor(); // perform unlock function | |
21 | }else{ // if button is not pressed | |
22 | digitalWrite(doorLock, LOW); // keep door locked | |
23 | } | |
24 | } | |
25 | ||
26 | void unlockDoor(){ | |
27 | digitalWrite(doorLock,HIGH); // unlock door | |
28 | delay(2000); // wait 2 seconds | |
29 | ||
30 | if (doorState == LOW){ // if door is open after 2 second delay | |
31 | ||
32 | do { | |
33 | doorState = digitalRead(doorSensor); // Re-check sensor | |
34 | digitalWrite(doorLock,HIGH); // keep door unlocked | |
35 | }while (doorState == LOW); // while door is open | |
36 | ||
37 | // when doorState == HIGH | |
38 | delay(500); // wait 1/2 second | |
39 | digitalWrite(doorLock, LOW); // lock door | |
40 | ||
41 | }else if (doorState == HIGH){ // if door is closed after 2 second delay | |
42 | digitalWrite(doorLock,LOW); // lock door | |
43 | } | |
44 | } |