Arduino UNO R4 - Door Sensor - LED

This guide shows you how to control an LED using Arduino UNO R4 and a door sensor. We will explore two different uses:

Use 1 - The LED turns on when the door is open and turns off when the door is closed. The LED's behavior matches the door sensor's status. Specifically:

Use 2 - The LED's status changes each time the door opens. In more detail:

Hardware Preparation

1×Arduino UNO R4 WiFi
1×Arduino UNO R4 Minima (Alternatively)
1×USB Cable Type-C
1×Door Sensor
1×LED
1×220 ohm resistor
1×Breadboard
1×Jumper Wires
1×(Recommended) Screw Terminal Block Shield for Arduino UNO R4
1×(Recommended) Breadboard Shield For Arduino UNO R4
1×(Recommended) Enclosure For Arduino UNO R4

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Disclosure: Some of the links provided in this section are Amazon affiliate links. We may receive a commission for any purchases made through these links at no additional cost to you.
Additionally, some of these links are for products from our own brand, DIYables.

Overview of LED and Door Sensor

If you are unfamiliar with LED and door sensor (including pinout, operation, and programming), the following tutorials can help:

Wiring Diagram

The wiring diagram between Arduino UNO R4 door sensor LED

This image is created using Fritzing. Click to enlarge image

Application 1 - The LED state is in sync with the door sensor state

Arduino UNO R4 Code

/* * This Arduino UNO R4 code was developed by newbiely.com * * This Arduino UNO R4 code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-door-sensor-led */ #define DOOR_SENSOR_PIN 8 // The Arduino UNO R4 pin connected to door sensor's pin #define LED_PIN 2 // The Arduino UNO R4 pin connected to LED's pin int door_state; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open");; digitalWrite(LED_PIN, HIGH); // turn on LED } else { Serial.println("The door is closed"); digitalWrite(LED_PIN, LOW); // turn off LED } }

Detailed Instructions

Follow these instructions step by step:

  • If this is your first time using the Arduino Uno R4 WiFi/Minima, refer to the tutorial on setting up the environment for Arduino Uno R4 WiFi/Minima in the Arduino IDE.
  • Connect LED and door sensor to the Arduino Uno R4 according to the provided diagram.
  • Connect the Arduino Uno R4 board to your computer using a USB cable.
  • Launch the Arduino IDE on your computer.
  • Select the appropriate Arduino Uno R4 board (e.g., Arduino Uno R4 WiFi) and COM port.
  • Copy the above code and paste it into the Arduino IDE
  • Click the Upload button on the Arduino IDE to compile and upload the code to the Arduino UNO R4.
Arduino IDE Upload Code
  • Open and close the door
  • Check out the change in the LED's state.

You will see that the LED state is in sync with the door sensor state.

Code Explanation

Check out the line-by-line explanation contained in the comments of the source code!

Application 2 - Door Sensor toggles LED

Arduino UNO R4 Code - Door Sensor Toggles LED

/* * This Arduino UNO R4 code was developed by newbiely.com * * This Arduino UNO R4 code is made available for public use without any restriction * * For comprehensive instructions and wiring diagrams, please visit: * https://newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-door-sensor-led */ #define DOOR_SENSOR_PIN 8 // The Arduino UNO R4 pin connected to door sensor's pin #define LED_PIN 2 // The Arduino UNO R4 pin connected to LED's pin int led_state = LOW; // the current state of LED int prev_door_state; // the previous state of door sensor int door_state; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode pinMode(LED_PIN, OUTPUT); // set arduino pin to output mode door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door closing is detectedd"); // toggle state of LED led_state = !led_state; // control LED arccoding to the toggled state digitalWrite(LED_PIN, led_state); } }

Code Explanation

You can locate the explanation in the comment lines of the Arduino UNO R4 code above.

In the code, the expression led_state = !led_state is equal to the following code:

if(led_state == LOW) led_state = HIGH; else led_state = LOW;

Detailed Instructions

  • Copy the code and open it in the Arduino IDE.
  • Upload the code to the Arduino UNO R4.
  • Open and close the door several times.
  • Check out the change in the LED's state.

You will see that the LED state is toggled once each time the door is closed.

Video Tutorial

※ OUR MESSAGES

  • As freelancers, We are AVAILABLE for HIRE. See how to outsource your project to us
  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!