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.
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
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
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
Aprenda a conectar um sensor de distância ultrassônico HC-SR04 a uma STM32 BlackPill usando o framework Arduino e o PlatformIO.