I04 - Como usar o módulo sensor de refletância IR para identificar uma faixa - Arduino

Intermediário - Projeto 04

Módulo sensor de obstáculo reflexivo - identificação de faixa

Objetivo

Criar um circuito para fazer com que um módulo sensor de obstáculo reflexivo infravermelho identifique uma faixa escura em contraste com uma área clara. Desta forma, ao identificar a faixa escura, será exibido em um display LCD o texto: FAIXA IDENTIFICADA". Este exemplo serve como base para a criação de sistemas de sensores utilizados em robôs seguidores de linha.

Definições

Módulo sensor de obstáculo reflexivo Infravermelho: Componente eletrônico capaz de identificar e seguir o caminho a partir de uma linha que contraste com o piso, ou seja, linha preta (piso branco) ou linha branca (piso preto). Funciona de forma semelhante ao módulo sensor reflexivo TCRT5000 (I02 - Usando o módulo seguidor de linha TCRT5000 como interruptor - Arduino).

O módulo sensor de obstáculo é um componente composto por um emissor e um receptor Infravermelho, mais o CI comparador, que facilita a sua conexão com o Arduino, Pic ou Raspberry.

Led Emissor Infravermelho (IR): Led que emite um sinal IR (infrared ou infravermelho) que pode ser reconhecido por um componente receptor infravermelho. Projetado para emitir sinais infravermelhos em dispositivos remotos podem ser utilizados em projetos com microcontroladores. A faixa de luz emitida pelo led emissor não é perceptível ao olho humano.

Led Receptor (IR) - Fototransistor: Componente eletrônico que atua como um fotodiodo, permitindo a passagem de corrente elétrica somente com a presença de luz. O fototransistor é parecido com um transistor tradicional, possuindo 2 terminais sendo um o coletor e o outro o emissor, entretanto, a sua base base é ativada pela incidência de radiação infravermelha e não por um sinal digital.

Funcionamento do sensor óptico reflexivo (detecção de objetos): O sensor óptico reflexivo funciona através de um sistema de emissão e reflexão de luz infravermelha. Ao aproximar um objeto do sensor, a luz infravermelha emitida pelo led IR é refletida pelo objeto e detectado imediatamente pelo fototransistor que é ativado, enviando um sinal em nível lógico baixo (LOW) para o Arduino.

Atenção: É importante salientar que o material do objeto que se deseja detectar e a iluminação externa poderão influenciar diretamente no funcionamento do sensor. Quanto mais reflexivo o material, maior a distância que será detectado.

Distancia de operação do sensor: Distância entre o sensor e o objeto a ser identificado. Pelo datasheet do fabricante, a distância de operação varia de 0 a 30cm, dependendo do material do objeto e da luz externa. O módulo possui um botão (trimpot) para ajuste da distância de operação.

Funcionamento do sensor óptico reflexivo (seguidor de linha): Da mesma forma que utilizado para detectar objetos, o módulo sensor óptico utilizado em sistemas para robôs seguidores de linha  funciona através de de emissão e reflexão de luz infravermelha. Através da refletância, o módulo sensor é capaz de identificar e seguir uma linha (our faixa) de contraste com o piso: piso claro - linha preta ou linha branca (piso escuro).

Refletância: Relação entre o fluxo de radiação infravermelha que incide na superfície e o fluxo de radiação que é refletido. Uma faixa mais escura é menos reflexiva que uma faixa mais clara e portanto possui menor refletância.

Relação entre o fluxo de radiação que incide numa superfície e o fluxo de radiação que é .refletido.

"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020]. R
Relação entre o fluxo de radiação que incide numa superfície e o fluxo de radiação que é .refletido.

"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].
 Relação entre o fluxo de radiação que incide numa superfície e o fluxo de radiação que é .refletido.

"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].
 Relação entre o fluxo de radiação que incide numa superfície e o fluxo de radiação que é .refletido.

"refletância", in Dicionário Priberam da Língua Portuguesa [em linha], 2008-2020, https://dicionario.priberam.org/reflet%C3%A2ncia [consultado em 04-08-2020].

Aplicação

Para fins didáticos e projetos de alarmes, interruptores, detecção de presença, detecção de obstáculos, contagem de elementos em uma esteira transportadora, controle remoto e sistemas robóticos.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1    
Módulo sensor de obstáculo reflexivo infravermelho

Módulo Sensor de Reflexivo Infravermelho

1

