sábado, 23 de mayo de 2015

Arduino + Sensor PIR

Arduino + Sensor PIR







Es necesario mencionar que todos los cuerpos, por su característica energética, generan calor, por lo cual emiten radiación en la parte del espectro infrarrojo.


Estas ondas infrarrojas son capturadas por diversos sensores, el más conocido es el sensor PIR. Su nombre deriva de Passive Infrared (Pasivo Infrarrojo). Denominado pasivo por el hecho de que este sensor no emite ninguna señal para detectar las ondas infrarrojas. 

Para ampliar el rango de detección utiliza una lente, llamada lente de Fresnel. Lo especial de ésta es su forma y su color que además de ampliar el rango, focaliza con precisión la radiación sobre el sensor.


Es importante mencionar dos partes que resaltan de este sensor. Primero veamos sus tres pines, dos de ellos se enfocan en la alimentación (que puede ser de 4.5 a 20 V, pero en este ejemplo se alimentará con 5V) y la tercera en la salida digital que adopta "se detectó..." ó "no se detectó...".




Lo segundo se centra en el ajuste de su sensibilidad (Sx) y el tiempo de accionamiento (Tx). Este ajuste se puede realizar por los potenciómetros que se encuentran en el otro extremo del sensor. Por defecto, el tiempo está ajustado al mínimo que corresponde a 2,5 - 3 segundos, el cual puede graduarse hasta 200 segundos. Con respecto a su sensibilidad de detección cubre un rango de 3 a 7 m.

Experimentación

A continuación, realizaremos un programa que pueda encender un LED cuando el sensor PIR detecte un movimiento. Para ello necesitamos de los siguientes componentes (los cuales se incluyen en el kit Arduino UNO):
  • Arduino UNO
  • Cable USB
  • 1 LED
  • 1 sensor PIR
  • 3 Cables jumper Macho - Hembra

El circuito a montar es muy sencillo. Además, recuerde que el pin 13 del Arduino UNO contiene ya una resistencia de protección, por la cual, el LED se conectará directamente. Y tiene la opción de utilizar un protoboard o no, puesto que el pin de GND se encuentra lado al pin 13. (Puede observar el esquema del circuito y el circuito visual)









 El programa es el siguiente:


int pinLED = 13;                
int sensorPIR=7;                
int lectura = 0;          
int estado = LOW;                    
  
void setup() {
  pinMode(pinLED, OUTPUT);      
  pinMode(sensorPIR, INPUT);     
  Serial.begin(9600);
}
  
void loop(){
  lectura = digitalRead(sensorPIR);   
  if (lectura == HIGH) {            
    digitalWrite(pinLED, HIGH);  
    if (estado == LOW) {     
                                
      Serial.println("Se detecto movimiento");
      
      estado = HIGH;
    }
    
  } 
  else {
      digitalWrite(pinLED, LOW); 
     if (estado == HIGH){    
     Serial.println("No se detecto movimiento");
      estado = LOW;
    }
  }
}

Por tanto, el resultado llegará ser de la siguiente manera gráfica.


No hay comentarios:

Publicar un comentario