Sensor Ultrassônico com Arduino: Como Controlar?

Flávio Babos
Escrito por Flávio Babos
Atualizado em:

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:

Golfinho como um exemplo do funcionamento do sensor ultrassônico

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.

Emissor e receptor do sensor ultrassônico com ondas colidindo em um 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:

Pinagem do sensor ultrassônico e ilustração do emissor e receptor

Especificações técnicas do módulo ultrassônico HC-SR04

Tensão de Operação5 V DC
Corrente de Operação15mA
Frequência Máxima de Leitura40Hz
Distância Máxima4m
Distância Mínima2cm
Sinal de entrada do TriggerPulso 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-SR04Arduino
GNDGND
VCC5V
TRIGD8
ECHOD9

Lista de materiais

  • Arduino Uno
  • Cabos Macho-Femea
  • Sensor HC-SR04
Montagem feita no fritzing do sensor com o arduino

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.

Como adicionar biblioteca na IDE do Arduino

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.

Biblioteca HCSR04 do sensor ultrassonico sendo adicionada na IDE do arduino

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

Projeto bônus com LCD, Arduino e sensor ultrassônico imagem mostrando a montagem de todo o circuito

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

Montagem feita no fritzing do sensor ultrassonico, display lcd e Arduino

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!


Foto escritor

Flávio Babos

Flávio é especialista em tecnologia, empreendedor e estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU). Já desenvolveu diversos projetos de elétrica, eletrônica e atualmente dedica seu tempo em escolher os melhores produtos de tecnologia para ajudar sua audiência no processo de decisão de compra na internet.


Deixar comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentário