HC-SR501 Sensor de movimiento PIR para Arduino, ESP8266 y ESP32

Aprenda a utilizar el sensor de movimiento PIR HC-SR501 con su microcontrolador Arduino, ESP8266 y ESP32 entendiendo el esquema, la funcionalidad y el cableado.

El sensor de movimiento PIR HC-SR501 es un sensor infrarrojo capaz de detectar movimientos. En este tutorial, te muestro la funcionalidad del HC-SR501 con la ayuda del esquema de la PCB.

Hablamos de las tres opciones de ajuste antes de que veas cómo conectar el sensor de movimiento PIR HC-SR501 con diferentes microcontroladores Arduino, ESP8266 y ESP32.

También se aprende a operar el HC-SR501 directamente desde 3,3V en lugar de más de 5V.

HC-SR501 en miniatura

16. Marzo de 20211. Marzo de 2021 por cdaviddav

Sensor de movimiento PIR HC-SR501 para Arduino, ESP8266 y ESP32

El sensor de movimiento PIR HC-SR501 es un sensor de infrarrojos capaz de detectar movimiento. En este tutorial, les muestro cómo funciona el HC-SR501 usando el esquema de PCB.

Discutimos las tres opciones de configuración antes de ver cómo conectar el sensor de movimiento PIR HC-SR501 con diferentes microcontroladores Arduino, ESP8266 y ESP32.

También aprenderá a operar el HC-SR501 directamente desde 3.3V en lugar de más de 5V.

HC-SR501 en miniatura

Hoja de datos del sensor de movimiento PIR HC-SR501

La siguiente tabla muestra los detalles técnicos del sensor de movimiento PIR HC-SR501.

Tensión de entrada5V…20V (pero con un hack, podemos usar 3,3V)
Tensión de funcionamiento3,3V
Corriente de reposo50 μA
Salida de nivelHIGH 3,3 V / LOW 0 V
Tiempo de estabilización inicial60s
DisparoDisparo simple (L) o Disparo repetido (H)
Tiempo de retardo2,5s …5min
Distancia de medición3m …7m
Ángulo de mediciónÁngulo del cono de 110°

El voltaje de entrada del HC-SR501, según la hoja de datos, está entre 5V y 20V. Podría pensar que el sensor de movimiento no puede ser alimentado por un microcontrolador ESP8266 o ESP32. Pero en uno de los siguientes capítulos profundizamos en el esquema del HC-SR501 y vemos que el voltaje de trabajo es de 3.3V y podemos usar un pequeño truco para alimentar el HC-SR501 desde un ESP8266 o un ESP32.

La corriente de reposo del HC-SR501 es de aproximadamente 50 μA y con este bajo consumo de energía también es adecuado para proyectos que funcionan con baterías.
La salida del sensor de movimiento PIR HC-SR501 es:

  • ALTA (3.3V) cuando se detecta movimiento.
  • BAJA (0V) cuando no se detecta movimiento.

Si enciende el sensor de movimiento, debe esperar 60 segundos hasta que el tiempo de estabilización inicial obtenga lecturas precisas. Consideraremos este tiempo de estabilización inicial en la función de configuración de nuestro código de programa Arduino.

El HC-SR501 tiene un total de 3 opciones de configuración:

  1. Gatillo único (débil) donde varios desencadenantes consecutivos se reconocen como un desencadenante o disparador repetitivo (alto) donde se calcula cada disparador detectado.
  2. Tiempo de retardo que establece el tiempo que la salida del HC-SR501 permanece ALTA después de que se detecta movimiento entre 2.5 segundos y 5 minutos.
  3. Medida de distancia entre 3 metros y 7 metros.

El ángulo de medición del HC-SR501 es de 110 ° para poder registrar movimientos en un gran ángulo frente al sensor.

Pinout del sensor de movimiento PIR HC-SR501

La siguiente imagen muestra la vista inferior del sensor de movimiento PIR HC-SR501 donde vemos todos los pines de ajuste y potenciómetros.

