Arduino UNO R4 - Sensor de Movimiento
Este tutorial te enseña cómo usar el sensor de movimiento HC-SR501 y el Arduino UNO R4 para detectar a una persona. En detalle, aprenderemos:
- Cómo funciona el sensor de movimiento HC-SR501
- Cómo conectar el sensor de movimiento HC-SR501 al Arduino UNO R4
- Cómo programar el Arduino UNO R4 para leer información del sensor de movimiento HC-SR501
- Cómo usar el Arduino UNO R4 y el sensor de movimiento para detectar la entrada de personas

Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables STEM V4 IoT Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca del sensor de movimiento HC-SR501

El sensor PIR HC-SR501 detecta movimiento humano o animal. Se utiliza comúnmente en diversas aplicaciones, como encender y apagar las luces, abrir y cerrar puertas, operar escaleras mecánicas y detectar intrusos.
Cuando vayas a lugares donde las puertas se abren y cierran solas, donde las luces se encienden y apagan automáticamente, o donde las escaleras mecánicas se ponen en marcha solas, ¿te has preguntado alguna vez cómo sucede esto? Si es así, esta guía no solo explicará cómo funciona, sino que también te mostrará cómo crearlo tú mismo. ¡Comencemos!
Disposición de pines
El sensor de movimiento HC-SR501 viene con tres pines:
- Pin GND: conecta a GND (0V)
- Pin VCC: conecta a VCC (5V)
- Pin OUTPUT: envía un nivel bajo cuando no hay movimiento, un nivel alto cuando hay movimiento. Conecta este pin al pin de entrada del Arduino UNN R4.
El HC-SR501 incluye un puente y dos potenciómetros, que ayudan a ajustar la configuración del sensor. Comienza con la configuración por defecto. Puedes encontrar más información en la sección Usos avanzados.

Cómo funciona
El sensor HC-SR501 detecta movimiento al notar cambios en la luz infrarroja procedente del objeto que se mueve. Para que el sensor HC-SR501 detecte un objeto, debe cumplir dos condiciones:
- Está temblando o moviéndose
- Está emitiendo energía infrarroja.
Por lo tanto:
- Si un objeto se mueve sin emitir rayos infrarrojos (como un robot o un coche de juguete), el sensor no lo detectará.
- Si un objeto emite rayos infrarrojos pero no se mueve (como una persona que permanece inmóvil), el sensor no lo detectará.
Los humanos y los animales emiten infrarrojos de forma natural. Por ello, el sensor puede detectar cuándo se mueven.
El estado del pin de salida:
- Si no hay ninguna persona ni animal moviéndose dentro del alcance del sensor, el pin de salida del sensor está en nivel bajo.
- Si una persona o un animal entra en el alcance del sensor, el pin de salida pasa de nivel bajo a nivel alto, indicando detección de movimiento.
- Si una persona o un animal sale del alcance del sensor, el pin de salida pasa de nivel alto a nivel bajo, indicando el fin del movimiento.
El video muestra la idea básica de cómo funciona el sensor de movimiento. En situaciones reales, la forma en que funciona puede variar ligeramente según su configuración, tal como se explica en la sección de Usos Avanzados.
Arduino UNO R4 - Sensor de Movimiento HC-SR501
Cuando configuras un pin del Arduino UNO R4 como entrada digital, puede detectar si el elemento conectado está en un estado bajo o alto.
Conecta el pin del Arduino UNO R4 al pin de salida del sensor HC-SR501. Luego, utiliza el código del Arduino UNO R4 para leer el valor del pin de salida y detectar movimiento.
Diagrama de Cableado

This image is created using Fritzing. Click to enlarge image
Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.
Configuración inicial
| Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
| Detection Range Adjuster | Screw it in clockwise direction fully. |
| Repeat Trigger Selector | Put jumper as shown on the image. |

