Hoje vamos revisitar um post que fizemos lá em 2014, usando um Sensor de Proximidade Infravermelho, como esse da imagem abaixo. No post original usamos o sensor infravermelho e um buzzer pra indicar caso alguma pessoa passasse em frente ao sensor, e no post de hoje vamos acrescentar um display LCD 16×2 que vai mostrar as informações do contador.
Além disso, vamos usar um Arduino Nano para a montagem, já que o nosso contador será colocado dentro de uma caixa feita em impressora 3D. Este contador pode ser usado tanto para pessoas como para objetos.
O Sensor de Proximidade Infravermelho
O sensor infravermelho que vamos usar é um item simples de conectar, alimentado com tensão de 5V e possui um parafuso na parte traseira para ajuste da distância de detecção. Um pino único envia o sinal para o microcontrolador caso o sensor seja acionado.
Com alcance de até 80cm, muito maior do que os sensores infravermelhos tradicionais, ele pode ser usado para contagem de objetos e pessoas, como por exemplo em uma porta para contagem de visitantes em um determinado ambiente.
Circuito sensor infravermelho e display LCD 16×2
No nosso circuito do sensor infravermelho com display LCD 16×2, a conexão do sensor na placa Arduino Nano vai utilizar apenas o pino digital 4, como mostrado no esquema abaixo.
Como saída do contador vamos usar um display LCD 16×2 com módulo I2C integrado, o que vai simplificar bastante o processo de conexão.
O display será conectado nas portas A4 (SDA) e A5 (SCL) do Nano, que são as portas da interface I2C. A alimentação tanto do sensor infravermelho como do display serão feitas pelo pino 5V do Nano.
Programação do contador com sensor de proximidade
O nosso programa usa como biblioteca a LiquidCrystal_I2C, que você pode instalar a partir da IDE do Arduino em Sketch -> Incluir Biblioteca – Gerenciar Bibliotecas.
No Gerenciador de Bibliotecas, procure por LiquidCrystal_I2c conforme a imagem abaixo e em seguida selecione Instalar:
Para o sensor de proximidade não vamos usar nenhuma biblioteca específica, mas apenas a porta digital 4 do Nano.
Dúvidas na instalação da biblioteca? Confira o post Como instalar uma biblioteca na IDE Arduino.
Com a biblioteca instalada, carregue o programa abaixo na IDE do Arduino. Ele vai ler o estado da porta digital 4, onde está instalado o nosso sensor infravermelho.
Caso o sensor seja acionado, vai incrementar a variável contador (linha 39) e enviar o valor do contador tanto para o Serial Monitor como para o display 16×2 I2C.
//Programa: Contador com sensor de proximidade IR e display LCD 16x2
//Autor: Arduino e Cia
#include <LiquidCrystal_I2C.h>
int contador = 0;
int pinosensor = 4;
int leitura; //Armazena o valor lido pelo sensor
//Define o display LCD como 16x2 e endereco 0x3B
LiquidCrystal_I2C lcd(0x3B, 16, 2);
void setup()
{
Serial.begin(9600);
//Define o pino do sensor como entrada
pinMode(pinosensor, INPUT);
//Inicializa o display
lcd.init();
lcd.backlight();
//Informacoes iniciais display
lcd.setCursor(0, 0);
lcd.print("Sensor Prox. IR");
lcd.setCursor(0, 1);
lcd.print("Contador: 0");
}
void loop()
{
//Le as informações do do sensor de proximidade IR
leitura = digitalRead(pinosensor);
if (leitura != 1) //Verifica se o objeto foi detectado
{
//Incrementa o valor do contador
contador++;
//Mostra o valor do contador no Serial Monitor
Serial.print("Contador : ");
Serial.println(contador);
//Atualiza o valor do contador no display
lcd.setCursor(10, 1);
lcd.print(" ");
lcd.setCursor(10, 1);
lcd.print(contador);
//Loop caso o objeto pare em frente ao sensor
while (digitalRead(pinosensor) != 1)
{
delay(100);
}
}
}
Se você quiser adicionar um botão de reset, pode instalar esse botão por exemplo na porta digital 6 do Arduino Nano e no programa incluir as informações abaixo dentro do setup():
pinMode(6, INPUT);
e dentro do loop, colocar a condição para checar se o botão foi pressionado:
int botao_reset = digitalRead(6);
if (botao_reset == 1)
{
contador = 0;
//Atualiza o valor do contador no display
lcd.setCursor(10, 1);
lcd.print(" ");
lcd.setCursor(10, 1);
lcd.print(contador);
}
Vamos ver agora alguns detalhes sobre a montagem da caixa que construímos para colocar tudo isso dentro:
Montagem da caixa para o circuito
Para deixar o projeto mais “apresentável”, criamos uma caixa de 100 x 53 x 48 usando uma impressora 3D.
O filamento usado foi o PLA e o tempo de impressão foi de 1h30. Optamos por não usar suportes na hora da impressão, e por isso tivemos que ajustar um pouco a abertura do display, mas nada que pudesse comprometer o resultado final.
Com a caixa pronta, colocamos primeiro o sensor de proximidade IR, fixando o componente com as porcas fornecidas. Em seguida encaixamos o display LCD na abertura e logo abaixo do LCD colocamos a mini protoboard com o Arduino Nano, fixando a protoboard na caixa usando a sua fita dupla face.
Por fim, temos uma tampa que deixa exposto o conector micro USB do Nano, onde vamos colocar o cabo que vai energizar o circuito.
Se você quiser imprimir essa caixa e/ou alterar o projeto, os arquivos estão disponíveis para download aqui no site.
Gostou? Confira outros posts usando Arduino aqui mesmo no Arduino e Cia!
