Você tem ideia de como é feito para medir distâncias através do Arduino? Neste Artigo vamos tratar de forma simples e objetiva o uso do sensor ultrassônico HC-SR04.
Este sensor (como o próprio nome já diz) utiliza o princípio do ultrassom, assim como o dos morcegos e também dos golfinhos, para descobrir uma distância de um ponto ao outro.
Ao final deste artigo, você vai ser capaz de implementar o sensor de distância ultrassônico em qualquer projeto que for construir pois você irá aprender a como fazer a montagem do circuito e como criar o do código em linguagem C++.
Além disso, vou te desafiar a construir um projeto bônus de um medidor de distância portátil.
👨💻 Comprar Agora – Kit Iniciante Arduino com Tutorial e + 20 Projetos ✅
Como funciona o sensor ultrassônico HC-SR04
O princípio de funcionamento deste sensor é exatamente o mesmo utilizado por morcegos e golfinhos para se localizarem. Basicamente eles emitem uma onda ultrassônica (Sinais) e aguarda que essa onda atinja algum objeto e retorne (Ecos) para saber se há algo em seu trajeto.
A imagem a seguir ilustra a ação descrita acima:

Com o sensor HC-SR04 acontece exatamente a mesma ação, existe um emissor de frequências ultrassônicas e um receptor, o emissor produz uma onda ultrassônica enquanto o receptor aguarda o retorno desta onda, depois que ela colide em algum objeto.

O sensor que estamos utilizando é capaz de medir distâncias de 2cm à 4m de distância com uma precisão que pode chegar à 3mm. Seu funcionamento ocorre aplicando o sinal no pino trigger do sensor. Com isso o módulo automaticamente envia uma onda de 40 KHz pelo componente emissor e espera pelo retorno deste sinal no sensor receptor.
Quando o sensor detecta o sinal de retorno o pino echo emite um pulso ao Arduino com a duração do tempo que o sinal demorou para retornar. Para aprender mais, acesse a apostila do site que possui diversos projetos com Arduino em PDF, um verdadeiro manual prático!
Os pinos do sensor HC-SR04 são descritos na imagem abaixo:

Especificações técnicas do módulo ultrassônico HC-SR04
| Tensão de Operação | 5 V DC |
| Corrente de Operação | 15mA |
| Frequência Máxima de Leitura | 40Hz |
| Distância Máxima | 4m |
| Distância Mínima | 2cm |
| Sinal de entrada do Trigger | Pulso de 10uS |
Montagem do circuito
Para este teste iremos realizar a montagem para o sensor realizar simples medidas de um ponto a outro de forma retilínea, e apresentar essa nova medida a cada 5 segundos através do monitor serial da IDE do arduino.
| HC-SR04 | Arduino |
| GND | GND |
| VCC | 5V |
| TRIG | D8 |
| ECHO | D9 |
Lista de materiais
- Arduino Uno
- Cabos Macho-Femea
- Sensor HC-SR04

Caso possua dificuldades na montagem dos seus projetos, recomendo acessar este artigo sobre os principais cursos de Arduino para aprender tudo sobre essa plataforma open-source, desde a programação até a eletrônica e circuitos embarcados.
Código do sensor ultrassônico Arduino
A função principal deste código é utilizar o sensor ultrassônico para medir distâncias. O código a seguir, auxiliará de forma bem simples como fazer esta tarefa.
Primeiramente, precisaremos da biblioteca do sensor ultrassônico, disponível no gerenciador de bibliotecas na IDE do Arduino. Para encontra-la seguimos os seguintes passos descritos nas imagens a seguir.

Acessando o menu Gerenciar Bibliotecas, teremos a janela com todas as bibliotecas instaladas em nossa IDE. Nesta janela, para este sensor vamos buscar no campo de pesquisa o sensor HCSR04.
Entre todas as bibliotecas disponíveis, vamos selecionar a criada e disponibilizada por Martin Sosic, chamada HCSR04, que entre outras bibliotecas, oferece as funções necessárias de forma simples de usar. Para adicionar esta biblioteca é só pressionar o botão instalar e automaticamente ela será agregada à sua IDE.

