I15 - Como usar o sensor ultrassônico HC-SR04 com Arduino sem o auxílio de biblioteca
- Detalhes
- Angelo Luis Ferreira
- Acessos: 947
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 830 pontos | 1 | ![]() |
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 |
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.