Vous êtes sur la page 1sur 8

13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

Loja Feed

Como utilizar o sensor ultrasônico HC-SR04 Pesquisa

Search

Novidades

Sensor de Orientação
UM7-LT

DFRobot Shield LCD com


botoes

DFRobot Sensor de Cor


RGB - TCS3200

Vamos conhecer melhor o sensor ultrasônico HC-SR04, um sensor que pode ser
Shield LCD TouchScreen
utilizado como um detector de objetos ou na área de robótica um componente que TFT 2.4
pode ser usado para encontrar/evitar obstáculos ou corrigir rotas na movimentação
do robô.
Sensor de Vibracao
Esse sensor utiliza sinais ultrasônicos (40 Khz, acima da capacidade de audição do SW18010P

ouvido humano, que é de 20 Khz), para determinar a distância entre o sensor e o


obstáculo. Ele pode medir distâncias entre 2 cm e 4 m, com precisão de 3mm. Seu
ângulo de detecção é de aproximadamente 15 graus, segundo informações do
datasheet do sensor.
Comentários recentes

Pinagem e funcionamento do HC-SR04 Julio on Como utilizar o sensor


ultrasônico HC-SR04
O módulo possui 4 pinos : Vcc (alimentação 5V), Trigger, Echo e GND, sendo ideal
BUILDBOT on Configuração do módulo
para utilização em projetos compactos, já que consome apenas 15mA, se
bluetooth HC-06 com Arduino
adaptando bem à projetos que utilizam as placas e microcontroladores mais comuns
Rodrigo on Configuração do módulo
do mercado como Arduino, Raspberry e PIC. bluetooth HC-06 com Arduino

João Cláudio Caleffi on Como utilizar o


sensor ultrasônico HC-SR04

Daniel Fernandes on Configuração do


módulo bluetooth HC-06 com Arduino

Newsletter
Nome
e-mail
Assinar

Categorías

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 1/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

Aniversário

Artigos

Institucional

Notícias

Promoções

Sci-fi BOT

Post recentes

Meetup Arduino com GDG Ribeirão


Preto

Robôs BioArgo monitorarão vida do


Seu funcionamento consiste basicamente em enviar um sinal que, ao atingir um oceano
objeto, volta para o sensor e com base nesse tempo entre o envio e recebimento, é
5 robôs curiosos e bizarros que você
calculada a distância entre o sensor e o objeto. não vai querer na sua casa

Analisando com mais detalhes esse processo de medição, que ocorre em 3 etapas: Acredite, este Drone pode salvar sua
vida!
1. É enviado um sinal com duração de 10 us (microsegundos) ao pino trigger,
Robôs de telepresença que podem
indicando que a medição terá início ajudar pessoas com deficiência

2. Automaticamente, o módulo envia 8 pulsos de 40 KHz e aguarda o retorno do


