Detector de movimiento con Arduino y sensor PIR


arduino-pir

¿Que es un sensor PIR?

Los sensores infrarrojos pasivos (PIR) son dispositivos para la detección de movimiento. Son baratos, pequeños, de baja potencia, y fáciles de usar. Por esta razón son frecuentemente usados en juguetes, aplicaciones domóticas o sistemas de seguridad.

Los sensores PIR se basan en la medición de la radiación infrarroja. Todos los cuerpos (vivos o no) emiten una cierta cantidad de energía infrarroja, mayor cuanto mayor es su temperatura. Los dispositivos PIR disponen de un sensor piezo eléctrico capaz de captar esta radiación y convertirla en una señal eléctrica.

En realidad cada sensor está dividido en dos campos y se dispone de un circuito eléctrico que compensa ambas mediciones. Si ambos campos reciben la misma cantidad de infrarrojos la señal eléctrica resultante es nula. Por el contrario, si los dos campos realizan una medición diferente, se genera una señal eléctrica.

De esta forma, si un objeto atraviesa uno de los campos se genera una señal eléctrica diferencial, que es captada por el sensor, y se emite una señal digital.

Anuncio: Tus propias PCBs a media en PCBWAY

sensor-pir

El otro elemento restante para que todo funcione es la óptica del sensor. Básicamente es una cúpula de plástico formada por lentes de fresnel, que divide el espacio en zonas, y enfoca la radiación infrarroja a cada uno de los campos del PIR.

De esta manera, cada uno de los sensores capta un promedio de la radiación infrarroja del entorno. Cuando un objeto entra en el rango del sensor, alguna de las zonas marcadas por la óptica recibirá una cantidad distinta de radiación, que será captado por uno de los campos del sensor PIR, disparando la alarma.

sensor-pir-optica

Precio

Los sensores PIR son dispositivos baratos. Podemos encontrar sensores PIR por 0,80€ en vendedores internacionales en Ebay o AliExpress.

pir-sensor

Esquema eléctrico

Este es el esquema de patillaje de un sensor PIR.

arduino-pir-sensor

El esquema eléctrico que necesitamos es el siguiente.

arduino-pir-esquema-electrico

Esquema montaje

Mientras que el montaje en una protoboard sería el siguiente.

arduino-pir-montaje

Ejemplo de código

El código necesario para realizar la lectura es simple. Simplemente leemos la salida del PIR, y hacemos parpadear el LED mientras la señal esté activa.

Si quisiéramos ejecutar una acción una única vez al detectar movimiento, en lugar de todo el tiempo que la señal este activa, usaríamos el siguiente código.

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección Tutoriales de Arduino

Anuncio:

Previous Medir temperatura con Arduino y sensor LM35
Next Medir inclinación con Arduino y sensor tilt SW-520d

17
¡Deja un comentario!...

1000
11 Comment threads
6 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
12 Comment authors
newest oldest
Nuño Valencia

Buenas, ese PIR ¿que salida tiene? porque tengo uno pero es a 3.3v y Arduino no le llega la señal, he buscado por internet y todos tienen salida 3.3v

Un saludo.

luisllamas

Como dices, todos los que he visto tienen salida de 3.3V, lo que está muy bien porque de esta forma sirven tanto para Arduino de 5V como de 3.3V. Si tu Arduino es de 5V no debería tener ningún problema para leer la señal del PIR, ya cualquier tensión que sobre pase 2.5V es leído como HIGH en Arduino.

Juan Tavio

Buenas, soy un apasionado en esto de Arduino, he aprendido a manejar Freecad y Librecad, para hacer mis diseños realidad, tambien tengo una impresora 3D y me estoy montando una cortadora laser (este octubre empiezo el grado de ingenieria electronica), a lo que voy, he diseñado un juguete (una bateria de punteros laser) que en principio se mueve con un joystick, un par de servos y Arduino, la cosa es que tengo un sensor pir y el codigo me viene bien, pero ahora viene lo complicado para mi, lo que me gustaria hacer, es ponerle el sensor y que cuando… Read more »

luisllamas

Con un sensor PIR difícil porque la lente que tienen sirve, precisamente, para detectar el movimiento en un amplio rango. Para tu proyecto lo ideal sería una solución de visión, con una webcam. No sería demasiado complejo, con una Raspberry y OpenCV, pero sí se aleja del contenido de esta entrada. Una solución “fácil” sería poner varios PIR separados, por ejemplo, por cartones o algún tipo de estructura que limite el rango de cada sensor. De esta forma solo tendrías que “apuntar” al sensor que se haya activado. El resto de sensores (ultrasonidos, infrarrojos, etc) no te sirven, porque no… Read more »

Juan Tavio

Buenas, al final me decanto por la opcion de añadir mas sensores y que se posicione la torreta en direccion al sensor activado, mas que nada porque es mas barata y de raspberry no tengo ni idea aun, ya hice el diseño de los alojamientos de los sensores, solo me falta escribir el codigo e imprimir las piezas, si quieres cuando lo acabe te mando una foto o un video, para que la gente vea las cosas que se pueden hacer con Arduino a nivel usuario, un saludo y gracias por la informacion.

Jon Pulachet

Hola buenas, soy un principiante en este campo. Quería saber como puedo hacer que mi obra de arte sea interactivo como:

http://www.dezeen.com/2015/05/29/daniel-rozin-pompom-mirror-interactive-silhouettes-fur-tufts-descent-with-modificationbitforms-gallery-new-york/

No se que tipo de sensor debo utilizar, aun estoy investigando. Sería de gran ayuda y de agradecer una poco de ayuda en este tema. Gracias, un saludo

luisllamas

Ahí están usando un sensor como el de la Kinect (también hay uno parecido Asus). Necesitarías un ordenador, Raspberry por ejemplo, y usar reconocimiento óptico. En algún momento hare un tutorial sobre algún proyecto así.
Un saludo!

Alvaro Flores Salinas

mi sirvio de mucho esa ayuda gracias….

Daniel Rey Rey

Muy util ! justo lo que buscaba 🙂

Julieta P

Muchisimas gracias por la info wey!!! Nos salvaste a mi y a mi grupo de una grande. Saludos.

hdp

me gusta esta pagina

javi

Otro tutorial interesante y claro! gracias!
Profundizando un poco más en el funcionamiento de este PIR y su manejo desde arduino, veo que en tu miniejemplo (mas que suficiente para cientos de proyectos) no intervienen ninguna variable tiempo. ¿se´ria posible modificar en cierto modo los tiempos de espera, por ejemplo, entre activaciones del sensor, así como su duración, sin tocar los componentes?
Imagino la respuesta, pero quien sabe, 😀

javi

Probando este código junto con un codigo de envio/recepcion RF, me encuentro un problema: Este codigo, si bien es cierto que evita que el led parpadee, no evita que la señal esté llegando durante todo el tiempo que la señal del PIR está HIGH. ¿qué pasa si lo que se pretende es que, aunque la señal del PIR esté HIGH (cosa que dira unos 3 segundos mínimo, creo, sin modificar el hardware), solo hay un impulso puntual -más breve que dicha señal HIGH- en otro pin D? No hay. mas que experimentar, pero seguro que tu experiencia y conocimiento me… Read more »

Dickinson

Hola, a mi el sensor PIR me aparece como si todo el rato detectara presencia, no se que pasa

Rosario

Buenas quise prender una led con el sensor de movimiento y arduino pero solo prende y no se apaga el led

fabian velasquez

Que mas luis la duda que tengo es que si el tiempo de duracion de encendido puede ser indefinido osea que encienda el led hasta que no detete movimiento ?