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.
👨💻 Comprar Agora – Kit Iniciante Arduino com Tutorial e + 20 Projetos ✅
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:
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.
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:
Especificações técnicas do módulo ultrassônico HC-SR04
Tensão de Operação | 5 V DC |
Corrente de Operação | 15mA |
Frequência Máxima de Leitura | 40Hz |
Distância Máxima | 4m |
Distância Mínima | 2cm |
Sinal de entrada do Trigger | Pulso 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-SR04 | Arduino |
GND | GND |
VCC | 5V |
TRIG | D8 |
ECHO | D9 |
Lista de materiais
- Arduino Uno
- Cabos Macho-Femea
- Sensor HC-SR04
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.
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.
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: <https://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
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
Segue abaixo o código deste projeto:
/* Como ligar e controlar um sensor Ultrassônico com o Arduino UNO Mais projetos como esse, acesse: <https://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!