sinal pelo receptor Tags
3. Caso haja um retorno de sinal (em nível HIGH), determinamos a distância
android Arduino bionico
entre o sensor e o obstáculo utilizando a seguinte equação: Distancia = (pulso braço robótico Campus Party 2015
em nível alto x velocidade do som (340m/s) /2 casa cicurgia com robô Circuitar
CPBR8 Darpa drone
drones educação Espaço esteira
exoesqueleto falsificação google
A divisão por 2 é necessária já que estamos contando o tempo de ida e volta do
humanóide inteligência
sinal.
artificial LEGO microsoft
MIT monitoramento com drone movimento
A ilustração abaixo mostra, graficamente, esse processo :
MúsicaNASA natureza pernas
processamento de imagem
programação para crianças
promoção quadricoptero Rede

robótica robô robô


bombeiro robôs robôs autônomos
robô seguidor de linha tecnologia
assistiva tipo UAV's UNO voo

Antigas

July 2015

June 2015
Utilização do HC-SR04 com Arduino
May 2015
A utilização mais comum do sensor ultrasônico HC-SR04 com o Arduino é na
April 2015
montagem de medidores de distância, onde o valor da distância é mostrado em um
display lcd ou mesmo no serial monitor do próprio Arduino. Dependendo do seu March 2015

projeto, você pode utilizar um Arduino Mini ou Arduino Micro e montar um medidor February 2015
de distância portátil, utilizando um circuito como esse, montado com um Arduino
January 2015
Uno:
December 2014

November 2014

October 2014

September 2014

August 2014
http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 2/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

July 2014

June 2014

May 2014

April 2014

March 2014

February 2014

January 2014

September 2013

August 2013

July 2013
O programa para esse circuito utiliza a biblioteca Ultrasonic, que funciona muito
bem quando você precisa trabalhar com apenas um sensor HC-SR04 no seu May 2013

projeto. Você pode baixar a biblioteca Ultrasonic nesse link. Descompacte o arquivo April 2013
e coloque a pasta dentro da pasta libraries da IDE do seu Arduino. Em seguida,
March 2013
carregue o programa abaixo :
February 2013

1 //Programa : Teste HC-SR04 e biblioteca Ultrasonic January 2013


2 //Autor : Adilson Thomsen
3 December 2012
4 #include <Ultrasonic.h>
5 November 2012
6 //Define os pinos do Arduino ligados ao Trigger e Echo
7 #define PINO_TRG 7 July 2012
8 #define PINO_ECHO 6
9 June 2012
10 //Inicializa o sensor ultrasonico nos pinos especificados
11 Ultrasonic ultrasonic(PINO_TRG, PINO_ECHO);
12
13 void setup() Blogroll
14 {
15 //Inicializa a serial
16 Serial.begin(9600);
Discovery Tech
17 }
18
Phys
19 void loop()
20 {
21 //Variaveis para guardar os valores em News Scientist
22 //cm (cmSec) e polegadas (inMsec)
23 float cmMsec, inMsec; MIT News
24
25 //Le os valores do sensor ultrasonico Science Daily
26 long microsec = ultrasonic.timing();
27 //Atribui os valores em cm ou polegadas as variaveis
28 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
29 inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
30
31 //Mostra os valores na serial
32 Serial.print("Centimetros: ");
33 Serial.print(cmMsec);
34 Serial.print(" - Polegadas: ");
35 Serial.println(inMsec);
36
37 //Aguarda 1 segundo e reinicia o processo
38 delay(1000);
39 }

Esse programa lê as informações do sensor e as envia para o serial monitor,


mostrando a distância do sensor ao objeto em centímetros e também em
polegadas.

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 3/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

Com pequenas alterações no programa, podemos fazer com que uma determinada
saída do Arduino seja acionada somente quando o objeto estiver entre duas
distâncias pré-estabelecidas, por exemplo, entre 50 e 60 cm. Se o objeto estiver
fora dessa faixa, a saída não será acionada. Esse exemplo pode ser utilizado como
base para construção de um sensor de presença :

1 //Programa : HC-SR04 - Distancias minima e maxima


2 //Autor : Adilson Thomsen
3
4 #include <Ultrasonic.h>
5
6 //Define os pinos do Arduino ligados ao Trigger e Echo
7 #define PINO_TRG 7
8 #define PINO_ECHO 6
9
10 //Distancias em centimetros
11 float distancia_minima = 20;
12 float distancia_maxima = 60;
13
14 //Pino a ser acionado em caso de deteccao
15 int pino_saida = 10;
16
17 //Inicializa o sensor ultrasonico nos pinos especificados
18 Ultrasonic ultrasonic(PINO_TRG, PINO_ECHO);
19
20 void setup()
21 {
22 //Inicializa a serial
23 Serial.begin(9600);
24 pinMode(pino_saida, OUTPUT);
25 }
26
27 void loop()
28 {
29 //Variaveis para guardar os valores em
30 //cm (cmSec) e polegadas (inMsec)
31 float cmMsec, inMsec;
32
33 //Le os valores do sensor ultrasonico
34 long microsec = ultrasonic.timing();
35 //Atribui os valores em cm ou polegadas as variaveis
36 cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
37 inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
38
39 if (cmMsec > distancia_minima && cmMsec < distancia_maxim
40 {
41 //Aciona a porta de saida
42 digitalWrite(pino_saida, HIGH);
43 }
44
45 delay(1000);
46 }

Altere o valor das variáveis distancia_minima e distância_máxima para que o


objeto seja detectado apenas dentro de um determinado intervalo.

Utilização de 2 ou mais sensores no mesmo circuito

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 4/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

Dependendo do seu projeto, entretanto, você pode precisar de 2 ou mais sensores


HC-SR04, para detectar obstáculos com mais facilidade ou monitorar vários pontos
de um ambiente. Nesse caso, teremos um circuito como este :

Aqui, você pode utilizar a biblioteca NewPing (download), que permite o controle de
até 15 sensores ao mesmo tempo.

Para determinar quantos sensores você está usando no circuito, altere o valor da
linha abaixo :

#define SONAR_NUM <numero de sensores>

Depois, adicione uma linha como essa para cada sensor, especificando três
parâmetros : o pino trigger, o pino echo e a distância máxima na qual esse sensor
vai atuar :

NewPing(<pino trigger>, <pino echo>, <distancia maxima>)

Um loop faz uma varredura em todos os sensores, mostrando os valores medidos


no serial monitor:

1 //Programa : Controle de 2 sensores HC-SR04 - NewPing


2 //Autor : Adilson Thomsen
3
4 //Inicializa as bibliotecas do sensor Ultrasonico
5 #include <NewPing.h>
6
7 //Determina o numero de sensores no circuito
8 #define SONAR_NUM 2
9 //Determina a distancia maxima de deteccao
10 #define MAX_DISTANCE 10
11 //Intervalo de tempo entre as medicoes - valor minimo 29ms
12 #define PING_INTERVAL 33
13
14 //Armazena a quantidade de vezes que a medicao deve ocorrer
15 unsigned long pingTimer[SONAR_NUM];
16 //Armazena o numero de medicoes
17 unsigned int cm[SONAR_NUM];
18 // Armazena o numero do sensor ativo
19 uint8_t currentSensor = 0;
20
21 NewPing sonar[SONAR_NUM] =
22 {
23 //Inicializa os sensores nos pinos especificados
24 //(pino_trigger, pino_echo, distancia_maxima)
25 //Sensor 1
26 NewPing(7, 6, MAX_DISTANCE),
27 //Sensor 2
28 NewPing(10, 9, MAX_DISTANCE),
29 };
30
31 void setup()
32 {
33 Serial.begin(9600);
34 //Inicia a primeira medicao com 75ms
35 pingTimer[0] = millis() + 75;
36 //Define o tempo de inicializacao de cada sensor
37 for (uint8_t i = 1; i < SONAR_NUM; i++)
38 pingTimer[i] = pingTimer[i - 1] + PING_INTERVAL;
39 }
40
41 void loop()
42 {
43 //Faz um loop entre todos os sensores
44 for (uint8_t i = 0; i < SONAR_NUM; i++) { // Loop entre t

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 5/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04
45 if (millis() >= pingTimer[i]) {
46 pingTimer[i] += PING_INTERVAL * SONAR_NUM;
47 if (i == 0 && currentSensor == SONAR_NUM - 1) oneSens
48 sonar[currentSensor].timer_stop();
49 currentSensor = i;
50 cm[currentSensor] = 0;
51 sonar[currentSensor].ping_timer(echoCheck);
52 }
53 }
54 }
55
56 void echoCheck()
57 {
58 //Se receber um sinal (eco), calcula a distancia
59 if (sonar[currentSensor].check_timer())
60 cm[currentSensor] = sonar[currentSensor].ping_result /
61 }
62
63 void oneSensorCycle()
64 {
65 // Ciclo de leitura do sensor
66 for (uint8_t i = 0; i < SONAR_NUM; i++)
67 {
68 //Imprime os valores lidos pelos sensores, no serial mo
69 Serial.print("Sensor : ");
70 Serial.print(i);
71 Serial.print(" = ");
72 Serial.print(cm[i]);
73 Serial.print(" cm - ");
74 }
75 Serial.println();
76 }

Uma sugestão de uso desse sensor você encontra no vídeo abaixo, onde um
sensor HC-SR04 foi colocado em uma haste giratória, fazendo uma varredura do
ambiente à procura de objetos e coordenando a movimentação das rodas do robô:

Object following 2wd robot with HC-SR04 Ultrasonic Sensor

Curtir 15 pessoas curtiram isso. Cadastre-se para ver do que seus amigos gostam.

Relacionados

Configuração Diferença entre Agora as Kit Arduino, o


do módulo Arduino MEGA lâmpadas são básico para
bluetooth HC- e ADK. impressas começar a
06 com estudar.
Arduino

Category: Artigos Tag: hc-sr04, sensor de distância, ultrasonic, ultrasonico

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 6/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04

17/01/2015 at 08:00 5 comments Adilson Thomsen

5 Responses

Guilherme Daros says:

Boa tarde estou realizando um projeto com Pic16f877a. As informações acima são
para arduini.no. seria possível encaminhar uma biblioteca para o pic??

27/04/2015 at 15:31 Reply

BUILDBOT says:

Guilherme, veja se esse artigo lhe ajuda no final tem o download do projeto para
PIC.
https://electrosome.com/hc-sr04-ultrasonic-sensor-pic/

27/04/2015 at 18:41 Reply

Guilherme says:

Agradeço o seu comentário. Acredito que o site irá me ajudar muito.

28/04/2015 at 18:07 Reply

João Cláudio Cale says:

Será que é possível alterar o tipo de sinal enviado por este sensor? Gostaria de
enviar um sinal e dB (decibéis) e ver quanto retorna.

20/08/2015 at 17:49 Reply

Julio says:

A leitura do meu sensor está sempre errada, conforme a imagem.


https://www.dropbox.com/s/0cjtegkea772mww/Captura%20de%20tela%202015-09-
03%2017.31.20.png?dl=0
O que pode ser?

03/09/2015 at 20:32 Reply

Leave a Comment

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

Name *

Email *

Website

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 7/8
13/04/2018 Como utilizar o sensor ultrasônico HC-SR04
Comment

Please Enter Security Code    


⟲ 
Send Comment

BUILDBOT Blog WordPress. Design by wplook

http://buildbot.com.br/blog/como-utilizar-o-sensor-ultrasonico-hc-sr04/ 8/8