fbpx

Como usar o sensor infravermelho TCRT5000 com Arduino

O 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 detectar movimentos, medir o calor de um objeto, em leitores de código de barras, alarmes de passagem, entre outros.

Para aplicações de robótica, o sensor infravermelho é muito utilizado na construção de robô seguidor de linha. Este robô possui como objetivo percorrer um determinado trajeto sendo direcionado por uma linha preta, branca ou cores intermediárias. Para esta aplicação, o TCRT5000 (Figura 1) é amplamente utilizado.

A imagem mostra de maneira real o SENSOR TCRT5000. Blog da Robótica.
Figura 1 – Sensor TCRT5000.

O sensor infravermelho TCRT5000 inclui um emissor infravermelho e um fototransistor em uma embalagem que bloqueia a luz visível.

A proposta deste projeto é utilizar o sensor infravermelho em conjunto com a placa UNO para detectar linha. O infravermelho utilizado será o sensor seguidor de linha TCRT 5000, componente comumente aplicado em projetos de robôs seguidor de linha.


MATERIAIS NECESSÁRIOS


ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Conecte os componentes na protoboard conforme a Figura 2.

A imagem mostra de maneira ilustrativa o funcionamento de um circuito para dectar linha com sensor infravermelho. Blog da Robótica.
Figura 2 – Circuito para projeto detectar linha com sensor infravermelho.

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

  • O TCRT 5000 é formado por dois componentes. O primeiro é um LED infravermelho (componente de cor azul), que emite um feixe de luz numa frequência não visível a olho nu; O segundo é um fototransistor (componente de cor preta), que captura o feixe de luz emitido pelo infravermelho;
  • Estes dois componentes funcionam em conjunto. O LED emite a luz infravermelha que é refletida por um objeto, posicionado em frente ao sensor, que é detectada pelo fototransistor;
  • A cor e o material do objeto podem interferir no funcionamento do TCRT 5000. Ex. Objetos de cor preta não são bons refletores;
  • O sensor TCRT 5000 possui quatro pinos, sendo dois do LED infravermelho e dois do fototransistor, como ilustra a imagem a seguir:
A imagem ilustra os pinos de um sensor TCRT 5000
Figura 3 – Pinos do Sensor TCRT 5000
  • Ânodo do LED infravermelho (D+);
  • Cátodo do LED infravermelho (D-);
  • Coletor do fototransistor (T+);
  • Emissor do fototransistor (T-);
  • O cátodo do LED difuso, o cátodo do LED infravermelho (D-) e o emissor do fototransistor (T-) devem ser ligados ao terra (GND)da placa UNO;
  • O ânodo do LED difuso deve ser ligado a porta digital 9, o ânodo do LED infravermelho (D+) deve ser ligado ao 5V e o coletor do fototransistor deve ser ligado a porta digital 8. Conectamos também uma resistência de 10 kΩ entre a porta 8 e o 5V da placa UNO.


ELABORANDO O CÓDIGO

O proposito deste projeto é realizar a detecção de uma linha preta utilizando o sensor infravermelho TCRT 5000, de forma que ao detectar a linha preta o estado do sensor será nível baixo (LOW).

Vamos entender a lógica de programação deste projeto com os seguintes passos:

1.Definir as variáveis:
Definimos o pino digital 8, em que o pino T+ do sensor TCRT 5000 está conectado, a variável pinoIR, e o pino 9, em que o LED difuso está conectado, a variável ledpin. Definimos a variável valorLido, do tipo inteiro, para armazenar o estado (HIGH/LOW) do infravermelho;

2.Configurar as portas de entrada e saída e inicializar a comunicação serial:
O pinoIR (pino 8) será definido como entrada (INPUT) e ledpin será definido como saída (OUTPUT);

A comunicação serial foi inicializada por meio da instrução: Serial.begin(9600);

3. Realizar a leitura:
No loop realizamos a leitura digital da variável pinoIR (pino 8) e atribuímos este valor a variável valorLido;

4. Comparar o valor lido:
Utilizaremos a lógica do if…else para comparar se a variável valorLido encontra-se em nível alto ou baixo (linha detectada ou linha não detectada), da seguinte maneira:

  • Se a variável valorLido estiver em nível lógico baixo (LOW) será exibida no monitor serial a mensagem “Linha detectada” e o LED difuso será acionado;
  • Senão, será exibida no monitor serial a mensagem “Linha NÃO detectada” e o LED difuso será desligado.

O programa do projeto proposto encontra-se detalhado a seguir:

/*
  = DETECTAR LINHA SENSOR INFRAVERMELHO TCRT5000 =
  ================================================
  == BLOG DA ROBOTICA - www.blogdarobotica.com ===
  ================================================
  Autor: Carol Correia Viana
  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
  ================================================
*/

int IRpin = 8;//Atribui o pino 8 a variável IRpin
int ledpin = 9;//Atribui o pino 9 a variável ledpin
int valorLido = 0;//Variável responsável por armazenar o estado do infravermelho (LOW/HIGH)

void setup(){
  Serial.begin(9600);//Inicializa a comunicação serial, com velocidade de comunicação de 9600
  pinMode(IRpin, INPUT);//IRpin definido como entrada
  pinMode(ledpin, OUTPUT);//ledpin definido como saída
}

void loop() {
  valorLido = digitalRead(IRpin);//Armazena o valor digital de IRpin em valorLido
  if (valorLido == LOW) {//Se valor lido for igual a LOW
    Serial.println("Linha Detectada");//Escreve na serial "Linha Detectada"
    digitalWrite(ledpin,HIGH);//Liga o LED
  }
  else {//Senão
    Serial.println("Linha NAO Detectada");//Escreve na serial "Linha não detectada"
    digitalWrite(ledpin,LOW);//Desliga o LED
  }
  delay(100);//Intervalo de 100 milissegundos
}

Espero ter ajudado,

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

Att. Carol Correia Viana

Dúvidas? Deixe seu comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.