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.

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
Previous Medir temperatura con Arduino y sensor LM35
Next Medir inclinación con Arduino y sensor tilt SW-520d
  • 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 pase un gato (tengo 8), se active, se encienda el laser y se mueva en la direccion del movimiento, con este sensor se podria hacer todo eso? O tendria que usar los de ultrasonidos? O no es viable el automatismo? La referencia del juguete es de Aliens jejejeje, me encantaron las ametralladoras automaticas, gracias por todo y un saludo.

    • 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 son direccionales (no saben de donde les viene la señal que miden)

      En cualquier caso, sería mucho mejor y más preciso la solución con webcam. A ver si un día hago una entrada con algún proyecto similar

      • 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….