0

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.

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: <http://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: <http://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!

Flávio Babos
Estudante de Engenharia Mecatrônica pela Universidade Federal de Uberlândia (UFU), Flávio passa seu tempo empreendendo e estudando sobre eletrônica e tecnologia no geral. Já desenvolveu diversos projetos com Arduino e recentemente atuou na Empresa Júnior do seu curso gerenciando equipes de engenharia no setor de vendas e de projetos.

Curso a Distância de Refrigeração Residencial e Comercial [2021]

Previous article

Mosfet: Funcionamento, Tipos e Aplicações

Next article

You may also like

Comments

Leave a reply

Your email address will not be published. Required fields are marked *

More in Arduino