O Arduino caiu no gosto da galera maker. Isso porque…
Como usar com Arduino – Sensor Óptico Reflexivo TCRT5000
– Descrição:
O Sensor Óptico Reflexivo TCRT5000 é um componente eletrônico que funciona através de um sistema de reflexão infravermelho, onde um LED emissor IR e um fototransistor IR ficam lado a lado, separados apenas por uma parede de plástico. Quando um objeto se aproxima do sensor, a luz infravermelha emitida pelo LED emissor é refletida para o fototransistor que é ativado. Vale ressaltar que o material do objeto influencia diretamente na detecção do sensor, pois quanto mais reflexivo for o material, maior o campo de atuação do sensor.
O Sensor Óptico Reflexivo TCRT5000 é aplicado com frequência em projetos que envolva detectar obstáculos. Em projetos de robótica, este sensor é aplicado em robôs (seguidores de linha ou sumô) e carrinhos.
– Especificações e características:
– Tensão de operação: 5VDC
– Corrente máxima: 60 mA
– Comprimento de onda: 950nm
– Distância de detecção(máxima): 25mm
– Aplicações:
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário fazer detecção de obstáculos ou projetos de robótica em geral.
– Proposta da prática:
Utilizar o Sensor Óptico Reflexivo TCRT5000 em conjunto com o Arduino e quando a luz infravermelha for refletida no objeto, o LED irá acender.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Sensor Óptico Reflexivo TCRT5000
01 – LED Difuso 5mm Vermelho
01 – Resistor de 150Ω
01 – Resistor de 330Ω
01 – Resistor de 10KΩ
01 – Protoboard
09 – Cabos Jumper macho-macho
– Esquema de ligação da prática
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
int pinoLed = 8; //PINO DIGITAL UTILIZADO PELO LED int pinoSensor = 7; //PINO DIGITAL UTILIZADO PELO SENSOR void setup(){ pinMode(pinoSensor, INPUT); //DEFINE O PINO COMO ENTRADA pinMode(pinoLed, OUTPUT); //DEFINE O PINO COMO SAÍDA digitalWrite(pinoLed, LOW); //LED INICIA DESLIGADO } void loop(){ if (digitalRead(pinoSensor) == LOW){ //SE A LEITURA DO PINO FOR IGUAL A LOW, FAZ digitalWrite(pinoLed, HIGH); //ACENDE O LED }else{//SENÃO, FAZ digitalWrite(pinoLed, LOW); //APAGA O LED } } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Módulo Interruptor (Chave) de Mercúrio KY-017
Próxima postagem: Como usar com Arduino – Módulo Real Time Clock RTC DS1307
Boa Tarde a todos,
Tentei adaptar o código para escrever frases diferentes no monitor serial dependendo do estado do pino do sensor (HIGH ou LOW), porém, essa alteração bugou o sistema, se eu remover a alteração volta a funcionar novamente mas se eu a coloco de novo buga novamente.
Alguém poderia checar o código e me dizer o que há de errado??
Segue o código:
int pinoLed = 8; //PINO DIGITAL UTILIZADO PELO LED
int pinoSensor = 7; //PINO DIGITAL UTILIZADO PELO SENSOR
void setup(){
pinMode(pinoSensor, INPUT); //DEFINE O PINO COMO ENTRADA
pinMode(pinoLed, OUTPUT); //DEFINE O PINO COMO SAÍDA
digitalWrite(pinoLed, LOW); //LED INICIA DESLIGADO
}
void loop(){
if (digitalRead(pinoSensor) == LOW){ //SE A LEITURA DO PINO FOR IGUAL A LOW, FAZ
digitalWrite(pinoLed, HIGH); //ACENDE O LED
Serial.begin(9600);
Serial.print(“Detected”);
}else{//SENÃO, FAZ
digitalWrite(pinoLed, LOW); //APAGA O LED
Serial.begin(9600);
Serial.print(“Wait a Minute”);
}
}
Olá Kauã.
Agradeço pelo comentário.
Você está colocando o Serial.begin(9600); dentro do void loop e este é o erro.
Coloque o Serial.begin(9600); somente no void setup e apague os que colocou no void loop.
Boas, porquê a porta 7? Estou a fazer um projeto em que utilizo um sensor destes para diferenciar a cor branca da cor preta. Não posso usar um arduíno no projeto, contudo estou a utilizar um atmega 168 e um programador da pololu. Poderia explicar o porquê de usar uma porta com interrupção em vez de uma porta analógica/digital (ADC)?
Boa noite, parabéns Euler Oliveira, fiz um projeto parecido no meu canal no YouTube, se quiserem conferir e até avaliar https://youtu.be/9ewbj3dDB_Y
Boa noite, estou desenvolvendo um projeto com arduíno e este sensor, mas está havendo interferência no sinal da luz ambiente e solar, e não adianta colocar alguma proteção nele, seria possível eliminar essas interferências?
Olá Thiago.
Agradeço pelo comentário!
Chegou a testar outra unidade do sensor para verificar se sofre menos interferência que este que está usando?
Sobre a montagem do circuito, gostaria de saber em que momento a entrada da porta 7 troca de estado? Já que o resistor está em Vcc e sempre alimentará a porta deixando ela no estado HIGH
Olá.
Agradeço pelo comentário!
O pino 7 muda de estado quando há detecção de sinal IR por parte do fototransistor. Neste momento o mesmo passa a conduzir e muda o estado do pino 7 para LOW.
O resistor em questão é o de 10K e que faz o papel de PULL UP, ou seja, garante que o pino 7 se mantenha em nível lógico HIGH enquanto o fototransistor não estiver conduzindo. No momento em que o fototransistor recebe luz infravermelha do emissor, ele irá conduzir e o pino assumirá nível lógico LOW.
Muchas gracias por compartir estas prácticas con arduino, nos ayudas mucho