Arduino Nano - Sensor Ultrassônico
Este tutorial ensina você a usar o Arduino Nano e o sensor ultrassônico para medir a distância até obstáculos ou objetos. Em detalhes, vamos aprender:
- Como o sensor ultrassônico funciona
- Como conectar o sensor ultrassônico ao Arduino Nano
- Como programar o Arduino Nano para medir a distância usando o sensor ultrassônico
- Como filtrar o ruído das medições de distância do sensor ultrassônico no código do Arduino Nano
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor Ultrassônico
O sensor ultrassônico HC-SR04 é usado para medir a distância até um objeto por meio de ondas ultrassônicas.
Pinagem do Sensor Ultrassônico
O sensor ultrassônico HC-SR04 tem quatro pinos:
- Pino VCC: deve ser conectado ao VCC (5V)
- Pino GND: deve ser conectado ao GND (0V)
- Pino TRIG: recebe um sinal de controle (pulso) do Arduino Nano
- Pino ECHO: envia um sinal (pulso) para o Arduino Nano. O Arduino Nano mede a duração do pulso para calcular a distância.

Como Funciona
- O Arduino Nano produz um pulso de 10 microssegundos no pino TRIG, o que faz o sensor ultrassônico emitir ondas ultrassônicas.
- Quando as ondas atingem um obstáculo, elas são refletidas de volta.
- O sensor ultrassônico consegue detectar a onda refletida e medir o seu tempo de percurso.
- Em seguida, o sensor gera um pulso no pino ECHO, com duração igual ao tempo de percurso da onda ultrassônica.
- O Arduino Nano mede a duração do pulso no pino ECHO e calcula a distância entre o sensor e o obstáculo.
Como Obter a Distância do Sensor Ultrassônico
Para calcular a distância a partir do sensor ultrassônico, só precisamos escrever um código Arduino que faça dois passos (1 e 6 em Como Funciona):
- O Arduino Nano gera um pulso de 10 microssegundos no pino TRIG.
- O Arduino Nano mede a duração do pulso no pino ECHO.
- Depois, o Arduino Nano usa a duração do pulso medida para calcular a distância entre o sensor e o obstáculo.
Cálculo da Distância
Temos:
- O tempo de percurso da onda ultrassônica (µs): travel_time = pulse_duration
- A velocidade da onda ultrassônica: speed = SPEED_OF_SOUND = 340 m/s = 0.034 cm/µs
Então:
- A distância percorrida pela onda ultrassônica (cm): travel_distance = speed × travel_time = 0.034 × pulse_duration
- A distância entre o sensor e o obstáculo (cm): distance = travel_distance / 2 = 0.034 × pulse_duration / 2 = 0.017 × pulse_duration
Arduino Nano - Sensor Ultrassônico
Os pinos do Arduino Nano podem produzir um pulso de 10 microssegundos e medir a duração de um pulso. Isso nos permite usar dois pinos do Arduino Nano para determinar a distância do sensor ultrassônico até um objeto. Só precisamos:
- Conectar um pino do Arduino Nano ao pino TRIG do sensor ultrassônico. Esse pino do Arduino Nano é usado para gerar um pulso de 10µs no pino TRIG do sensor
- Conectar outro pino do Arduino Nano ao pino ECHO do sensor ultrassônico. Esse pino do Arduino Nano é usado para medir o pulso vindo do sensor
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Veja A melhor forma de alimentar o Arduino Nano e outros componentes.
Como Programar o Sensor Ultrassônico
- Gere um pulso de 10 microssegundos no pino 3 do Arduino usando as funções digitalWrite() e delayMicroseconds(). Por exemplo:
- Meça a duração do pulso (em microssegundos) no pino 2 do Arduino usando a função pulseIn(). Por exemplo:
- Calcule a distância (cm):
Código Arduino Nano
Passos Rápidos
- Copie o código e abra-o com o Arduino IDE.
- Depois, clique no botão Upload no Arduino IDE para compilar e fazer o upload do código para o Arduino Nano.

- Abra o Serial Monitor
- Coloque a mão na frente do sensor ultrassônico
- Veja no Serial Monitor a distância do sensor até a sua mão
Explicação do Código
Confira a explicação linha por linha nos comentários do código-fonte!
Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico
O resultado da medição de um sensor ultrassônico pode conter ruído, o que pode causar operações indesejadas em algumas aplicações. Para remover o ruído, podemos usar o seguinte algoritmo:
- Faça várias medições e guarde-as em um array
- Ordene o array em ordem crescente
- Filtre o ruído da seguinte forma:
- As menores amostras são consideradas ruído e devem ser ignoradas
- As maiores amostras são consideradas ruído e devem ser ignoradas
- Deve-se calcular a média das amostras do meio
- Ignora as cinco menores amostras.
- Ignora as cinco maiores amostras.
- Calcula a média das 10 amostras do meio, da quinta até a décima quarta.
O código de exemplo abaixo faz 20 medições:
Vídeo
Desafie-se
Use um sensor ultrassônico em qualquer um dos projetos a seguir:
- Construir um sistema de prevenção de colisão para um carrinho de controle remoto.
- Descobrir o quanto uma lixeira está cheia.
- Acompanhar o nível de uma lixeira.
- Abrir e fechar uma lixeira automaticamente. Dica: Veja Arduino Nano - Servo Motor.
Aplicações do Sensor Ultrassônico
- Evitar Colisões
- Detectar Nível de Enchimento
- Medir Nível
- Detectar Proximidade