Detector de proximidade com sensor infravermelho

Detector de proximidade com sensor infravermelho

Este Sensor Infravermelho é uma ótima opção para projetos que envolvam sistemas de segurança, medição de distâncias e monitoramento de entrada/saída de ambientes. Neste tutorial vamos mostrar como é fácil usá-lo como um detector de presença.

Sensor Infravermelho

O sensor infravermelho (IR) possui um circuito transmissor e um receptor, posicionados um ao lado do outro. Quanto um objeto ou pessoa passa em frente ao sensor, o sinal IR é refletido e detectado pelo receptor, que coloca o pino de saída em nível baixo (LOW), e aciona um led localizado na parte traseira do sensor.

Sensor Infravermelho - Ajuste distância

Você pode alterar a distância de detecção do sensor girando o parafuso também localizado na parte traseira. O ajuste fica entre 3 e 80cm. Com relação à alimentação, este sensor trabalha com tensão de 5V, podendo ser facilmente utilizado não só com o Arduino como também com outros microcontroladores.

Conexão do sensor infravermelho ao Arduino

A conexão do sensor infravermelho é bem simples, já que o sensor tem apenas 3 fios: Vermelho (Vcc), Preto (GND) e Amarelo (sinal). O pino de sinal será ligado à uma das portas digitais do Arduino, gerando um valor 0 (LOW) quando um objeto for detectado.

Para testes, vamos usar esse sensor como um detector de presença, acendendo e apagando um led quando for detectado movimento em frente ao sensor. Também vamos acionar um buzzer por um curto espaço de tempo. Siga o esquema de ligação abaixo:

Circuito Arduino e Sensor infravermelho

Programa detector de presença com sensor infravermelho

Como estamos trabalhando apenas com portas digitais, não vamos utilizar nenhuma biblioteca no programa. Vamos apenas checar se o estado da porta foi alterado (variável estado_sensor). Neste caso, a luz vermelha irá acender e o buzzer emitirá 3 bips. Em estado de “espera” (sem movimentação), apenas o led verde permanece aceso.

// Programa: Sensor infravermelho Arduino
// Autor: FILIPEFLOP

int pino_led_verde = 3;
int pino_led_vermelho = 5;
int pino_buzzer = 7;
int pino_sensor = 9;

int estado_sensor = 0;

void setup()
{
  Serial.begin(9600);
  // Define o pino do sensor como entrada
  pinMode(pino_sensor, INPUT);
  // Define os pinos dos leds e buzzer como saida
  pinMode(pino_led_verde, OUTPUT);
  pinMode(pino_led_vermelho, OUTPUT);
  pinMode(pino_buzzer, OUTPUT);
  Serial.println("Teste sensor infravermelho Arduino");
}

void loop()
{
  estado_sensor = digitalRead(pino_sensor);
  if (estado_sensor == 0)
  {
    // Desliga o led verde e acende o vermelho
    digitalWrite(pino_led_verde, LOW);
    digitalWrite(pino_led_vermelho, HIGH);
    // Aciona o buzzer 3 vezes
    for (int i = 1; i <= 3; i++)
    {
      digitalWrite(pino_buzzer, HIGH);
      delay(100);
      digitalWrite(pino_buzzer, LOW);
      delay(100);
    }
    // Envia mensagem para o Serial Monitor
    Serial.println("Movimento detectado!");
    delay(100);
  }
  else
  {
    // Sem movimento, mantem led verde ligado
    digitalWrite(pino_led_verde, HIGH);
    digitalWrite(pino_led_vermelho, LOW);
    digitalWrite(pino_buzzer, LOW);
  }
}

Abaixo, temos a montagem do circuito utilizado neste post:

Montagem Sensor de proximidade

Gostou ? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP !

6
Detector de proximidade com sensor infravermelho
46 votos, 4.80 classificação média (96% pontuação)

Formado em Ciência da Computação pela Universidade de Mogi das Cruzes, atualmente responsável pelo departamento técnico da FILIPEFLOP.

Compartilhe este Post

