¡Hola humanos! En este tutorial vamos a aprender cómo hacer funcionar un sensor PIR con Arduino y construiremos un detector de movimiento. Los Sensores PIR son pequeños dispositivos que permiten detectar movimiento mediante infrarrojos (a lo Predator). Normalmente se utilizan en sistemas de seguridad para detectar el movimiento de personas o animales dentro de habitaciones cerradas o en zonas controladas.

Materiales

Para este tutorial necesitaremos:

  • Una placa Arduino y un cable USB compatible.
  • Un sensor PIR
  • Resistencia de 10kΩ
  • Cables y protoboard

¿Cómo funciona un sensor PIR?

Los sensores PIR en realidad están compuestos de un sensor piroeléctrico. Estos sensores tienen dos minúsculas ranuras llenas de un material que produce electricidad cuándo detecta radiación infrarroja.

Cuándo un objeto caliente (una persona o un animal) entra en el campo de visión del sensor, se produce una diferencia de potencial entre las dos mitades del sensor piroeléctrico. Esta diferencia de potencial nos sirve para saber cuándo hay movimiento delante del dispositivo.

El problema que tienen los sensores piroeléctricos es que su rango de visión es muy limitado, pero nos interesa tener un campo de visión lo más amplio posible. Para conseguirlo, el sensor piroeléctrico se cubre con una lente, normalmente hecha de un plástico blanquecino. Esta lente a su vez está compuesta de varias sub-lentes, cada una de las cuáles es una Lente de Fresnel. Estas lentes tienen la peculiaridad de condensar toda la luz que le llega en un único punto, en este caso el sensor piroeléctrico.

Todas las lentes de Fresnel de la cúpula apuntan al centro del sensor piroeléctrico. Esto hace que el campo de visión sea mucho mayor que si dejásemos el sensor sin cubrir.

Partes del módulo

Para facilitar su uso, el sensor está montado encima de un pequeño módulo que contiene varios componentes y circuitos integrados. El módulo tiene tres pines (VCC, GND y OUTPUT). Los sensores PIR son digitales y por tanto cuándo el sensor detecte movimiento, el pin de OUTPUT se pondrá a HIGH hasta que el movimiento cese. Hay que tener en cuenta que por lo general estos sensores no son perfectos y pueden tener un pequeño retraso o ignorar algunos movimientos.

También tiene dos potenciómetros. El primero es para regular la sensibilidad del sensor. El segundo marca el tiempo que el pin de OUTPUT estará activo cuándo se detecte movimiento. Normalmente este tiempo puede ajustarse de 0.3 segundos hasta 5 minutos, pero dependerá del modelo que tengamos.

Por último, el módulo tiene tres pines más, dos de ellos conectados con un puente. Estos tres pines nos permiten elegir el modo de activación: “Repeatable Trigger” y “Non-Repeatable Trigger”. En el primer modo, el OUTPUT permanece a HIGH cuando el sensor detecta movimiento. En el segundo modo el ouput se pone a HIGH y después a LOW cuándo se detecta movimiento. En este último caso, si se detecta mucho movimiento, el sensor enviará pulsos HIGH/LOW repetidamente. En ambos modos de activación el output estará a LOW cuándo no se detecte ningún movimiento.

Código

Para este ejemplo solamente vamos a leer el Pin Digital 4 en el que tenemos conectado el sensor PIR y encenderemos el LED 13 si se ha detectado algún movimiento.

/*  Sensor PIR con Arduino

int sensor = 4;
int led = 13;
 
  
void setup()
{
  pinMode(led, OUTPUT);
  pinMode(sensor, INPUT);
}
  
void loop()
{
  int lectura = digitalRead(sensor);
  digitalWrite(led, lectura);
}

Una vez cargado el código, tendremos que esperar unos 60 segundos para que el sensor se estabilice. Si todo ha funcionado bien, veremos como el LED se enciende cada vez que pasamos por delante del campo de visión del sensor.

Extra: PIR sin Arduino

Conecar un sensor PIR a Arduino cuándo lo único que queremos es encender y apagar un LED si hay movimiento es un poco como matar moscas a cañonazos. El sensor PIR puede funcionar sin necesidad de conectarse a ningún microcontrolador, sólo hay que montar este esquema

https://robologs.net/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *