Intermediário - Projeto 15

Usando o sensor ultrassônico HC-SR04 com Arduino sem biblioteca

Objetivo

Utilizar o o sensor ultrassônico HC-SR04 junto com o Arduino para medir distâncias entre o sensor e um objeto qualquer. Para o melhor entendimento dos princípios do funcionamento do HC-SR04, não vamos usar neste projeto qualquer tipo de biblioteca, podendo assim, demonstrarmos todas as etapas de atuação do sensor.

Obs.: É bom lembrar que existem bibliotecas disponíveis para simplificar a programação com este sensor. Falaremos destas bibliotecas nos próximos projetos.

Definições

Sensor de Distância Ultrassônico HC-SR04 possui função de medição sem contato entre 2 cm e 4 metros, com precisão de aproximadamente 3mm. O módulo é composto por transmissor ultrassônico, receptor e circuito de controle:

  • Transmissor Ultrassônico – Emite as ondas ultrassônicas que serão refletidas pelos obstáculos;
  • Um receptor – Identifica o eco do sinal emitido pelo transmissor;
  • Circuito de controle – Controla o conjunto transmissor/receptor, calcula o tempo entre a emissão e recepção do sinal;

Ondas ultrassônicas: São ondas mecânicas de alta frequência, acima de 20.000 Hz, que se propaga na velocidade do som. Neste caso, o som não pode ser ouvido pelos seres humanos. O ultrassom é muito utilizado para exames clínicos, sensores, sonares, etc. O módulo HC-SR04 emite ondas com frequência de 40.000 Hz.

Princípio de funcionamento do HC-SR04: O funcionamento do HC-SR04 se baseia no envio de sinais ultrassônicos pelo transmissor do sensor, que aguarda o retorno (echo) do sinal, e com base no tempo entre envio e retorno, calcula a distância entre o sensor e o objeto detectado no circuito de controle:

Etapas de funcionamento do HC-SR04

1. O Arduino envia um pulso de trigger (gatilho) de pelo menos 10us em nível alto (HIGH);

2. Ao receber o sinal de trigger enviado pelo Arduino, o transmissor ultrassônico envia 8 pulsos de 40khz e aguarda o retorno;

3. Se algum sinal de retorno for identificado pelo receptor, o sensor gera um sinal de nível alto (HIGH), cujo o tempo de duração é igual ao tempo total entre a emissão e a recepção do sinal ultrassônico.

3.1. Esse sinal de nível alto é enviado para o Arduino através do pino de entrada echo do módulo.

3.2. Durante o tempo de emissão e recebimento do sinal ultrassônico, o pino echo ficará em nível alto. 

3.3. Para capturar o tempo de duração em microssegundos do pulso em nível alto (HIGH) no pino echo usamos a função pulseIn() - leia referência Arduino.

4. Com base nesse tempo de entre o envio e o retorno do sinal ultrassônico podemos calcular a distância entre o sensor e objeto, utilizando a equação: Distância = (Tempo echo em nível alto * velocidade do som) /2

4.1. Como vimos anteriormente, o tempo echo em nível alto é o tempo que o sinal ultrassônico leva para ir e voltar até o sensor. Portanto, a distância percorrida pela onda sonora é o dobro da distância entre o sensor e o objeto.

4.2. Ao utilizarmos a função pulseIn() para determinarmos o tempo em nível alto, obteremos como resposta o valor em microssegundos. Portanto, vamos utilizar na equação acima o tempo em microssegundos e a velocidade do som em metros/microssegundo.

Observação: A velocidade do som é de aproximadamente 340,29 m/seg = 0.00034029 m/µs (metros por microssegundo).

Aplicação

Para fins didáticos e projetos onde o HC-SR04 pode ser utilizado para fazer leituras de distâncias entre o sensor e um objeto, acionar alarmes, detectar objetos e corrigir continuamente a trajetória de um robô ao detectar um obstáculo, por exemplo, entre outras aplicações em robótica.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard

Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1  
Módulo Sensor Ultrassônico HC-SR04

Sensor Ultrassônico HC-SR04

1  

- Tensão de Alimentação 5V DC
- Corrente consumida 15mA
- Frequência de operação 40kHz
- Distância (min) 2cm / (max) 4m
- Precisão 3mm
- Ângulo de medição 15graus
- Sinal de entrada [Trigger] Pulso TTL (5V) de 10us
- Sinal de saída [Echo] Pulso TTL (5V) proporcional à distânia detectada

datasheet

Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Observação: Você poderá adquirir os componentes acima na loja: Baú da Eletrônica.

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. O Arduino deve estar totalmente desconectado da fonte de energia enquanto você monta o circuito.

 

Atenção

1. A montagem do módulo HC-SR04 deve seguir a configuração abaixo:

  • Vcc  –  Deve ser conectado a um pino 5V do Arduino.
  • Trig  –  Deve ser conectado a um pino digital configurado como saída. Utilizamos o pino 8 do Arduino.
  • Echo – Deve ser conectado a um pino digital configurado como entrada. Utilizamos o pino 9 do Arduino.
  • Gnd  – Deve ser conectado a um pino GND do Arduino.