Sensor óptico reflexivo TCRT5000 com Arduino

Outro sensor da série “bom e barato” é esse Sensor Óptico Reflexivo TCRT5000. É um daqueles sensores que eu considero essenciais na gaveta de qualquer “Arduinomaníaco”.

Por um custo muito baixo, você tem um sensor óptico reflexivo que você pode usar em sensores de movimento, interruptores, alarmes, contadores e robôs, apenas para citar alguns exemplos.

“- Ah, mas eu não sei o que é um sensor óptico reflexivo”

Tudo bem, eu também não sabia, pelo menos não com esse nome. Para entender como ele funciona, vamos dar uma olhada na estrutura do sensor, cujo datasheet você encontra neste link:

Esse sensor tem 2 componentes no mesmo suporte : um led infravermelho (cor azul) e um transistor IR (fototransistor – cor preta), separados por uma pequena “parede”. Quando algum objeto se aproxima do sensor, a luz infravermelha é refletida no objeto, “passa” para o outro lado e ativa o transistor :

Perceba que o tipo de objeto que você quer detectar vai influenciar diretamente na operação do sensor, já que, quanto mais reflexivo o material, maior a distância que o sensor vai alcançar. Como exemplo, fiz um teste (sem precisão), onde o sensor foi acionado com um pedaço de papel (branco) à 23 mm, uma régua de metal foi detectada à 30 mm e, com um pedaço de madeira escura, o sensor nem foi acionado.

Conexão do TCRT5000 no Arduino

Para testar esse sensor óptico com o Arduino Uno R3, vamos primeiramente montar este circuito. Utilizei um resistor de 330 ohms para o led infravermelho e de 10K para o transistor:

Carregue este programa, abra o serial monitor e aproxime objetos do sensor até que o objeto seja detectado. No serial monitor, o status muda de “Ausente” para “Detectado”:

// Programa : Teste sensor óptico reflexivo  
// Autor : Arduino e Cia  
   
int objeto = 0;  
   
void setup()  
{  
  pinMode(7, INPUT); //Pino ligado ao coletor do fototransistor  
  Serial.begin(9600);  
}  
   
void loop()  
{  
  objeto = digitalRead(7);  
  if (objeto == 0)  
  {  
    Serial.println("Objeto : Detectado");  
  }  
  else  
  {  
    Serial.println("Objeto : Ausente !");  
  }  
} 

Com o sensor devidamente testado e funcionando, vamos acrescentar um led ao circuito, e teremos um “interruptor óptico”, que altera o estado do led (ligado/desligado), cada vez que um objeto é detectado:

// Programa : Acionamento de led utilizando sensor óptico reflexivo  
// Autor : Arduino e Cia  
   
int sinalparaoled = 8; //Pino do led  
int pinosensor = 7;   //Ligado ao pino "coletor" do sensor óptico  
int leitura;      //Armazena informações sobre a leitura do sensor  
int estadoled = 0;   //Armazena o estado do led (ligado/desligado)  
   
void setup()  
{  
  pinMode(sinalparaoled, OUTPUT); //Define o pino do led como saida   
  pinMode(pinosensor, INPUT);   //Define o pino do sensor como entrada
}  
   
void loop()  
{  
  //Le as informações do pino do sensor
  leitura = digitalRead(pinosensor);   
  if (leitura != 1) //Verifica se o objeto foi detectado  
  {  
    while(digitalRead(pinosensor) != 1)  
    {  
     delay(100);  
    }  

    //Inverte o estado do led (ligado / desligado) 
    estadoled = !estadoled; 

    //Liga ou desliga o led conforme "estadoled" 
    digitalWrite(sinalparaoled, estadoled); 
  }   
}  

Abaixo você confere o funcionamento desse sensor com Arduino, conforme mostrado neste post:


Como você pôde ver, este é um sensor barato e que pode ser usado nas mais variadas aplicações.

Confira outros posts utilizando o sensor TCRT5000 aqui mesmo no Arduino e Cia!

5/5 - (4 votos)

Related posts

Como programar o STM32 via USB com IDE Arduino (e sem precisar do gravador)

by Arduino e Cia
3 anos ago

Como usar o display matriz 16×8 TM1640 com Arduino

by Arduino e Cia
4 anos ago

Por onde eu começo ?

by Arduino e Cia
12 anos ago
Sair da versão mobile