Introducción

Los sensores PIR le permiten detectar movimiento, casi siempre se usan para saber si un humano se ha movido dentro o fuera del rango de los sensores.

Las siglas PIR vienen del inglés "Passive Infrared" que significa "Infrarrojo Pasivo". Básicamente miden la luz infrarroja de los objetos en su campo de visión, por lo tanto, pueden detectar el movimiento en función de los cambios de esta luz en el entorno.

Son pequeños, baratos, de bajo consumo, fáciles de usar y no se desgastan. Por esa razón, se encuentran comúnmente en electrodomésticos y aparatos utilizados en hogares o empresas.

Sensor PIR

Lista de Materiales

  • Módulo de Sensor PIR
  • Arduino UNO (cualquier versión)
  • LED
  • Buzzer
  • Protoboard
  • Cables de conexión
  • Resistencia de 330 ohmios

Conexión

Conectar los sensores PIR a un microcontrolador Arduino es realmente simple. El PIR actúa como una salida digital que puede ser de alto o bajo voltaje.

Entonces, todo lo que necesita hacer es escuchar en una entrada digital en su Arduino. Si el pin emite un un pitido agudo significa que fue detectado, contrariamente un pitido grave indica que no lo fue.

Es probable que desee volver a activarlo, así que asegúrese de poner el puente en la posición H.

Alimente el PIR con 5V y conecte tierra a tierra. Luego conecte la salida a un pin digital. En este ejemplo usaremos el pin 2.

Sensor PIR

Código

El código es muy simple y básicamente mantiene un registro de si la entrada al pin 2 es alta o baja. También realiza un seguimiento del estado del pin, de modo que imprime un mensaje cuando el movimiento se ha iniciado y se ha detenido.


void setup() {
	pinMode(2, INPUT); //PIN 2 as INPUT
	pinMode(3, OUTPUT); //PIN 3 as OUTPUT
}
		
void loop() {
	if (digitalRead(2) == HIGH){
		digitalWrite(3, HIGH); // turn the LED/Buzz ON
		delay(100); // wait for 100 msecond 
		digitalWrite(3, LOW); // turn the LED/Buzz OFF
		delay(100); // wait for 100 msecond 
	}
}
	
	
/*
* PIR sensor tester
*/ 
int ledPin = 13;                // choose the pin for the LED
int inputPin = 2;               // choose the input pin (for PIR sensor)
int pirState = LOW;             // we start, assuming no motion detected
int val = 0;                    // variable for reading the pin status
		 
void setup() {
	pinMode(ledPin, OUTPUT);      // declare LED as output
	pinMode(inputPin, INPUT);     // declare sensor as input
	Serial.begin(9600);
}
 
void loop(){
	val = digitalRead(inputPin);  // read input value
	if (val == HIGH) {            // check if the input is HIGH
		digitalWrite(ledPin, HIGH);  // turn LED ON
		if (pirState == LOW) {
			// we have just turned on
			Serial.println("Motion detected!");
			// We only want to print on the output change, not state
			pirState = HIGH;
		}
	} else {
		digitalWrite(ledPin, LOW); // turn LED OFF
		if (pirState == HIGH){
			// we have just turned of
			Serial.println("Motion ended!");
			// We only want to print on the output change, not state
			pirState = LOW;
		}
	}
}