35 Comentários

  1. Maurício - 31 de março de 2017

    Com este sensor de presença eu consigo ligar uma TV por determinado tempo? Toda vez que o sensor detectar presença ele emite o código IR para ligar a TV por exemplo. Obrigado

  2. Eduardo - 15 de março de 2017

    Adilson,B.dia
    No lugar do buzzer,poderia ser substituido por relé de 5V.
    Obrigado.

  3. LEONARDO DA ROSA MAKSUDE - 9 de janeiro de 2017

    queria saber como posso fazer com que 3 sensores de movimento instalados , cada sensor aciona uma saida diferente alguem pode me ajudar? meu email maksuderg@gmail.com obrigado

  4. LEONARDO DA ROSA MAKSUDE - 9 de janeiro de 2017

    queria saber como posso fazer com que 3 sensores de movimento instalados , cada sensor aciona uma saida diferente alguem pode me ajudar?

  5. Felipe Parente - 18 de dezembro de 2016

    Bom Dia, utilizei este sensor em um projeto que fiz para contar produtos que passam em uma esteira de fábrica.
    A caixinha com o arduino e o sensor ficam ligados o dia inteiro.
    De inicio estava tudo muito bem, porém com o tempo fui informado que as vezes o sensor detecta objeto sem ter objeto em frente.
    Já viu algo desse tipo?
    Têm uma ideia de como resolver?

    • Josmá Oliveira - 21 de dezembro de 2016

      Boa tarde Felipe Parente. Coincidentemente ou não, estou com o mesmo problema que você . Fiz um contador para esteira usando Arduino MEGA e sensores E18-d80nk. (5 sensores). Usando a porta digital estava tudo perfeito e muito bem obrigado. Os primeiros problemas começaram a aparecer quando o operador desligava a energia de 1 dos sensores, dai por diante esse sensor que teve a fonte desligada começava a contar do nada (isso mesmo, ele contava desligado). Porém, com cada sensor com sua fonte ligada não tenho nenhum problema. meu e-mail netzonepatos@gmail.com meu whats 83 9 8124 7590 meu face Josmá Oliveira. Vamos trocar conhecimento?!

  6. Vinicius - 8 de outubro de 2016

    Bom dia,

    Sabem se este mesmo sensor poderia ser utilizado com o Raspberry Pi 3 ?

    Obrigado.

  7. Erick Brito - 12 de setembro de 2016

    Bom dia

    Tem como fazer esse projeto com o sensor de Movimento Presença PIR?

  8. Edmar Luiz - 18 de junho de 2016

    Boa Tarde,
    Adilson Thomsen, gostaria de saber se consigo adaptar esse sensor em uma caixa de Skinner fabricada pela MED. Estou trabalhando em um projeto de Analise Experimental do Comportamento e preciso adaptar um sensor para detectar se o ratos coloca a cabeça no comedouro. Uma possível solução seria utilizar um sensor infravermelho e me interessei por esse, entretanto gostaria de saber se ela detecta a cabeça do rato, que pesar cerca de 200g e se é possível criar um contador pra isso.

    Att,

    Edmar Luiz

  9. Donny - 9 de março de 2016

    Ola, da pra transformar esse sensor em analógico?

  10. Mario Pflanzer - 10 de outubro de 2015

    Ola pessoal, gostaria de saber se este sensor poderia ser usado em um projeto para medir o nível de um reservatorio de agua ?, tenho 48 anos e estou iniciando agora no arduino,meio tarde né, mas adoro eletronica,se puderem me ajudar no projeto desde já agradeço, abraço a todos.

  11. Jefferon Barros - 3 de outubro de 2015

    Boa noite comprei 2 sensores , eles estão funcionando perfeitamente , porém não estou conseguindo acionar mais de 1 modulo rele através dele . se alguém pode me ajudar agradeceria muito , Sou novato em programação rs.

    #include

    const byte NumModules = 1;
    SerialRelay relays(4, 5, NumModules);
    int pino_sensor = 7;
    int estado_sensor ;

    void setup()
    {
    Serial.begin(9600);
    // Define o pino do sensor como entrada
    pinMode(pino_sensor, INPUT);
    Serial.println(“Teste sensor infravermelho Arduino”);
    }

    void loop()
    {
    estado_sensor = digitalRead(pino_sensor);
    // Envia mensagem para o Serial Monitor
    Serial.println (estado_sensor);
    if (estado_sensor == 1)
    {
    relays.SetRelay(1, SERIAL_RELAY_ON,1); //Condição para ligar o ligar o relé do motor
    }
    if (estado_sensor != 1)
    {
    relays.SetRelay(1, SERIAL_RELAY_OFF, 1) ; // Condição para desligar o relé do motor
    delay(2000);
    relays.SetRelay(2, SERIAL_RELAY_ON, 1);
    delay (4000);
    relays.SetRelay(2, SERIAL_RELAY_OFF, 1);
    delay(500);
    relays.SetRelay(1, SERIAL_RELAY_OFF, 1);
    }

  12. Djonata Jobes Hvizdaleck - 18 de agosto de 2015

    Olá,

    Eu gostaria de medir o nível de líquido dentro de uma garrafa. O objetivo é ter um aparelho que encha a garrafa e corte o fluxo automaticamente quando o líquido atingir determinado nível. Este sensor ficaria posicionado sobre a garrafa, calculando a distância até o líquido “”

    Não consigo utilizar um sensor de nível de líquido porque ele teria que ser montado dentro da garrafa, tornando este tipo de sensor inviável.

    Minha pergunta é: Com este sensor de IR seria possível medir a distância do sensor até o líquido de forma que o gargalo não atrapalhe as medições? O facho de luz dele é concentrado ou disperso?

    • FILIPEFLOP - 19 de agosto de 2015

      Bom dia Djonata,

      Não fizemos esse teste com líquidos. Quanto ao facho de luz, segundo o fabricante o ângulo de detecção é de 15°.

      Abraço

      Adilson – Equipe FILIPEFLOP

    • Wiliam Custinne - 19 de agosto de 2015

      Usar HCSR04 Ultrasonic sensor. Uso ele para medir nivel num tanque de agua para encher com bomba de pressao !!

      • Djonata Jobes Hvizdaleck - 19 de agosto de 2015

        Wiliam,

        No seu caso, imagino que o sensor esteja na parte superior do tanque e apontado diretamente para a água. Neste caso, não existe a questão do gargalo para se preocupar.

        Minha preocupação é que o sinal emitido (seja som ou IR) seja refletido pelo gargalo da garrafa e atrapalhe, ou mesmo impeça, a leitura do nível de líquido dentro da garrafa.

        A leitura por cima do gargalo não é obrigatória. Se houver algum sensor que eu possa posicionar ao lado da garrafa e ele conseguir identificar que o líquido chegou naquele nível, também posso considerar essa opção.

        A questão é: existe algum sensor que consiga fazer isso?
        Essa pergunta vai para a equipe do site também. : )

        • Wiliam Custinne - 19 de agosto de 2015

          No caso que nao pode medir acima da garafa entao existe mais umas opçoes. O primeiro e mais usado e detectar com sensor capacitivo. Por isto vai ter que ter um pouco mais experto em eletronica ou pesquisar no internet. A idea e pra colocar um sensor do lado da garafa e um sensor capacitivo vai ver as alteracoes capacitivo com um oscilador que muda frequencia quando capacidade muda. NXP (anterior Philips components) tem um sensor desse. Outra posibilidade para medir alteraçao capacitivo e com um procesador produzir um pulse e medir o tempo que o nivel de 0 para 1 ou de 1 para 0 vai levar num pino de entrada. Por isto vai ter que fazer um buffer num entrada do procesador com Fet para ter um alta impedance e a resistencia do entrada nao vai influir a mediçao.
          Aqui tems o link :http://www.nxp.com/products/sensors/capacitive_sensors/
          Aqui um link para baixar um pdf com os principios do sensores capacitivo :
          http://www.ti.com/lit/an/snoa927/snoa927.pdf

          Se voce quer usar numa linha de produçao pode fazer um aparelho um pouco mais complexo que vai medir alteraçoes de temperatura do lado da garafa no caso que o liquido nao tem a temperatura de ambient. Isto pode ser feito com detetor de calor infro vermelho. O liquido vai ter um outra temperatura com uma pequena diferencia. Geralmente usam por isto cameras infra vermelho que podem criar um imagem atraves de diferencia em temperatura.

          • Djonata Jobes Hvizdaleck - 20 de agosto de 2015

            Wiliam,

            Muito obrigado pelas orientações. Vou estudar estas alternativas que você indicou. Ambas parecem ser muito úteis, basta agora eu saber qual vai atender melhor à minha necessidade.

            Mais uma vez, muito obrigado pelas dicas.

    • Jonny - 21 de agosto de 2015

      pensou em alguma alternativa baseado no peso da garrafa?
      Tipo.
      1) uma base que qdo a garrafa é colocada, registra o peso.
      2) aciona-se o fluxo de agua
      3) para-se o fluxo qdo o peso da garrafa atinge o peso original + o peso do liquido .

      Apenas uma sugestão mais simples, não sei se ajuda.

    • Leandro - 2 de setembro de 2016

      Olá, para isso utilize um sensor de fluxo na mangueira. Ele irá fazer a contagem do volume de água que passou pela mangueira até a garrafa, aí é só programar para fazer parar quando chegar na quantidade que voce quer.
      Tem um tutorial de como utilizar nesse link:
      http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-o-sensor-de-fluxo-de-agua

  13. Sérgio Eli Vieira - 17 de agosto de 2015

    Olá pessoal.
    Gostaria de saber se é possível ligar 3 ou 4 sensores de infravermelho a uma placa de arduino uno e estes, por sua vez, acionaria independentemente 3 ou 4 relés? Como ficaria a programação? Obrigado.

  14. Dionizio Barbosa - 17 de agosto de 2015

    Detector de proximidade com sensor infravermelho.
    Ótima apresentação. Mais uma opção p detectar proximidade.
    Entretanto, os comentários de leds verde/vermelho ligados/desligados estão invertidos.
    Grande abraço.
    dionizio

  15. Wagner - 11 de agosto de 2015

    Ola esse sensor decta o calor das pessoas tambem ? funciona em raspberry pi?

    Att.

  16. yuri trevisoli - 31 de julho de 2015

    O sensor detecta apenas o calo ou detecta os objetos ?

  17. Carlos - 28 de julho de 2015

    Para tirar o microcontrolador da placa do arduino precisa de oscilador e outros componentes ?

    att

    • Joel Gomes - 29 de julho de 2015

      Olá amigo, sim, é necessário montar alguns componentes básicos pra fazer com que o ATMEGA funcione em uma aplicação externa ao “módulo arduino”. Basicamente: Um circuito de fonte 5v (LM7805), alguns capacitores, o cristal, resistores de pull-up…

  18. Carlos - 28 de julho de 2015

    Filipe Flop

    Tem como gravar o microcontrolador no arduino e depois tirá lo para fazer um circuito com o sensor sem o arduino ?

    att
    Carlos

Deixe uma resposta