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

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

Medir distâncias com precisão em projetos embarcados é um requisito comum, e o sensor ultrassônico HC-SR04 fornece uma solução confiável e de baixo custo. Este tutorial guia você na configuração de um sensor HC-SR04 com um Raspberry Pi Pico usando o Arduino Framework no PlatformIO. Aproveitando o PlatformIO e o PlatformIO Core (CLI), você pode gerenciar de forma eficiente a compilação do seu código, a configuração da placa e o monitoramento serial sem depender da IDE do Arduino mais pesada.

Materiais Necessários

Antes de fazer a ligação dos seus componentes, certifique-se de que você tem o hardware necessário pronto na sua bancada:

  • Raspberry Pi Pico

  • HC-SR04 (versão de 3V–5.5V, também conhecida como HC-SR04P)

Conectando o Sensor

A fiação correta é fundamental para garantir que tanto o Raspberry Pi Pico quanto o HC-SR04 operem com segurança e se comuniquem corretamente. Note que você deve usar a versão do sensor compatível com 3V a 5.5V (HC-SR04P) para que ele possa se comunicar com segurança com os níveis lógicos de 3.3V do Raspberry Pi Pico sem exigir um conversor de nível lógico. Siga as conexões descritas na tabela de fiação abaixo:

Raspberry Pi Pico

HC-SR04

3.3V

VCC

GND

GND

GP17

TRIGGER

GP16

ECHO

Verifique suas conexões físicas com as referências visuais fornecidas abaixo. O primeiro diagrama mostra o esquema da protoboard, enquanto a segunda foto mostra um protótipo físico funcionando.

Diagrama do Fritzing mostrando o HC-SR04 conectado em um Raspberry Pi Pico em uma protoboard. Circuito montado na vida real com o Raspberry Pi Pico e o HC-SR04.

Inicialização do Projeto

Abra o seu terminal e verifique se o seu ambiente reconhece a placa de hardware de destino executando o comando de busca de placas:

pio boards rpipico

Em seguida, crie um diretório de projeto dedicado para o seu workspace, navegue até ele e inicialize um novo projeto do PlatformIO configurado para o framework Arduino:

mkdir hcsr04-pico
cd hcsr04-pico
pio project init --board rpipico --project-option "framework=arduino"

Escrevendo o Código de Firmware

Crie e abra o arquivo de código-fonte principal localizado em src/main.cpp. Preencha-o com o seguinte código do Arduino, que dispara o pulso ultrassônico, mede o tempo de retorno do eco usando a função pulseIn e calcula a distância em centímetros:

src/main.cpp

#include <Arduino.h>

const int trigger = 17;
const int echo = 16;

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);
}

Compilação e Upload

Antes de fazer o upload do firmware compilado para o seu microcontrolador, você precisará colocar o Raspberry Pi Pico no modo BOOTSEL antes de executar este comando. Basta conectar a placa enquanto mantém pressionado o botão BOOTSEL.

pio run -t upload -t monitor

Tutoriais Relacionados

Explore guias adicionais para trabalhar com sensores de distância ultrassônicos em diferentes plataformas e runtimes:

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

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

Aprenda a conectar e programar um sensor ultrassônico de distância HC-SR04 com Raspberry Pi Pico usando MicroPython e funções de pulso temporizado.

Sensor ultrassônico HC-SR04 no ESP32 com Arduino

Sensor ultrassônico HC-SR04 no ESP32 com Arduino

Aprenda a conectar e programar um sensor ultrassônico de distância HC-SR04 com uma placa ESP32 usando o framework Arduino e PlatformIO.

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.