Asignación de pines HC-SR501

En la parte superior se ven los 2 pines de conexión a tierra y de alimentación que conectan el sensor de movimiento a la fuente de alimentación, este es principalmente nuestro microcontrolador Arduino, ESP8266 o ESP32. El pin en el medio es la salida digital que puede ser ALTA si se detecta movimiento o BAJA en caso contrario.

En el lado izquierdo están los jumpers que definen el modo de disparo que queremos usar. Si conecta el pin superior con el pin del medio, tiene un disparador de repetición (H) y si conecta el pin del medio con el pin inferior, el HC-SR501 reconoce solo un disparador (L).

Para el ajuste de sensibilidad y sincronización, tiene dos potenciómetros en la parte inferior del sensor de movimiento PIR.

Diagrama del sensor de movimiento PIR HC-SR501

Para comprender la funcionalidad del sensor de movimiento PIR HC-SR501, echamos un vistazo más de cerca al diagrama del sensor de movimiento PIR HC-SR501. Dado que el HC-SR501 tiene muchos componentes, nos centraremos en los principales componentes eléctricos que son importantes para comprender la funcionalidad y los ajustes que se pueden realizar para la operación.

La siguiente imagen muestra el esquema del HC-SR501.

Dibujo HC-SR501

Fuente de alimentación y regulador de voltaje HC-SR501

En la parte inferior derecha, verá un bloque llamado «POWER_SIGNAL». Este bloque tiene 3 pines que son nuestra conexión para la fuente de alimentación y la salida digital que vimos en el capítulo anterior de pinout. Los pines de conexión son los siguientes:

Pin en el pin esquemático en la descripción de PCB

1+ PoderFuente de alimentación CC positiva entre 5 V… 20 V
2Salida ALTA / BAJASalida digital (ALTA: 3,3 V o BAJA: 0 V)
3GNDtierra

El polo positivo de la fuente de alimentación CC (1) está conectado al Regulador de voltaje HT7133-1 LDO (baja caída). Los dos últimos dígitos del HT7133 indican que la tensión de salida es de 3,3 V. Por esta razón, la tensión de funcionamiento del sensor de movimiento PIR HC-SR501 es de 3,3 V.

Vemos en el diagrama, que las conexiones de los puentes, en el diagrama “JUMPER”, también están conectadas al riel de 3.3V con el pin 1 y a tierra con el pin 3.

Detector de movimiento Micro Power PIR BISS0001 IC

La funcionalidad principal del módulo HC-SR501 la proporciona el Detector de movimiento Micro Power PIR BISS0001 IC. La siguiente tabla muestra los pines de BISS0001 y una descripción detallada de la funcionalidad de cada pin.

Número de pinSímboloDescripción
1ASelección de disparo y conectado al puente de selección de disparo.
HIGH: el sensor de movimiento PIR se vuelve a disparar.
BAJO: el HC-SR501 se convierte en no re-disparable.
2V0Pin de salida y conectado a la salida digital del HC-SR501
3RR1Control de la anchura del pulso de salida que define la duración del tiempo durante el cual el pin de salida (Vo) permanece alto después del disparo y, por lo tanto, está conectado al potenciómetro para el ajuste del retardo de tiempo..
4RC1
5RC2Control de inhibición de disparo que no se puede modificar
6RR2
7VSSConexión a tierra
8VRFEntrada de reinicio y de referencia de tensión que iguala la tensión de alimentación de 3,3V
9VCCLa entrada de inhabilitación del disparo puede conectarse a una fotorresistencia que el sensor de movimientos sólo esté activo durante el día o sólo por la noche.
10IBAjuste de la corriente de polarización de la entrada del amplificador de potencia
11VDDtensión de alimentación de 3,3
122OUTSalida del Op-amp de la segunda etapa y entrada inversora, que se conecta al potenciómetro para ajustar la distancia de detección.
132IN
141IN+Entrada no inversora del Op-amp de la primera etapa que se conecta a los electrodos IR
151IN-Salida del Op-amp de la primera etapa y entrada inversora
161OUT

Diferentes opciones de configuración del HC-SR501

En esta subsección, queremos echar un vistazo más de cerca a las tres opciones de configuración diferentes del sensor de movimiento PIR HC-SR501:

  • Ajuste de distancia
  • Ajuste de retardo de tiempo
  • Selección de gatillo

Configuración de la distancia de detección HC-SR501

El HC-SR501 tiene una distancia de detección de entre 3 my 7 m. A través del potenciómetro incorporado, puede ajustar la distancia de detección. Si la posición del potenciómetro es más en el sentido de las agujas del reloj, la distancia de detección es de 7 metros. Girar el potenciómetro en sentido antihorario disminuye la distancia de detección a 3 metros.

Configuración de retardo de tiempo del HC-SR501

El tiempo de espera establece el tiempo que la salida del HC-SR501 permanece ALTA después de que se detecta movimiento. Puede ajustar el retardo de tiempo con el potenciómetro incorporado. La configuración mínima (la posición más en sentido antihorario) es de 3 segundos y la demora máxima es de 5 minutos (la posición más en el sentido de las agujas del reloj).

El ajuste de retardo de tiempo solo está activo cuando el puente de selección de disparador está configurado en un solo disparador (L). La siguiente sección trata sobre los puentes de selección de disparadores.

Puente de selección de activador HC-SR501

Los modos de disparo se calculan a través del circuito integrado de detección de movimiento Micro Power PIR BISS0001 que ya conoce en el diagrama. El pin A (1) de BISS00001 controla el modo reactivable o no reactivable.

  • El pin A está conectado a tierra: el HC-SR501 ya no se puede volver a disparar.
  • El pin A está conectado a la tensión de alimentación de 3,3 V: el sensor de movimiento PIR se vuelve a activar.

Entonces podemos elegir entre los dos modos de disparo seleccionando qué pines conectamos a través del puente amarillo.

  • Disparador único (L): el puente conecta los pines 1 y 2, de modo que el pin A de BISS00001 esté conectado a tierra.
    Tan pronto como el sensor de movimiento detecta movimiento, la salida del HC-SR501 se vuelve ALTA y permanece alta durante el tiempo establecido por el potenciómetro de retardo. No se tiene en cuenta ningún movimiento dentro de este período.
  • Disparador de repetición (H): el puente conecta los pines 2 y 3, de modo que el pin A de BISS00001 esté conectado a 3.3V.
    Cuando se detecta movimiento, la salida se pone ALTA durante el tiempo configurado por el potenciómetro de retardo como un solo disparador, pero cada movimiento durante el retardo se detecta y reinicia el retardo.

En la siguiente sección, discutimos la funcionalidad del sensor de movimiento PIR HC-SR501 donde también verá un gráfico de serie de tiempo con la diferencia de las dos selecciones de disparador.

Funcionalidad del sensor de movimiento PIR HC-SR501

El sensor de movimiento PIR HC-SR501 tiene una cúpula blanca en la PCB que es una lente Fresnel para enfocar el IR en el elemento sensor. El elemento sensible del HC-SR501 es un Sensor infrarrojo piroeléctrico pasivo RE200B.

El sensor de movimiento contiene un electrodo positivo y negativo, configurado como un diferencial de tipo de serie opuesta balanceado para que los electrodos se cancelen entre sí. Por esta razón, el sensor de movimiento PIR detecta cambios en los niveles de IR y no niveles de IR constantes.

El circuito integrado del detector de movimiento integrado Micro Power PIR BISS0001 procesa la señal de ambos electrodos y envía una señal ALTA o BAJA al microcontrolador. Debido a que la salida de HC-SR501 es ALTA o BAJA, puede usar este módulo de sensor de movimiento PIR sin ningún microcontrolador conectando la salida de HC-SR501 con la entrada de un relé para encender una luz o con la entrada de un zumbador activo para crear una alarma.

La siguiente imagen muestra una serie temporal de todas las señales relevantes que son importantes para la funcionalidad del sensor de movimiento PIR HC-SR501.

HC-SR501 Serie temporal de señales importantes

Imagínese colocar el sensor de detección de movimiento frente a una puerta para que el sensor reconozca cuando alguien entra por esa puerta.

Las dos primeras líneas son los electrodos positivo y negativo del sensor de infrarrojos. Debido a que el sensor izquierdo o derecho recibe radiación infrarroja de una persona que atraviesa la puerta, tenemos un breve retraso entre los dos electrodos que ve en la imagen. En nuestro caso, el electrodo positivo recibe el IR antes que el electrodo negativo.

Desde la salida del sensor PIR, verá que los dos electrodos están conectados entre sí y se cancelan entre sí. Solo necesita agregar la salida positiva y negativa de ambos electrodos y si la cantidad absoluta de señal IR detectada es diferente, obtendrá una salida del sensor PIR desigual a cero.

El detector de movimiento Micro Power PIR BISS0001 calcula el valor absoluto de la salida PIR y emite una señal digital de acuerdo con el puente de selección de disparo HC-SR501 utilizado:

  • Si el puente de selección de disparo repite el disparo (H), verá que se reconoce el segundo pico de la señal de movimiento detectado y aumenta la cantidad de tiempo que la salida digital permanece ALTA.
  • Si el puente de selección de disparo es de disparo único (L), solo se tiene en cuenta el pico inicial de la señal de movimiento detectada y, por lo tanto, el tiempo que el sensor de movimiento PIR HC-SR501 permanece ALTO es menor que la selección del puente de retención.

La siguiente tabla le brinda una descripción general de todos los componentes y partes que utilicé para este tutorial. Recibo comisiones por compras realizadas a través de los enlaces de esta tabla.

Componente de enlace de Amazon Enlace de AliExpress

Arduino NanoAmazonAliExpress
Arduino Pro MiniAmazonAliExpress
Arduino UnoAmazonAliExpress
Arduino MegaAmazonAliExpress
ESP32 ESP-WROOM-32AmazonAliExpress
ESP8266 NodeMCUAmazonAliExpress
ESP8266 WeMos D1 MiniAmazonAliExpress
Fotoresistencia, potenciómetro y termistor en el paquete de sensoresAmazon
Fotoresistencia, potenciómetro y termistor en el paquete de sensoresAliExpress

Cableado entre el sensor de movimiento PIR HC-SR501 y las placas Arduino

El cableado entre el sensor de movimiento HC-SR501 PIR y varias placas Arduino se muestra en las siguientes imágenes. La salida digital del HC-SR501 se recibe a través del pin 7 de E / S digital del Arduino. Usamos el voltaje de funcionamiento de 5 V del Arduino como fuente de alimentación para el sensor de movimiento.

  • Arduino Nano
  • Arduino Pro Mini 5V
  • Arduino Uno
  • Arduino Mega

Arduino Nano

Cableado del sensor de movimiento infrarrojo Arduino Nano HC-SR501

Para obtener más información sobre Arduino Nano, visite el tutorial de Arduino Nano.

Arduino Pro Mini 5V

Cableado del sensor de movimiento por infrarrojos HC-SR501 Arduino Pro Mini

Arduino Uno

Cableado del sensor de movimiento por infrarrojos HC-SR501 Arduino Uno

Para obtener más información sobre Arduino Uno, visite el tutorial de Arduino Uno.

Arduino Mega

Cableado del sensor de movimiento por infrarrojos HC-SR501 Arduino Mega

Para obtener más información sobre Arduino Mega, visite el tutorial de Arduino Mega.

¿Cómo utilizo una fuente de alimentación de 3,3 V para el HC-SR501?

De la hoja de datos de HC-SR501, sabemos que el detector de movimiento Micro Power PIR BISS0001 tiene un voltaje de funcionamiento de 3.3V y en la sección del diagrama vimos que el voltaje de entrada más alto se reduce a 3.3V a través del regulador de voltaje HT7133-1 LDO .

Por lo tanto, solo necesitamos una posibilidad para conectar la fuente de alimentación del ESP8266 o ESP32 al riel de 3.3V del HC-SR501. La siguiente imagen muestra nuevamente el esquema del HC-SR501 y si observa más de cerca los conectores del puente del eje, verá que el pin 1 de los puentes está conectado al riel de 3.3V.

Dibujo HC-SR501

Y esta es nuestra solución, usamos el pin 1 de los jumpers como polo positivo para la tensión de alimentación DC y el modo de disparo repetitivo (L) que conecta los pines 2 y 3. La siguiente foto muestra las conexiones entre el sensor HC-SR501 PIR y ESP8266 o ESP32.

HC-SR501 Sensor de movimiento PIR para Arduino, ESP8266 y ESP32

Cableado entre placas HC-SR501 y ESP8266 / ESP32

El cableado entre el sensor de movimiento HC-SR501 PIR y el ESP8266 o ESP32 tiene una diferencia importante en comparación con el cableado del Arduino, ya que no usamos los pines. estándar para la fuente de alimentación, pero el cable de puente 1 que vio en el capítulo anterior. La salida digital del HC-SR501 se recibe desde el pin digital D7 del ESP8266 y el pin 4 del ESP32. Las siguientes imágenes muestran el cableado.

  • ESP8266 NodeMCU
  • ESP8266 WeMos D1 Mini
  • ESP32 ESP-WROOM-32

ESP8266 NodeMCU

Cableado del sensor de movimiento por infrarrojos HC-SR501 ESP8266 NodeMCU

ESP8266 WeMos D1 Mini

Zumbador ESP8266 WeMos D1 Mini
Cableado del sensor de movimiento por infrarrojos Mini HC-SR501 ESP8266 WeMos D1

ESP32 ESP-WROOM-32

Cableado del sensor de movimiento por infrarrojos HC-SR501 ESP32 ESP-WROOM-32

Código de programa para construir el detector de alarma de movimiento HC-SR501

Ahora queremos utilizar el sensor de movimiento PIR HC-SR501 como detector de alarma de movimiento. Puede usar su placa de microcontrolador Arduino, ESP8266 o ESP32 favorita para este proyecto y usar el cableado de los capítulos anteriores.
Las siguientes secciones muestran el código del programa del detector de alarma de movimiento.


					int inputPin = 7; // for Arduino microcontroller
//int inputPin = D7; // for ESP8266 microcontroller
//int inputPin = 4; // for ESP32 microcontroller
 
void setup() {
  pinMode(inputPin, INPUT);
  Serial.begin(9600);

  delay(60*1000);
}
 
void loop(){
  int val = digitalRead(inputPin);
  if (val == HIGH) {
    Serial.println("Motion detected!");
    }
  else {
    Serial.println("No Motion detected!");
    }
    
delay(10);
}
				

El código del programa está escrito para microcontroladores Arduino, ESP8266 y ESP32. Por esta razón, solo debe usar una de las primeras tres líneas del código del programa que define el pin de conexión donde se conecta el microcontrolador al HC-SR501. Puede comentar o eliminar otras líneas de código que no coincidan con el microcontrolador que está utilizando.

En la función de configuración, configuramos el pin digital como entrada porque recibimos la señal de movimiento del sensor, y configuramos la velocidad en baudios en 9600 para la conexión serial USB para poder leer los datos con el monitor serial IDE Arduino. También estamos agregando un retraso de 60 segundos, ya que el HC-SR501 tiene un tiempo de estabilización inicial.

La función de bucle comienza leyendo el valor digital del HC-SR501. A continuación, creamos una declaración if-else simple para definir que si el valor digital del detector de alarma de movimiento es alto, imprimimos que se detecta movimiento y si el valor digital permanece bajo, imprimimos que no se detecta movimiento.

Al final, esperamos 10 milisegundos antes de volver a iniciar la función de bucle.


Deja un comentario