Arduino Nano ESP32 - Sensor Ultrassônico
Este tutorial explica como usar o Arduino Nano ESP32 com o sensor ultrassônico HC-SR04 para medir a distância até um objeto.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre o Sensor Ultrassônico
O sensor ultrassônico HC-SR04 é usado para medir a distância entre o sensor e um objeto por meio de ondas ultrassônicas.
Pinagem do Sensor Ultrassônico
O sensor ultrassônico HC-SR04 possui quatro pinos:
- Pino VCC: conecte este pino ao VCC (5V)
- Pino GND: conecte este pino ao GND (0V)
- Pino TRIG: este pino recebe um pulso de controle do Arduino Nano ESP32.
- Pino ECHO: este pino envia ao Arduino Nano ESP32 um pulso correspondente à distância medida.

image source: diyables.io
Como o Sensor Ultrassônico Funciona
Diagrama de Ligação entre o Sensor Ultrassônico e o Arduino Nano ESP32
- O diagrama de ligação quando a placa Arduino Nano ESP32 é alimentada pela porta USB.

This image is created using Fritzing. Click to enlarge image
- O diagrama de ligação quando a placa Arduino Nano ESP32 é alimentada pelo pino Vin.

This image is created using Fritzing. Click to enlarge image
Como Programar o Sensor Ultrassônico
- Gere um pulso de 10 microssegundos em um pino do ESP32 usando as funções digitalWrite() e delayMicroseconds(). Por exemplo, no pino D2:
digitalWrite(D2, HIGH);
delayMicroseconds(10);
digitalWrite(D2, LOW);
- Meça a duração do pulso (µs) em um pino do ESP32 usando a função pulseIn(). Por exemplo, no pino D3:
duration_us = pulseIn(D3, HIGH);
- Calcule a distância (cm):
distance_cm = 0.017 * duration_us;
Código Arduino Nano ESP32
/*
* Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com
* Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-ultrasonic-sensor
*/
#define TRIG_PIN D2 // The Arduino Nano ESP32 pin connected to Ultrasonic Sensor's TRIG pin
#define ECHO_PIN D3 // The Arduino Nano ESP32 pin connected to Ultrasonic Sensor's ECHO pin
float duration_us, distance_cm;
void setup() {
// begin serial port
Serial.begin (9600);
// Configure the trigger pin to output mode
pinMode(TRIG_PIN, OUTPUT);
// Configure the echo pin to input mode
pinMode(ECHO_PIN, INPUT);
}
void loop() {
// Produce a 10-microsecond pulse to the TRIG pin.
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Measure the pulse duration from the ECHO pin
duration_us = pulseIn(ECHO_PIN, HIGH);
// calculate the distance
distance_cm = 0.017 * duration_us;
// print the value to Serial Monitor
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(500);
}
Passos Rápidos
- Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente do Arduino Nano ESP32 no Arduino IDE.
- Copie o código acima e cole no Arduino IDE.
- Compile e faça o upload do código para a placa Arduino Nano ESP32 clicando no botão Upload do Arduino IDE

- Abra o Serial Monitor no Arduino IDE

- Mova a mão na frente do sensor ultrassônico
- Veja no Serial Monitor a distância do sensor até a sua mão
8
Serial.println("Hello World!");
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
distance: 19.4 cm
distance: 17.6 cm
distance: 16.9 cm
distance: 27.4 cm
distance: 26.9 cm
distance: 24.3 cm
distance: 25.6 cm
distance: 23.1 cm
Explicação do Código Linha por Linha
O código do Arduino Nano ESP32 acima contém uma explicação linha por linha. Leia os comentários no código!
Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico
Veja Como Filtrar o Ruído das Medições de Distância do Sensor Ultrassônico