Com a biblioteca instalada, compile e grave o código a seguir:
/*
Como ligar e controlar um sensor Ultrassônico com o Arduino UNO
Mais projetos como esse, acesse: <https://flaviobabos.com.br>
*/
//Inclui a biblioteca do sensor HC SR04
#include <HCSR04.h>
//Define os pinos do Arduino D8 e D9 como porta do ECHO e TRIGGER
#define TRIGGER 9
#define ECHO 8
// Inicializa o sensor usando os pinos TRIGGER and ECHO.
UltraSonicDistanceSensor distanceSensor(TRIGGER, ECHO);
void setup () {
//Inicializa a porta serial do Arduino com 9600 de baud rate
Serial.begin(9600);
}
void loop () {
//Cria variavel do tipo int
int distancia = 0;
//Variável recebe o valor da função da biblioteca
distancia = distanceSensor.measureDistanceCm();
//exibe na porta serial o valor de distancia medido
Serial.println(distancia);
//Espera 1 segundo
delay(1000);
}
Se a montagem do circuito estiver correta a cada segundo o arduino fará uma leitura da distância que você o apontar.
Projeto bônus

Como projeto bônus faremos um desafio para você criar um medidor de distância ultrassônico portátil.
A ideia é usar um projeto sobre o display LCD 16×2, que já foi feito aqui no site, onde cada vez que o botão for pressionado o sensor fará uma medição e irá exibi-la no display LCD.
Lista de materiais
- Arduino Uno
- Cabos
- Sensor HC-SR04
- Display LCD 16×2
- Protoboard
- Botão
- Fonte de alimentação 12V / 1.0 A
Montagem do circuito

Segue abaixo o código deste projeto:
/*
Como ligar e controlar um sensor Ultrassônico com o Arduino UNO
Mais projetos como esse, acesse: <https://flaviobabos.com.br>
*/
//Inclui a biblioteca do sensor HC SR04
#include <HCSR04.h>
//Inclui a bibliotec Liquid Crystal ao código:
#include <LiquidCrystal.h>
// Define algumas nomenclaturas aos pinos digitais do arduino
#define TRIGGER 9
#define ECHO 8
#define RS 12
#define EN 11
#define D4 4
#define D5 5
#define D6 6
#define D7 7
#define BOTAO 2
// Inicializa a biblioteca associando os pinos definidos ao display LCD
LiquidCrystal lcd(RS, EN, D4, D5, D6, D7);
// Inicializa o sensor usando os pinos TRIGGER and ECHO.
UltraSonicDistanceSensor distanceSensor(TRIGGER, ECHO);
void setup () {
//Inicializa a porta serial do Arduino com 9600 de baud rate
Serial.begin(9600);
// Define o tipo do LCD que sera utilizado, neste caso 16x2
lcd.begin(16, 2);
lcd.clear();
// configura pino 2 do arduino como entrada digital mantida em nivel alto
pinMode(BOTAO, INPUT);
digitalWrite(BOTAO, HIGH);
}
void loop () {
//Cria variavel do tipo int
int distancia = 0;
// Posiciona a localização do ponteiro na sexta coluna, primeira linha no display
lcd.setCursor(0, 0);
// Apresenta a palavra DISTANCIA MEDIDA no display na primeira linha.
lcd.print("DISTANCIA MEDIDA");
if(digitalRead(BOTAO) == LOW) //Lógica de polling para o botão
{
delay(100);
//Variável recebe o valor da função da biblioteca
distancia = distanceSensor.measureDistanceCm();
for(int i = 0; i <= 15; i++) //Lógica para limpar a segunda linha do display 16x2
{
lcd.setCursor(i, 1);
lcd.print(" ");
}
//Printa o valor da distância lida no display LCD
lcd.setCursor(7, 1);
lcd.print(distancia);
delay(1000);
}
}
Depois de você ter dado o upload do código em sua placa Arduino, seu projeto se comportará como no vídeo abaixo:
Considerações finais
Como vimos, o sensor HC-SR04 é uma excelente opção para projetos que se necessitam utilizar a medição de distâncias ou, em outro ponto de vista, que precisam da detecção de objetos dentro do raio de alcance do sensor.
Este tutorial trouxe de forma simples e prática uma das formas de se utilizar o sensor ultrassônico.
Agora você é capaz de utilizar este componente em seus projetos!
PS: Em caso de produtos e uso profissional há uma etapa importante de calibração de valores e confiabilidade de resultados que deve ser executada.
Obrigado por ter acompanhado este tutorial até aqui!
Comments