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!