fbpx
ArduinoNovidade

Como utilizar o sensor de obstáculo reflexivo infravermelho IR com Arduino

Um sensor infravermelho é um dispositivo eletrônico que emite e/ou detecta radiação infravermelha com o intuito de revelar alguns aspectos do ambiente a seu redor. Esses sensores podem ser utilizados para identificar obstáculos, detectar movimento, medir o calor de um objeto, ler de código de barras, em alarmes de passagem, entre outros.

Neste tutorial vamos conhecer um o sensor de obstáculo reflexivo infravermelho IR (Figura 1).

Imagem ilustrativa do sensor de obstáculo reflexivo infravermelho IR.
Figura 1: Sensor de obstáculo reflexivo infravermelho IR.

O sensor de obstáculo reflexivo infravermelho IR é capaz de detectar se existe algum objeto a sua frente, sendo utilizado em projetos de detecção de objetos, movimentação ou medição de distância.

O sensor de obstáculo reflexivo infravermelho IR possui dois LEDs infravermelho: um LED emissor infravermelho (de cor transparente), que emite um feixe de luz numa frequência não visível a olho nu, e um receptor fototransistor (de cor preta), que captura o feixe de luz emitido pelo infravermelho.

Estes dois LEDs operam em conjunto. Quando a luz emitida choca em algum obstáculo próximo ocorre a reflexão da luz e o fototransistor a detecta. A cor e o material do objeto podem interferir no funcionamento do sensor de obstáculo reflexivo infravermelho IR. Por exemplo, os objetos de cor branca são bons refletores, ao contrário dos objetos de cor preta, conforme a Figura 2.

Imagem ilustrativa do funcionamento do sensor de obstáculo reflexivo infravermelho IR em diferentes superfícies.
Figura 2: Funcionamento do sensor de obstáculo reflexivo infravermelho IR em diferentes superfícies.

Além disto, o sensor de obstáculo reflexivo infravermelho IR possui um potenciômetro de ajuste de sensibilidade, LEDs de indicação, saída digital e pinos de alimentação que podem ser observados na Figura 3.

Figura ilustrativa dos pinos e componentes do sensor de obstáculo reflexivo infravermelho IR.
Figura 3: Pinos e componentes do sensor de obstáculo reflexivo infravermelho IR.

Os pinos e componentes do sensor de obstáculo reflexivo infravermelho IR possuem as seguintes funções:

  • VCC: Pino de alimentação do sensor com tensão entre 3,3V ~ 5V;
  • GND: Pino de aterramento do sensor;
  • OUT: Pino de saída digital do sensor;
  • LED ON/OFF: LED que indica quando o sensor está ligado (ON) ou desligado (OFF);
  • LED DETECTOR: LED que indica quando ocorre a detecção de um objeto pelo sensor;
  • POTENCIÔMETRO: Potenciômetro de ajuste da sensibilidade do sensor.

Agora que já conhecemos o sensor de obstáculo reflexivo infravermelho IR. Vamos aprender como utilizá-lo em conjunto com o Arduino para realizar a detecção de um objeto.

MATERIAIS NECESSÁRIOS

ESQUEMÁTICO DE LIGAÇÃO

Inicialmente, certifique-se de que a sua placa Arduino esteja desligada. Em seguida monte o circuito da Figura 4 utilizando o sensor de obstáculo, o LED, o resistor e os jumpers.

Imagem ilustrativa do circuito para utilização do sensor de obstáculo reflexivo infravermelho IR com Arduino.
Figura 4: Circuito para utilização do sensor de obstáculo reflexivo infravermelho IR com Arduino.

Ao montar o circuito observe os seguintes pontos:

  • O GND do sensor deve ser conectado ao GND do Arduino;
  • O VCC do sensor deve ser conectado ao 5V do Arduino;
  • O OUT do sensor deve ser conectado ao pino digital 8 do Arduino.
  • O LED deve ser ligado à porta digital 9 do Arduino.

ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos programação do Sketch no Arduino IDE.

Nesse projeto, vamos exibir a leitura digital do sensor de obstáculo reflexivo infravermelho IR e acionar o LED quando o sensor detectar um obstáculo.

Vamos entender a lógica de programação desse projeto a partir dos seguintes passos:

  1. Definir as entradas utilizadas

Definimos as portas 9 e 8 do Arduino às constantes PinLed e PinSensor, respectivamente.

  • Declarar as variáveis

Declaramos a função LeituraSensor para armazenar os valores da leitura digital do sensor.

  • Inicializar a comunicação serial e configuração das portas
  • Na função setup(), a comunicação serial foi inicializada por meio da instrução: Serial.begin(9600);.

Em seguida, definimos a PinSensor como entrada (INPUT) e PinLed como saída (OUTPUT);

  • Fazer a leitura digital do sensor

Iniciamos a função loop() realizando a leitura digital do sensor e imprimindo-a no monitor serial.

  • Identificar a detecção de objeto

Após as leituras, vamos usar a estrutura condicional if-else para verificar se o sensor está detectando algum objeto ou não. Se o resultado da leitura digital for igual a 0 significa que o sensor detectou um objeto e o LED deve ser ligado. Caso contrário, o LED deve ser desligado.

Ao final, o Sketch deste projeto ficará da seguinte maneira:

/*
  - SENSOR DE OBSTÁCULO REFLEXIVO IR COM ARDUINO  -
  =================================================
  === BLOG DA ROBOTICA - www.blogdarobotica.com ===
  =================================================
  Autor: Jonas Souza
  E-mail: contato@blogdarobotica.com
  Facebook: facebook.com/blogdarobotica
  Instagram:@blogdarobotica
  YouTube: youtube.com/user/blogdarobotica
  =================================================
  === CASA DA ROBOTICA - www.casadarobotica.com ===
  =================================================
  Facebook: facebook.com/casadaroboticaoficial
  Instagram:@casadarobotica
  ==================================================
*/

#define PinLed 9 //Entrada digital do Arduino conectado ao LED
#define PinSensor 8 // Entrada digital do Arduino conectado ao pino OUT do Sensor 
int LeituraSensor; //Váriavel que irá armazenar os valores de leitura do sensor

void setup() {
  Serial.begin(9600); //Inicializa a comunicação serial
  pinMode(PinSensor, INPUT); // Declara o pino do sensor como entrada (INPUT)
  pinMode(PinLed, OUTPUT); // Declara o pino do led como saída (OUT)
}

void loop() {
  LeituraSensor = digitalRead(PinSensor); //Leitura de dados do sensor
  Serial.print("Leitura do sensor: ");
  Serial.println(LeituraSensor);
  if (LeituraSensor == LOW) { //Se a leitura do sensor for igual a LOW..
    digitalWrite(PinLed, HIGH); // Acende o LED
  }
  else { // Se o valor de leitura do sensor NÃO for igual a LOW
    digitalWrite(PinLed, LOW); // Apaga o LED
  }
}

Por fim, o Vídeo 1 exibe o funcionamento do sensor de obstáculo reflexivo infravermelho IR.

Vídeo1: Funcionamento do sensor de obstáculo reflexivo infravermelho IR.

Espero ter ajudado,

Obrigado a todos e em caso de dúvidas deixe seu comentário abaixo!

Att. Jonas Souza