A maioria dos sensores IR que eu testei tem um alcance limitado, de apenas alguns centímetros. São ideais para pequenos projetos, maquetes e simulações. Um sensor um pouco mais, digamos assim, profissional, é este sensor de proximidade infravermelho.
Ele funciona da mesma maneira que os outros sensores IR mas tem algumas características que facilitam a montagem do seu projeto:
Sensor de proximidade IR
Esse sensor funciona basicamente como todos os outros sensores IR: existe um led emissor IR e um receptor IR, tudo no mesmo componente.
As diferenças estão na montagem do sensor e na distância de detecção, que pode variar de 3 à 80 cm, ajustáveis por um parafuso na parte de trás do sensor:
Girando o parafuso no sentido horário ou anti-horário, você aumenta ou diminui, respectivamente, a sensibilidade do sensor. O componente tem 45mm de comprimento e um diâmetro de 17mm, e vem com duas porcas que facilitam a montagem nos mais variados tipos de suporte.
A cabo de ligação do sensor tem 3 pinos, sendo o pino vermelho o Vcc (alimentação de 5 volts), amarelo o pino de sinal, e o preto, o GND. A leitura pode ser feita por meio de uma porta digital ou analógica do Arduino, dependendo do seu projeto.
Atenção: o seu sensor pode vir com os fios nas cores diferentes dessas citadas acima, ok? Outra configuração possível são os fios Rosa, Azul e Preto, sendo:
- Rosa: VCC
- Azul: GND
- Preto: Sinal
O funcionamento, como eu comentei, é igual ao de outros sensores IR: o led emite luz infravermelha, que dependendo da superfície é refletida e volta para ser detectada pelo fototransistor, enviando um sinal de 0,3 à 1,5v em nível baixo, e de 2,3 à 5v em nível alto, ao pino de sinal.
Conexão do sensor IR no Arduino
Eu utilizei esse sensor para montar um contador que registra a passagem de caixas em uma esteira. A cada 10 caixas, é emitido um sinal sonoro para que o operador do equipamento tome algum tipo de ação:
Os dados são enviados para o serial monitor, apenas para monitoramento do contador, mas um display LCD ou 7 segmentos pode ser facilmente adaptado ao projeto.
O comando while(digitalRead(pinosensor) != 1) evita que o contador seja incrementado caso um objeto pare em frente ao sensor:
// Programa : Contador com sensor de proximidade IR // Autor : Arduino e Cia int contador = 0; int pinosensor = 5; int pinobuzzer = 7; int leitura; //Armazena o valor lido pelo sensor void setup() { //Define o pino do sensor como entrada, e o do buzzer como saida pinMode(pinosensor, INPUT); pinMode(pinobuzzer, OUTPUT); Serial.begin(9600); } void loop() { //Le as informações do pino do sensor leitura = digitalRead(pinosensor); if (leitura != 1) //Verifica se o objeto foi detectado { contador = contador++; //Incrementa o valor do contador Serial.print("Contador : "); Serial.println(contador); //Se o contador atingir 10, aciona o buzzer if (contador == 10) { tone(pinobuzzer,262,500); contador = 0; } //Loop caso o objeto pare na frente do sensor while(digitalRead(pinosensor) != 1) { //Comando } } }
Abaixo, um vídeo demonstrativo do sensor com um contador até 5:
Gostou do sensor de proximidade IR? Confira outros posts com sensor infravermelho aqui mesmo no Arduino e Cia!