0. Componentes y programación necesaria para instalación del detector de movimiento PIR HC-SR501 al Arduino UNO

Componentes requeridos:

{Product:2000}{Product:341}

I. Cómo utilizar un detector de movimiento PIR HC-SR501 

Para obtener más información sobre productos o sus descripciones técnicas entre en nuestra web Solectro Shop.

Realice la siguiente conexión de manera directa o con la placa prototipo MB-102 sin soldar mediante cables dupont:

Procedimientos experimentales

El módulo se alimenta directamente de Arduino, así que no necesitamos una fuente de energía externa. Los pines están conectados según la tabla:

Pin del sensor

Pin de Arduino UNO

VCC

5V

GND

GND

OUT

Pin 2

 

Los otros dos pines del módulo del sensor se conectan a la sonda de medición mediante los cables suministrado, como se muestra en el siguiente diagrama:

Diagrama de conexión del sensor a la placa UNO

Operación

 

Para que este código funcione correctamente, es mejor configurar el puente del modo de disparo en 'H' (modo de disparo repetido). También ajuste el potenciómetro de retardo de tiempo al valor más bajo. Gírelo en sentido antihorario tanto como sea posible.

 

El código leerá el estado del sensor (ALTO o BAJO) y encenderá o apagará el LED integrado en consecuencia. También imprimirá un mensaje en Serial Monitor, al que puede acceder en Herramientas o escribir (Ctrl + Shift + M).

Abre un nuevo sketch y pega el siguiente código:

 

/ * Código de ejemplo para el sensor de movimiento PIR HC-SR501 con Arduino. Más información: www.makerguides.com * /

// Definir pines de conexión:

#define pirPin 2

#define ledPin 13

// Crea variables:

int val = 0;

bool motionState = false ; // Empezamos sin detectar movimiento.

void setup() {

// Configure los pines como entrada o salida:

pinMode(ledPin, OUTPUT);

pinMode(pirPin, INPUT);

// Comience la comunicación en serie a una velocidad de 9600 baudios:

Serial.begin(9600);

}

void loop() {

// Leer el pirPin y almacenarlo como val:

val = digitalRead(pirPin);

// Si se detecta movimiento (pirPin = HIGH), haga lo siguiente:

if (val == HIGH) {

digitalWrite(ledPin, HIGH); // Enciende el LED integrado.

/ Cambia el estado de movimiento a verdadero (movimiento detectado):

if (motionState == false) {

Serial.println("¡Movimiento detectado!

motionState = true;

}

}

// Si no se detecta movimiento (pirPin = LOW), haga lo siguiente:

else {

digitalWrite(ledPin, LOW); // Apaga el LED integrado.

// Cambia el estado de movimiento a falso (sin movimiento):

if (motionState == true) {

Serial.println("¡Movimiento finalizado!");

motionState = false;

}

}

}

 

Los efectos del programa se pueden ver en la pantalla de abajo abriendo el Monitor serie: