Magos do Arduino

Sensor de presença HC-SR501

Aprenda a utilizar um sensor de presença HC-SR501 com o Arduino

Magos do Arduino

Sensor de presença HC-SR501

Conhecido também como sensor infravermelho passivo (PIR), ou mesmo como sensor de movimento.

Ele detecta movimento usando um par de sensores piroelétricos para detectar energia térmica ao redor do ambiente.

Sensor de presença HC-SR501 PIR

Esses dois sensores ficam um ao lado do outro e, quando a diferença de sinal entre os dois sensores muda (suponha que uma pessoa entre no ambiente), o sensor é acionado.

A leitura da detecção é realizada através de um único pino no sensor.

Ele possui dois potenciômetros para ajustes.

Um deles ajusta a sensibilidade de detecção.

O outro é para o ajuste da espera (delay) de detecção, ou o tempo em que ele fica como HIGH sempre que for acionado.

O jumper presente no sensor serve para selecionar o modo único ou múltiplo de detecção.

O modo único não detecta enquanto o tempo de espera esteja acionado.

O modo múltiplo detecta mesmo no tempo de espera, reiniciando o contador.

Sensor de presença HC-SR501

Neste projeto você criará um circuito que faz o uso de um display LCD de 16x2 com módulo I2C PCF8574T no Arduino.

Para a criação deste circuito serão necessários os seguintes componentes:

  • 1x Breadboard (opcional)
  • 1x Arduino UNO
  • 1x Sensor de presença HC-SR501
  • Jumpers

Circuito sensor de presença HC-SR501

Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.

Circuito sensor de presença HC-SR501

Schematics sensor de presença HC-SR501

A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.

Schematics sensor de presença HC-SR501

Código fonte para o circuito do sensor de presença HC-SR501

Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.

/**
 * Código do curso Magos do Arduino para conectar um sensor 
 * de presença PIR modelo HC-SR501 com o Arduino.
 * 
 * Ele imprime no Serial Monitor a mensagem de movimento detectado.
 *
 * (c) Copyright KazaleIT
 * @kazaleitoficial no YouTube
 **/

#define PINO_SENSOR 8

int detectado = LOW; // define que não existe detecção ao iniciar
int valorSensor = 0; // valor da leitura do sensor

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(PINO_SENSOR, INPUT);
  Serial.begin(9600);
}

void loop() {
  // realiza a leiura do valor corrente do sensor
  valorSensor = digitalRead(PINO_SENSOR);

  // caso movimento detectado
  if (valorSensor == HIGH) {
    // acende o LED da placa
    digitalWrite(LED_BUILTIN, HIGH); 

    // imprime mensagem somente quando mudar o estado
    if (detectado == LOW) { 
      Serial.println("Movimento detectado!");
      detectado = HIGH;
    }
  } else {
    // apaga o LED da placa
    digitalWrite(LED_BUILTIN, LOW); 

    // imprime mensagem somente quando mudar o estado
    if (detectado == HIGH) {
      Serial.println("Movimento não detectado.");
      detectado = LOW;
    }
  }
}