fbpx

Como utilizar o sensor de linha / segue faixa infravermelho TCRT5000 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 detectar movimentos, medir o calor de um objeto, ler de código de barras, em alarmes de passagem, entre outros.

No campo da robótica, o sensor infravermelho é amplamente utilizado na construção de robôs seguidores de linha. Os seguidores de linha são robôs pré-programados para detectar e seguir uma linha, geralmente branca ou preta. A identificação da cor da linha pode ser feita usando sensores infravermelho, como o sensor de linha / segue faixa TCRT5000 (Figura 1).

Imagem ilustrativa do sensor de linha - segue faixa TCRT5000
Figura 1: Sensor de linha – segue faixa TCRT5000.

O sensor de linha / segue faixa TCRT5000 possui dois LEDs infravermelho: um LED emissor infravermelho (de cor azul), 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 TCRT 5000. 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 funcionamento do sensor de linha segue faixa TCRT5000 em diferentes superfícies
Figura 2: Funcionamento do sensor de linha segue faixa TCRT5000 em diferentes superfícies.

Além disto, o sensor de linha / segue faixa TCRT5000 possui um potenciômetro de ajuste de sensibilidade, LEDs de indicação e pinos de alimentação, saída digital e saída analógica que podem ser observados na Figura 3.

Imagem ilustrada das partes do sensor de linha segue faixa TCRT5000
Figura 3: Partes do sensor de linha segue faixa TCRT5000

Funções dos pinos:

  • VCC: Alimentação do sensor entre 3,3V ~ 5V;
  • GND: Pino de aterramento do sensor;
  • A0: Saída analógica do sensor;
  • D0: Saída digital do sensor.

Nesse tutorial, vamos aprender como utilizar o sensor de linha / segue faixa TCRT5000 com o Arduino.

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.

Imagem ilustrativa do circuito para utilização do sensor de linha segue faixa TCRT5000 com o Arduino.
Figura 4: Circuito para utilização do sensor de linha segue faixa TCRT5000 com o Arduino.

Ao montar o circuito observe os seguintes pontos:

  • O pino GND do sensor deve ser conectado ao GND do Arduino;
  • O pino VCC do sensor deve ser conectado ao pino de 5V do Arduino;
  • O pino de saída analógica do sensor deve ser conectado a entrada analógica A0 do Arduino;
  • O pino de saída digital do sensor deve ser ligado ao pino digital 8 do Arduino.

ELABORANDO O CÓDIGO

Após a montagem do circuito, vamos programação do Sketch no Arduino IDE. Nesse projeto, vamos exibir as leituras analógicas e digitais do sensor de linha / segue faixa TCRT5000 no monitor serial.

Além disso, vamos realizar a detecção de uma linha preta. Quando o sensor identificar a linha seu estado será igual a 1 (nível lógico alto) e o LED indicativo de saída será desligado.

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

1. Declarar as variáveis

No início do código, definimos as variáveis pinDigital e pinAnalogico para representar a porta digital 8 e a porta analógica A0 do Arduino.

Foram declaradas as variáveis valorDigital e valorAnalogico para armazenar os valores de leitura digital e analógica, respectivamente.

2. Inicializar a comunicação serial e configurar as portas

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

Em seguida, definimos pinDigital e pinAnalogico como pinos de entrada (INPUT).

3. Fazer a leitura digital e analógica do sensor

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

4. Realizar a detecção da linha

Após as leituras, vamos usar a estrutura condicional if-else para verificar se o sensor está detectando a linha preta ou não. Se o resultado da leitura digital for igual a 1 significa que o sensor detectou a linha.

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

/*
  - SENSOR DE LINHA/SEGUE FAIXA TCRT5000 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
  ====================================================
*/

int pinDigital = 8; //Define que o pino digital do sensor deve está conectado a entrada digital 8 do Arduino
int pinAnalogico = A0; //Define que o pino analogico do sensor deve está conectado a entrada analogica A0 do Arduino
int valorDigital; //Variável responsável por armazenar o valor de leitura digital do sensor
int valorAnalogico;  //Variável responsável porarmazenar o valor de leitura analogico do sensor

void setup() {
  Serial.begin(9600); //Inicializa a comunicação serial
  pinMode(pinDigital, INPUT); //Define que o pino digital do sensor como entrada
  pinMode(pinAnalogico, INPUT); //Define que o pino analogico do sensor como entrada

}

void loop() {
  valorDigital = digitalRead(pinDigital); //Realiza a leitura digital e armazena o valor na variavel valorDigital
  valorAnalogico = analogRead(pinAnalogico); //Realiza a leitura analógica e armazena o valor na variavel valorAnalogico

  Serial.print("Leitura Digital: "); //Mostra o texto no monitor serial
  Serial.println(valorDigital); //Mostra o valor digital no monitor serial

  Serial.print("Leitura Analogica: ");  //Mostra o texto no monitor serial
  Serial.println(valorAnalogico); //Exibe o valor analógico lido no monitor serial
  Serial.println(); //Salta uma linha

  if (valorDigital == 0) { //Se o valor digital do sensor for igual a 0 significa que a linha não foi detectada
    Serial.println("Linha não detectada");
  }
  else if (valorDigital == 1)  { //Se o valor digital do sensor for igual a 1 significa que a linha foi detectada
    Serial.println("Linha detectada");
  }
  delay(500);
  Serial.println("----------------------------------------------");
}

Os valores das leituras digitais e analógicos podem ser observados no monitor serial da Arduino IDE, bem como o retorno da detecção de linha, conforme a Figura 5. Observe que a leitura a analógica assumem valores altos quando a linha é detectada.

Imagem ilustrativa do Monitor serial exibindo leituras e detecções do sensor de linha TCRT5000
Figura 5: Monitor serial exibindo leituras e detecções do sensor de linha TCRT5000.

Espero ter ajudado,

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

Att. Jonas Souza

Dúvidas? Deixe seu comentário

Jonas Souza

Graduando em Engenharia Elétrica. Atua no setor desenvolvimento de tutoriais para o Blog da Robótica.

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