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!