– Tensão de operação: 3,3 - 5,0 VDC

- Circuito integrado controlador: LM393

– Distância máxima detecção: 30cm

 

 Display LCD Display LCD 16X2 com pinos soldados 1 DISPLAY LCD 16X2

LCD que utilize o controlador HD44780 (veja na descrição ou datasheet do componente)

O display poderá ser de qualquer cor (fundo verde, azul ou vermelho)

Módulo I2C para display LCD 

Módulo I2C com CI PCF8574

(opcional)

 
 1 Módulo I2C display LCD Arduino  

O módulo I2C poderá vir separado ou já soldado no display LCD

(datasheet)

Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador.

Led 5mm Led 5mm 1  

1 LED alto brilho ou difuso (qualquer cor)

Você poderá utilizar também LEDs de 3 mm na cor que desejar.

Resistor Resistor 150Ω 1

 

1 Resistor de 150Ω ou superior - usar no led comum

Arduino Arduino UNO R3 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da energia elétrica enquanto você monta o circuito.


Atenção

1. Neste projeto vamos utilizar um display LCD 16x2 com controlador HD44780, que se adapta aos mais diversos projetos com vários modelos de placas e microcontroladores. Este display possui 16 colunas por 2 linhas com backlight (luz de fundo) verde, azul ou vermelha e tem 16 pinos para a conexão.

1.1. Este projeto foi desenvolvido para um display LCD com controlador HD44780 em conjunto com o módulo serial I2C (soldado).

1.2.  Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador. Veja como montar o display no projeto Projeto 38 - Controlando um display LCD (instalação e comandos básicos).

2. Para a montagem do display com adaptador, entenda a estrutura do módulo I2C para display LCD 16x2 / 20X4:

Módulo I2C - Detalhes

2.1. Na lateral do adaptador encontramos 4 pinos, sendo: 2 pinos para alimentação (Vcc e GND) e 2 pinos para conexão com a interface I2C (SDA e SCL) que deverão estar conectados nos pinos analógicos A4 (SDA) e A5 (SCL) do Arduino Uno ou nos pinos A20 (SDA) e A21 (SCL) do Arduino Mega 2560. Veja a tabela abaixo com onde temos as principais placas Arduino e suas conexões com o I2C.

2.2. Para controlar o contraste do display, utilize o potenciômetro de ajuste de contraste. O jumper lateral, quando utilizado, permite que a luz do fundo (backlight) seja controlada pelo programa ou permaneça apagada.

 

2.3. A seleção de endereço do adaptador I2C para display LCD, na maioria dos módulos fornecidos no mercado já vêm configurados com o com o endereço 0x27. Se você não sabe qual endereço que o seu módulo I2C e/ou módulo RTC DS3231 está configurado, baixe o seguinte "sketch":

DOWNLOAD - I2C_scanner.ino

2.3.1 Após instalar e rodar o sketch acima, abra o monitor serial que mostrará qual é o endereço que o seu módulo I2C e o módulo RTC DS3231 está configurado:

 

2.3.1.1 Nos casos em que módulo I2C estiver configurado com uma faixa de endereços diferente do endereço 0X27 altere a alinha de programação -> LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); com o endereço correto.

2.5. Para saber mais sobre a montagem e utilização de display LCD com módulo I2C leia: Projeto 48 - Como controlar um display LCD com o módulo I2C.

3. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.

3.1. Portanto, faça a conexão do Arduino no terminal positivo do led (anodo) e o GND no terminal negativo (catodo).

3.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.

4. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Leds ligados em série e em paralelo.

4.1. Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω

5. Para a montagem do módulo seguidor de linha no circuito faça a conexão como mostra a figura abaixo:

5.1. Conexão com o pino digital do Arduino: O fototransistor quando ativado, ou seja, quando detecta um objeto qualquer, envia um sinal digital "0" (LOW). Quando não ativado, envia um sinal digital "1" (HIGH).

5.1.1. A distância de operação do sensor irá depender da cor do material do objeto a ser detectado e da calibragem do módulo, que veremos mais adiante neste tutorial.

5.1.2. Quando utilizamos faixas ou objetos pouco reflexivos (cor preta), o fotoresistor não irá receber pouca ou nenhuma luz infravermelha e enviará um sinal em alto nível (HIGH). Quando ele detecta um piso mais claro, por exemplo, emitirá um sinal em baixo nível (LOW), ou vice e versa. Este é o princípio utilizado em carrinhos seguidores de linha.

