Lección 24 Sensor PIR HC-SR501
Introducción
En esta lección, aprenderás a utilizar un detector de movimiento PIR con un
UNO R3.
Hardware necesario
1 * RexQualis UNO R3
1 * Sensor de movimiento PIR HC-SR501
3 * Cables puente Hembra-Macho
1 *5mm LED ROJO
Principio
SENSOR PIR:
Los sensores PIR son más complicados que muchos de los otros sensores
explicados en este tutorial (por ejemplo, fotocélulas, FSRs e interruptores de
inclinación) porque existen múltiples variables que afectan la entrada y salida
de los sensores.
Un sensor PIR tiene dos ranuras. Cada ranura está hecha d un material
especial que es sensible a infrarrojo. La lente que se utiliza en realidad no
hace mucho, por lo que veremos que las dos ranuras pueden 'ver' más allá de
cierta distancia (básicamente, la sensibilidad del sensor).
Cundo es sensor está inactivo, las dos ranuras detectan la misma cantidad de
infrarrojo, la cantidad ambiental irradiada por el cuarto o las paredes o el
exterior. Cuando un cuerpo cálido como el de un ser humano o animal pasa,
intercepta primero una mitad del sensor PIR, lo que genera un cambio
diferencial positivo entre las dos mitades. Cuando el cuerpo cálido abandona
el área de detección, sucede lo contrario, por lo que el sensor genera un
cambio diferencial negativo. Estos pulsos de cambio es lo que el sensor
detecta.
Pin o Control Función
Establece durante cuánto tiempo permanece alta la
Ajuste de tiempo de
salida después de detectar movimiento... Desde 5
retardo
segundos hasta 5 minutos.
Establece el rango de detección... desde 3 metros hasta
Ajuste de sensibilidad
7 metros
Cable de selección de Establece disparadores individuales o repetibles.
disparador
Pin de tierra Entrada de tierra
Bajo cuando no se detecta movimiento. Alto cuando se
Pin de salida
detecta movimiento. Alto es 3.3V
Pin de potencia Entrada de alimentación de 5 a 20 VDC
Descripción funcional de PIR HC SR501
El SR501 detectará cambios infrarrojos y, si estos se interpretan como
movimiento, establecerá su flujo de salida. Que se considera movimiento
depende en gran medida de los ajustes y características del usuario.
Inicialización del dispositivo
El dispositivo requiere casi un minuto para inicializar. Durante ese tiempo,
puede emitir, y a menudo emitirá, señales de detección falsas. La lógica del
circuito o controlador debe considerar este período de inicialización.
Área de detección del dispositivo
El dispositivo detectará movimiento dentro de un cono de 110 grados con un
rango de 3 a 7 metros.
Área de visión de HC SR501
Ajuste del rango de PIR (sensibilidad)
Como mencionamos, el rango ajustable es de aproximadamente 3 a 7 metros.
La ilustración a continuación muestra este ajuste.
Ajuste de tiempo de retardo en base a ajuste de sensibilidad de HC
SR501
El ajuste de tiempo de retardo determina por cuánto tiempo la salida del
modulo de sensor PIR permanecerá alto después de la detección del
movimiento. El rango es de aproximadamente 3 segundos hasta 5 minutos.
Ajuste de tiempo de retardo de HC SR501
Apagado 3 segundos después de que se complete el tiempo de retardo –
IMPORTANTE
La salida de este dispositivo se pondrá BAJA (o se apagará) durante
aproximadamente 3 segundos DESPUÉS de que se complete el tiempo de
retardo. En otras palabras, TODA la detección de movimiento se bloqueará
durante este período de 3 segundos.
Por ejemplo:
Imagina que estas en el modo de disparo único y tu tiempo de retardo es 5
segundos.
El PIR detectará el movimiento y lo establecerá alto durante 5 segundos.
Después de 5 segundos, el PIR establecerá su salida en bajo durante
aproximadamente 3 segundos.
Durante los 3 segundos, el PIR no detectará movimiento.
Después de 3 segundos, el PIR detectará movimiento nuevamente y el
movimiento detectado establecerá nuevamente la salida en alto.
Puente de selección de modo de disparo
El puente de selección de modo de disparo te permite seleccionar entre
disparos únicos y repetibles. El efecto de esta configuración de puente es
determinar cuando comienza el tiempo de retardo.
Ejemplos de aplicación
Imagina que deseas controlar la iluminación en una pista de baile en base a la
posición de los bailarines. Será necesario entender cómo interactúan el
tiempo de retardo y el modo de disparo para controlar la iluminación de la
manera qué deseas.
Ejemplo uno
En este primer ejemplo, el tiempo de retardo está establecido en 3 segundos y
el modo de disparó se establece como único. Como puedes ver en la
ilustración más abajo, el movimiento no es detectado siempre. De hecho, hay
un período de aproximadamente 6 segundos en el cual el movimiento puede
no ser detectado. Siéntete libre de hacer clic en la imagen para ampliar.
Ejemplo dos
En el próximo ejemplo, el tiempo de retardo está todavía configurado en 3
segundos y el disparo está configurado como repetible. En la ilustración más
abajo, puedes ver que el período de tiempo de retardo se reinicia.
Sin embargo, después de 3 segundos, la detección estará todavía bloqueada
durante 3 segundos.
Como mencionamos anteriormente, puedes anular el período de bloqueo de 3
segundos siendo creativo con el código, pero debes considerarlo. Es posible
que a algunos de los componentes electrónicos que utilices no le gusten el
cambio de encendido y apagado repentino. Los 3 segundos permiten un
pequeño descanso antes de reiniciarse.
Interpretación de código
int led = 13; // el pin al que está unido el LED
int sensor = 7; // el pin al que está unido el sensor
int state = LOW; // por defecto, no se detecta movimiento
int val = 0; // variable para almacenar el estado del
sensor (valor)
void setup() {
pinMode(led, OUTPUT); // inicializar el LED como una
salida
pinMode(sensor, INPUT); // inicializar el sensor como una
entrada
[Link](9600); // inicializar la serie
void loop(){
val = digitalRead(sensor); // lectura del valor del sensor
if (val == HIGH) { // verificar si el sensor está ALTO
digitalWrite(led, HIGH); // encender LED
delay(100); // retraso de 100 milisegundos
if (state == LOW) {
[Link]("Motion detected!");
state = HIGH; // actualizar estado de variable a
ALTO
else {
digitalWrite(led, LOW); // apagar LED
delay(200); // retraso de 200 milisegundos
if (state == HIGH){
[Link]("Motion stopped!");
state = LOW; // actualizar estado de variable a
BAJO
Procedimientos experimentales
Paso 1: Construir el circuito
Diagrama esquemático
Paso 2: Abrir el código:HC-SR501_Code
Paso 3: Conectar la placa Arduino UNO R3 a tu computadora
utilizando un cable USB y verificar que el 'Tipo de placa' y el
'Puerto en serie' estén configurados correctamente.
Paso 4: Subir el código a la placa RexQualis UNO R3.
Luego, podrás ver que cuando te acerques al sensor de
movimiento PIR, el LED parpadeará y no lo hará cuando no te
encuentres cerca del sensor de movimiento PIR.
En el caso en que no funcione, asegúrate de haber montado el
circuito correctamente, y de haber verificado y cargado el
código a tu placa. Para saber cómo cargar el código e instalar
la biblioteca, consulta la Lección 0 Prefacio.