Hoje apresento o circuito de um medidor de distância com sensor ultrassônico HC-SR04, o display LCD 16×2 Winstar WH1602A e claro, uma placa Arduino.

Medidor de distância HC-SR04

O sensor ultrassônico HC-SR04 pode ser usado para medir distâncias de até 4m com precisão de 3mm (dados do datasheet do produto) e identificar a presença de objetos ou captar movimentos.

Isso nos permite criar alarmes, sensores de presença, sistemas de escuta e sensores de estacionamento. Também é um ótimo sensor para utilização em projetos de robótica e aplicações industriais.

Resumindo o funcionamento do sensor ultrassônico: é enviado um sinal ultrassônico pelo módulo, o mesmo detecta o retorno deste sinal (eco), e com base no tempo entre esses dois eventos, gera um sinal que permite medir a distância até o objeto.

Circuito medidor de distância com sensor ultrassônico

O circuito é praticamente idêntico ao que usei nos outros projetos usando o WH1602A. A diferença é que no pino 15 (backlight, ou luz de fundo) eu coloquei uma pequena resistência para limitar a corrente.

O sensor ultrassônico HC-SR04 será conectado nas portas digitais 11 e 13. O potenciômetro é de 10 K ohms e serve para regular o contraste do display. Podem ser usados outros valores de potenciômetro ou até mesmo uma resistência para essa regulagem, ok?

Circuito Arduino Uno e sensor ultrassônico HC-SR04

O programa usa a biblioteca Ultrasonic, que você pode baixar neste link. O programa faz a leitura dos dados do sensor, calcula a distancia em centímetros e polegadas, e apresenta os dados no LCD 16×2. 

Se você não tem um display LCD 16×2, não tem problema: os dados do medidor de distância são enviados para o serial monitor.

//Programa : Medidor de distancia com HC-SR04
//Autor : Arduino e Cia

#include <Ultrasonic.h>     //Carrega a biblioteca Ultrasonic
#include <LiquidCrystal.h>  //Carrega a biblioteca LCD

//Define o pino do Arduino a ser utilizado com o pino Trigger do sensor
#define PINO_TRIGGER  13 

//Define o pino do Arduino a ser utilizado com o pino Echo do sensor
#define PINO_ECHO     10 

//Inicializa o sensor ultrasonico
Ultrasonic ultrasonic(PINO_TRIGGER, PINO_ECHO); 

//Define os pinos que serão ligados ao LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 

void setup()
{
  Serial.begin(9600); //Inicializa a serial
  lcd.begin(16,2); //Inicializa LCD
  lcd.clear();     //Limpa o LCD
}

void loop()
{
  float cmMsec, inMsec;

  //Le os dados do sensor, com o tempo de retorno do sinal
  long microsec = ultrasonic.timing();  

  //Calcula a distancia em centimetros
  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM); 

  //Calcula a distancia em polegadas
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN); 

  //Apresenta os dados, em centimetros, no LCD e na Serial
  lcd.setCursor(0,0);
  lcd.print("Cent.: ");
  lcd.print("        ");
  lcd.setCursor(7,0);
  lcd.print(cmMsec);

  Serial.print("Cent: ");
  Serial.print(cmMsec);

  //Apresenta os dados, em polegadas, no LCD e na Serial  
  lcd.setCursor(0,1);
  lcd.print("Pol. : ");
  lcd.print("        ");
  lcd.setCursor(7,1);
  lcd.print(inMsec);

  Serial.print(", Pol. : ");
  Serial.println(inMsec);

  delay(1000);
}

Abaixo você confere o vídeo do circuito em funcionamento:


Recomendo também a leitura do artigo Controle de vagas de estacionamento com o sensor HC-SR04, onde utilizo a biblioteca NewPing para controlar vários sensores ultrassônicos ao mesmo tempo.

Se você gostou deste post do medidor de distância com sensor ultrassônico HC-SR04, confira outros posts utilizando sensor ultrassônico, aqui mesmo no Arduino e Cia!

5/5 - (2 votes)