5.2. Segue abaixo figura com as principais características do sensor de obstáculo reflexivo.

4. A montagem do nosso projeto foi realizada em um protoboard 400 pontos. Verifique se o seu protoboard possui linhas de alimentação contínuas ou separadas.

Testando a montagem do circuito

1. Para verificarmos se a montagem do circuito está correta, rode o sketch abaixo e verifique:

1.1. Ao aproximarmos um objeto ou o dedo do sensor, sem precisar tocá-lo, o led irá acender. Distanciando o dedo ou um objeto do sensor, o led se apagará imediatamente.

int pinLed = 12;   // led conectado no pino digital 12
int pinSensor = 2; // módulo conectado no pino digital 2
   
void setup(){ 
  pinMode(pinSensor, INPUT);  // define como entrada
  pinMode(pinLed, OUTPUT);    // define como saída   
  digitalWrite(pinLed, LOW);  // led incia apagado
}  
   
void loop(){
  if (digitalRead(pinSensor) == LOW){    // se for LOW 
        digitalWrite(pinLed, HIGH);      // acende o led
  } else {                               // caso contrário
        digitalWrite(pinLed, LOW);       // apaga o led
  }    
}

Calibragem da distância de operação do módulo

1. O módulo sensor de obstáculo é fornecido com o potenciômetro (trimpot) para a calibragem.

1.1. Girando o botão no sentido horário ou sentido anti-horário, podemos aumentar ou diminuir a sensibilidade do sensor, aumentando ou diminuindo a distância de operação.

1.2. Utilizando o teste de montagem anterior, defina a melhor distância de operação que você deseja.

Atenção: A calibragem deverá ser feita para cada objeto específico, pois a distância de trabalho do sensor varia com o tipo de material (mais reflexivo ou menos reflexivo).

Código do Projeto (Sketch)

1) Faça o dowload e abra o arquivo projetoI04.ino no IDE do Arduino:  DOWNLOAD - projetoI04.ino

Obs. 1: Nos casos em que módulo I2C estiver configurado com um endereço diferente do endereço 0X27, altere a alinha de programação -> LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); com o endereço correto. - Veja o tutorial Projeto 48 - Como controlar um display LCD com o módulo I2C

Obs. 2: Se estiver utilizando um display de LCD 20 X 4, altere o comando da linha 36 para lcd.begin (20,4);

Obs.3: Se não possuir o módulo I2C utilize apenas o display LCD conforme Projeto 38 - Controlando um display LCD (instalação e comandos básicos)

Se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
*
*    Projeto I04 - Módulo sensor de obstáculo reflexivo - identificando faixa
*            http://squids.com.br/arduino
*
*******************************************************************************/
#include //Carrega a biblioteca lcd com I2C

//Define os pinos que serão utilizados para ligação ao display
LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE);

const byte sensor = 2; // Pino em que o sensor reflexivo está conectado
const byte led = 12; // Será utilizado o LED já soldado no Arduino

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2); // Define o display com 16 colunas e 2 linhas
  pinMode(sensor, INPUT); // Define o pino do sensor como entrada
  pinMode(led, OUTPUT); // Define o LED como saída
  digitalWrite(led, HIGH);
  lcd.clear();
}

void loop() {
  if(digitalRead(sensor)){ // fototransistor não ativado
    digitalWrite(led, HIGH);
    Serial.println("FAIXA IDENTIFICADA");
    // exibe texto no lcd
    lcd.setCursor(0,0); // Define o cursor na posição de início
    lcd.print("FAIXA DETECTADA");
  }else{ // fototransistor ativado
    digitalWrite(led, LOW);
    Serial.println(" ");
    lcd.clear();
  }
}

Vídeo

Como o projeto deve funcionar

1. Ao aproximar o sensor de um objeto ou do piso que seja reflexivo (cores mais claras) o led irá ficar apagado e nenhuma mensagem será exibida no display.

2. Ao se aproximar de uma faixa ou de um objeto menos relfexivo (cores mais escuras) o led se acenderá e aparecerá no display a frase "FAIXA DETECTADA".

3. Para que o projeto funcione corretamente, é necessário que haja uma calibração do módulo do sensor de obstáculo, consinderando a distância e os objetos que serão identificados.

4. Se desejar, abra o Monitor Serial do IDE do Arduino para visualizar quando a faixa é identificada:

border: 1px solid #000;

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores