const int button = 4; // connected to trigger button const int doorSensor = 5; // connected to door sensor switch (HIGH is closed, LOW is open) const int doorLock = 6; // connected to door lock relay trigger input (HIGH is unlocked, LOW is locked) int buttonState = 0; // variable for reading the pushbutton status int doorState = 0; // variable for reading the door status (open/closed) void setup(){ pinMode (doorSensor, INPUT); // set pin to input pinMode (button, INPUT); // set pin to input pinMode (doorLock, OUTPUT); // set pin to output } void loop(){ doorState = digitalRead(doorSensor); // read state of door sensor buttonState = digitalRead(button); // read state of button if (buttonState == HIGH) { // if button is pressed unlockDoor(); // perform unlock function }else{ // if button is not pressed digitalWrite(doorLock, LOW); // keep door locked } } void unlockDoor(){ digitalWrite(doorLock,HIGH); // unlock door delay(2000); // wait 2 seconds if (doorState == LOW){ // if door is open after 2 second delay do { doorState = digitalRead(doorSensor); // Re-check sensor digitalWrite(doorLock,HIGH); // keep door unlocked }while (doorState == LOW); // while door is open // when doorState == HIGH delay(500); // wait 1/2 second digitalWrite(doorLock, LOW); // lock door }else if (doorState == HIGH){ // if door is closed after 2 second delay digitalWrite(doorLock,LOW); // lock door } }