Sensor ultrassônico HC-SR04 no ESP32 com Arduino

Tutoriais Sistemas Embarcados
Sensor ultrassônico HC-SR04 no ESP32 com Arduino

Medir distâncias com precisão usando módulos ultrassônicos é um requisito comum em projetos de sistemas embarcados e robótica. Combinando um microcontrolador ESP32 com um sensor HC-SR04, você pode construir detectores de proximidade confiáveis e sistemas de desvio de obstáculos. Este tutorial guia você na configuração do seu espaço de trabalho, na conexão correta dos componentes e na escrita do código necessário usando o ecossistema PlatformIO executando o Arduino Framework no PlatformIO gerenciado através do PlatformIO Core (CLI).

Materiais necessários

Antes de começar a montar o hardware, certifique-se de reunir todos os componentes necessários na sua bancada. Você pode obter seu hardware usando os seguintes links:

Conectando o sensor ao ESP32

A fiação correta é fundamental para evitar danos ao hardware, especialmente porque algumas variantes mais antigas do sensor ultrassônico operam estritamente em lógica de 5V. Para este tutorial, certifique-se de usar uma versão que suporte tensões lógicas menores ou faça o nível lógico adequado dos seus sinais. Conecte os pinos de acordo com a tabela de conexões fornecida abaixo:

ESP32

HC-SR04

3.3V

Vcc

GND

Gnd

D22

Trig

D23

Echo

Diagrama de conexões do sensor HC-SR04 com a placa ESP32. Montagem do HC-SR04 com ESP32 na protoboard.

Inicialização do projeto via terminal

Abra sua interface de linha de comando para configurar o espaço de trabalho do seu projeto. Você pode inspecionar os alvos de placas ESP32 disponíveis usando a ferramenta de linha de comando:

pio boards esp32

Crie um diretório dedicado para os arquivos do seu projeto, acesse-o e inicialize o projeto PlatformIO configurando o framework e a baud rate do monitor serial:

mkdir hcsr04-esp32
cd hcsr04-esp32
pio project init --board esp32doit-devkit-v1 --project-option "framework=arduino" --project-option "monitor_speed=115200"

Programando o ESP32

Navegue até a pasta de código-fonte do seu projeto e abra o arquivo principal para inserir a lógica da aplicação. Crie ou atualize o conteúdo de src/main.cpp com a implementação abaixo, que dispara o pulso ultrassônico e calcula a distância com base na duração do pulso de eco:

#include <Arduino.h>

const int trigger = 22;
const int echo = 23;

void setup() {
    Serial.begin(115200);

    pinMode(trigger, OUTPUT);
    pinMode(echo, INPUT);
}

void loop() {
    digitalWrite(trigger, LOW);
    delayMicroseconds(2);

    digitalWrite(trigger, HIGH);
    delayMicroseconds(10);
    digitalWrite(trigger, LOW);

    long duration = pulseIn(echo, HIGH, 30000);

    if (duration > 0) {
        Serial.printf("Distance: %.2f cm\n", (duration * 0.0343) / 2.0);
    } else {
        Serial.println("Reading error");
    }

    delay(1000);
}

Compilando e gravando o firmware

Assim que o código estiver pronto, compile o projeto, faça o upload do binário resultante para o seu microcontrolador e abra o monitor serial para visualizar as leituras de distância em tempo real usando um único comando:

pio run -t upload -t monitor

Tutoriais relacionados

Se você quiser explorar firmwares ou plataformas de hardware alternativas, confira estes guias relacionados:

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython

Sensor ultrassônico HC-SR04 no ESP32 com MicroPython

Aprenda a conectar e programar um sensor ultrassônico HC-SR04 com um microcontrolador ESP32 usando MicroPython e scripts de medição de distância.

Sensor ultrassônico HC-SR04 no STM32 com Arduino

Sensor ultrassônico HC-SR04 no STM32 com Arduino

Sensor ultrassônico HC-SR04 no STM32 com Arduino

Aprenda a conectar um sensor de distância ultrassônico HC-SR04 a uma STM32 BlackPill usando o framework Arduino e o PlatformIO.

Sensor ultrassônico HC-SR04 no RPi Pico com Arduino

Sensor ultrassônico HC-SR04 no RPi Pico com Arduino

Sensor ultrassônico HC-SR04 no RPi Pico com Arduino

Aprenda a conectar o sensor ultrassônico HC-SR04 a um Raspberry Pi Pico usando o framework Arduino e o PlatformIO.