fbpx
ArduinoNovidadeSimulação

Como medir distância com o sensor ultrassônico HC-SR04 e Arduino

O sensor ultrassônico é um dispositivo que utiliza alta frequência do som para realizar a detecção de objetos e sua distância. O princípio de funcionamento deste sensor se baseia na emissão de uma onda sonora de alta frequência que ao ser refletida em um objeto resulta em um eco, que é convertido em sinais elétricos. A detecção desse eco depende da intensidade e da distância entre o objeto e o sensor.

Um modelo de sensor ultrassônico muito utilizado em projetos com Arduino é o HC-SR04, sendo aplicado principalmente para detecção de objetos e para especificar a distância do sensor até um determinado obstáculo para evitar colisões. A Figura 1 ilustra o sensor ultrassônico HC-SR04.

A imagem tem como finalidade mostrar um sensor ultrassônico em sua forma real e física
Figura 1 – Sensor ultrassônico HC-SR04.

O princípio de funcionamento do sensor HC-SR04 é o mesmo dos demais ultrassônicos, consistindo na emissão de sinais ultrassônicos pelo sensor e na leitura do sinal de retorno ou eco desse mesmo sinal. A distância entre o sensor e um objeto detectado é calculada com base no tempo entre o envio e leitura de retorno do sinal.

O HC-SR04 é capaz de medir distâncias de 2 centímetros a 4 metros, com precisão de 3 mm e amplitude de 15º. Devido a estas características, este sensor é comumente utilizado em robôs que desvia de obstáculos, medição de distância, detecção e/ou verificação de presença, posicionamento de sistemas robóticos, entre outros.

O HC-SR04 possui quatro pinos, sendo eles:

  • VCC: pino de alimentação que deve ser conectado ao 5V;
  • Trig: gatilho de disparo do pulso;
  • Echo: pino de leitura do tempo de resposta;
  • GND: pino terra.

Neste projeto usaremos o ultrassônico HC-SR04 em conjunto com o Arduino para medir a distância entre o sensor e um objeto.


MATERIAIS NECESSÁRIOS


ESQUEMÁTICO DE LIGAÇÃO DOS COMPONENTES

Conecte o sensor ultrassônico na protoboard e na placa Arduino conforme a Figura 2.

Circuito para Projeto Medir Distância com Sensor Ultrassônico
Figura 2 – Circuito para Projeto Medir Distância com Sensor Ultrassônico

Ao montar seu circuito na protoboard preste atenção nos seguintes pontos:

  • Você pode utilizar fios de cores diferentes ou furos diferentes na protoboard, mas deve assegurar que os componentes e fios estejam conectados na mesma ordem da Figura 2;
  • A tensão de operação do sensor ultrassônico é de 5 V. Por isso, conecte o pino VCC ao 5V do Arduino;
  • O terminal Echo do ultrassônico deve ser conectado à porta digital 5;
  • Conecte o pino Trig do sensor à porta digital 4;
  • Por fim, o terminal GND deve ser conectado ao pino terra (GND).


ELABORANDO O CÓDIGO

O principal intuito deste projeto é a utilização do sensor ultrassônico HC-SR04 para medir a distância entre o sensor e algum objeto. Para tal, vamos utilizar a biblioteca Ultrasonic.h.

Desta forma, vamos proceder a instalação da biblioteca específica para utilização do ultrassônico. Esta biblioteca encontra-se disponível para download no seguinte link:

www.blogdarobotica.com/ultrasonic

Após realizar o download da biblioteca, vamos instalá-la por meio do seguinte caminho: Toolbar > Sketch > Incluir biblioteca > Adicionar biblioteca ZIP.

Com a biblioteca instalada, feche o Arduino IDE e abra-o novamente. Logo após, vamos a programação do nosso Sketch:

O primeiro passo é a inclusão da biblioteca do sensor ultrassônico no editor de texto por meio da instrução #include <Ultrasonic.h>.

Em seguida, criamos o objeto ultrassom, do tipo Ultrassonic, e definimos os pinos do Arduino que estão conectados ao TRIG (pino digital 5) e ECHO (pino digital 4).

Logo após, criamos a variável distancia do tipo long. As variáveis do tipo long possuem tamanho estendido para armazenamento de números, armazenam 32 bits (4 bytes).

Na função setup, iniciamos a comunicação serial com velocidade de 9600.

Para ler a distância vamos utilizar a função Ranging(CM), que retornará o valor da distância em cm. Essa função retornará um valor de variável long, que armazenaremos na variável distancia.

Em seguida, imprimimos no monitor serial o texto “Distância = : ”, o valor da distância medida e armazenada na variável distancia e o texto “cm”.

Assim sendo, o Sketch deste projeto terá a seguinte estrutura:

#include <Ultrasonic.h> //Inclui a biblioteca do ultrassônico
Ultrasonic ultrassom(5, 4); //Cria o objeto ultrassom, do tipo Ultrassonic, e define os pinos onde está ligado o TRIG(pino 5) e o ECHO(pino 4) respectivamente

long distancia; //cria a variável distancia do tipo long

void setup() {
  Serial.begin(9600); //Inicializa a comunicação serial, com velocidade de comunicação de 9600
}

void loop(){
  distancia = ultrassom.Ranging(CM);//ultrassom.Ranging(CM) retorna a distancia em centímetros(CM)
  Serial.print("Distância = ");//Imprime na serial o texto "Distância = "
  Serial.print(distancia); //Imprime na serial o valor da variável distancia
  Serial.println("cm"); //Imprime na serial o texto "cm"
  delay(1000); //Intervalo de 1 segundo
}

Espero ter ajudado,

Obrigada a todos e em caso de dúvidas deixe seu comentário abaixo!

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.

Carol Correia Viana

Bacharel em Engenharia Elétrica com ênfase em Eletrônica, mestra em Engenharia Industrial e especialista em Docência com ênfase em Educação Inclusiva. Atua no setor de Desenvolvimento de Produtos na Casa da Robótica. Editora chefe e articulista no Blog da Robótica. Fanática por livros, Star Wars e projetos Maker.