Arduino - Sensor de puerta

El sensor de puerta se utiliza ampliamente en el ámbito de la seguridad. Se utiliza para detectar y monitorizar las entradas (como puertas, ventanas, etc.). El sensor de puerta también es conocido como «sensores de entrada», «sensores de contacto» o «sensores de ventana».

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×Sensor de Puerta
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del sensor de la puerta

Esquema de pines

El sensor de la puerta incluye dos componentes:

  • Un interruptor de láminas con dos pines
  • Un imán
Diagrama de pines del sensor de la puerta

Al igual que un interruptor o botón normal, no necesitamos distinguir los dos terminales del interruptor de láminas.

Cómo funciona

El imán está sujeto a la puerta o ventana (parte móvil), y el interruptor de láminas está sujeto al marco de la puerta (parte fija). Los dos componentes están en contacto cuando la puerta está cerrada.

  • Cuando el imán esté cerca del interruptor de láminas, el circuito del interruptor de láminas se cierra
  • Cuando el imán esté lejos del interruptor de láminas, el circuito del interruptor de láminas se abre
Sensor de Puerta Cómo Funciona Disposición de Pines

※ Nota:

El propio interruptor de láminas NO genera LOW ni HIGH en sus pines. Simplemente está en un estado cerrado o abierto. Dependiendo de cómo conectemos sus pines al Arduino, el valor en el pin puede ser LOW, HIGH o flotante (valor no previsto). Para evitar el valor flotante, debemos usar la resistencia de pull-up o pull-down en el pin del Arduino.

Si conectamos un pin del interruptor de láminas a tierra, el otro pin del interruptor de láminas al pin de entrada de Arduino con una resistencia pull-up (interna o externa):

  • Cuando el imán está cerca del interruptor de láminas (reed switch), el valor en el pin de entrada de Arduino es BAJO
  • Cuando el imán está lejos del interruptor de láminas (reed switch), el valor en el pin de entrada de Arduino es ALTO

Así:

  • Para comprobar el estado de la puerta, simplemente comprobamos el estado del pin de entrada de Arduino:
    • Si el estado es BAJO, la puerta está cerrada
    • Si el estado es ALTO, la puerta está abierta
  • Para detectar los eventos de apertura y cierre de la puerta, podemos detectar el cambio de estado en el pin de entrada de Arduino:
    • Si el estado cambia de BAJO a ALTO, se detecta el evento de apertura de la puerta
    • Si el estado cambia de ALTO a BAJO, se detecta el evento de cierre de la puerta

Diagrama de Cableado

Diagrama de cableado del sensor de puerta para Arduino

This image is created using Fritzing. Click to enlarge image

Cómo programar para el sensor de la puerta

  • Inicializa el pin de Arduino en modo de entrada digital usando la función pinMode(). Por ejemplo, el pin 13
pinMode(13, INPUT_PULLUP);
  • Lee el estado del pin de Arduino mediante la función digitalRead().
int doorState = digitalRead(13);

Código de Arduino - Verificar el estado de apertura y cierre de la puerta

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Pasos R\u00e1pidos

  • Copia el código anterior y ábrelo con Arduino IDE
  • Haz clic en el botón Subir en Arduino IDE para subir el código a Arduino
  • Coloca el imán cerca del interruptor de láminas y luego muévelo lejos del interruptor de láminas.
  • Consulta el resultado en el Monitor Serial.
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Código de Arduino - Detección de apertura y cierre de puertas

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin int currentDoorState; // current state of door sensor int lastDoorState; // previous 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 currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Copie el código anterior y ábralo con Arduino IDE
  • Haga clic en el botón Subir en Arduino IDE para subir el código a Arduino
  • Coloque el imán cerca del interruptor de láminas y luego aléjelo del interruptor de láminas.
  • Vea el resultado en el Monitor Serial.
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!