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!