Cómo programar para un sensor de movimiento
- Configura un pin del Arduino UNO R4 en modo de entrada digital usando la función pinMode().
- Utilice la función digitalRead() para comprobar el estado del pin de salida del sensor.
- Detectar cuándo comienza el movimiento (el pin cambia de estado de LOW a HIGH).
- Detectar cuándo se detiene el movimiento (el estado del pin cambia de alto a bajo).
Código de Arduino UNO R4
Pasos R\u00e1pidos
Siga estas instrucciones paso a paso:
- Si es la primera vez que usas Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
- Conecta los componentes según el diagrama proporcionado.
- Conecta la placa Arduino Uno R4 a tu computadora mediante un cable USB.
- Inicia la IDE de Arduino en tu computadora.
- Selecciona la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
- Copia el código anterior y ábrelo usando el IDE de Arduino
- Presiona el Subir botón en la IDE de Arduino para cargar el código a Arduino UNO R4
- Abre el Monitor Serial
- Mueve tu mano frente al sensor
- Verifica la salida en el Monitor Serial
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.
Usos avanzados
Podemos ajustar la configuración del sensor utilizando un puente y dos potenciómetros, como se describe arriba.
Ajuste del rango de detección
Este potenciómetro ajusta la distancia de detección (aproximadamente entre 3 y 7 metros).
- Cuando esté completamente girado en sentido horario, el alcance de detección es de aproximadamente 3 metros.
- Cuando esté completamente girado en sentido antihorario, el alcance de detección es de aproximadamente 7 metros.

Podemos cambiar la configuración del potenciómetro para obtener el rango que queremos, entre 3 y 7 metros.
Ajustador de retardo de tiempo
Este potenciómetro ajusta el retardo.
- Si lo giras todo en sentido horario, el retraso será de aproximadamente 5 minutos.
- Si lo giras todo en sentido antihorario, el retraso será de aproximadamente 3 segundos.
A continuación, explicaremos qué significa el retraso temporal y cómo se relaciona con Repeat Trigger.

Selector de disparadores de repetición
Este puente le permite seleccionar un modo de disparo: disparo único o disparo repetible.

Nos referiremos a la configuración de retardo (ajustada por el ajustador de retardo) como time_delay. Imagina que sigues moviéndote dentro del área de detección del sensor durante un período considerable, al que llamaremos motion_time (mucho más largo que time_delay).
- En modo de disparo único, el pin de salida alterna entre BAJO y ALTO varias veces. Permanece ALTO durante un período igual a "time_delay" y BAJO durante un tiempo fijo de 3 segundos.

- El pin de salida se mantiene en ALTO durante la duración del tiempo de movimiento más el tiempo de retardo.

Pruebas
Probemos los modos de disparo. Gira el ajustador de retardo completamente hacia la izquierda para establecer el tiempo de retardo en 3 segundos.
- Modo de disparo único:
- Coloca el puente para seleccionar el modo de disparo único.
- Mueve la mano frente al sensor de forma continua durante 10 segundos.
- Quita la mano del alcance del sensor.
- Espera 3 segundos; luego verifica el monitor serial para la salida tal como se muestra.
- Modo de disparo repetible:
- Coloque el puente para activar el modo de disparo repetible.
- Mantenga la mano frente al sensor de forma continua durante unos 10 segundos.
- Quite la mano del alcance del sensor.
- Después de esperar 3 segundos, verifique el monitor serie para ver la salida.
- Los dispositivos o máquinas suelen encenderse cuando se detecta a una persona cercana.
- Los dispositivos o máquinas no se apagan tan pronto como la persona se va. Se apagan después de un cierto retardo.
En el modo de disparo único, el sensor se activa dos o tres veces. En el modo de disparo repetible, el sensor se activa solo una vez.
※ Nota:
Durante el periodo LOW, que dura 3 segundos, el sensor no puede detectar ningún movimiento. Esto significa que el sensor está inactivo durante este tiempo, pero por lo general no suele causar ningún problema.
Se recomienda usar el modo de disparo repetible.
En aplicaciones prácticas: