Código Arduino e vídeo para o sensor de distância ultrassônico HC-SR04 com display OLED SSD1306
Neste tutorial, vamos demonstrar como usar o sensor de distância ultrassônico HC-SR04 em conjunto com o display OLED SSD1306 para visualizar medições de distância. Este projeto permite medir distâncias sem a necessidade de um computador, tornando-o ideal para várias aplicações, incluindo robótica. Ao final deste projeto, você terá uma montagem funcional que exibe as leituras de distância diretamente na tela OLED.


À medida que avançamos, vou explicar as conexões de fiação necessárias para ambos os componentes e fornecer um passo a passo do código Arduino que integra esses componentes. Isso ajudará você a entender como o sensor mede a distância e como apresentar esses dados no display OLED. Para mais esclarecimentos, você pode consultar o vídeo associado a este tutorial (no vídeo em 00:00).
Hardware explicado
Os principais componentes deste projeto são o sensor de distância ultrassônico HC-SR04 e o display OLED SSD1306. O HC-SR04 funciona usando ondas ultrassônicas; ele emite um pulso ultrassônico pelo pino de disparo e escuta o eco no pino de eco. Ao calcular o tempo que o som leva para retornar, ele pode determinar a distância até um objeto. Este sensor é muito eficaz para medições de curto alcance, tipicamente até 400-500 cm.
O display OLED SSD1306 é um display com interface I2C que permite exibir texto e gráficos. Ele se comunica por meio de dois pinos: SDA (linha de dados) e SCL (linha de clock). Na nossa configuração, esses pinos se conectam a pinos específicos do Arduino, permitindo integração e controle fáceis.
Detalhes da ficha técnica
| Fabricante | Diversos |
|---|---|
| Número da peça | HC-SR04 |
| Tensão lógica/E/S | 5 V |
| Tensão de alimentação | 5 V |
| Corrente de saída (por canal) | 15 mA |
| Corrente de pico (por canal) | 20 mA |
| Orientação sobre a frequência PWM | Não aplicável |
| Limiares de lógica de entrada | 0.3*Vcc a 0.7*Vcc |
| Queda de tensão / RDS(on)/ saturação | Não aplicável |
| Limites térmicos | 0-70 °C |
| Pacote | módulo de 4 pinos |
| Notas / variantes | Módulo padrão |
- Garanta alimentação adequada (5 V) para ambos os componentes.
- Use resistores pull-up se necessário para a comunicação I2C.
- Mantenha as linhas de trigger e echo curtas para evitar interferência.
- Verifique a orientação do sensor ultrassônico para leituras precisas.
- Use uma superfície estável para a tela para evitar vibrações mecânicas.
Instruções de fiação

Para conectar o sensor ultrassônico HC-SR04, comece ligando o pino VCC (geralmente vermelho) ao pino 5V do Arduino. Em seguida, conecte o pino GND (normalmente preto ou amarelo) a um dos pinos GND do Arduino. O pino trigger (frequentemente azul) deve ser ligado ao pino digital 12 do Arduino, enquanto o pino echo (geralmente verde) deve ser conectado ao pino digital 11.
Para o display OLED SSD1306, conecte o pino VCC ao pino 5V do Arduino e o pino GND ao pino GND. O pino SCL deve ser conectado ao pino A5 e o pino SDA ao pino A4 do Arduino. Se você estiver usando um modelo diferente de Arduino que possua pinos I2C dedicados, conecte o display diretamente a esses pinos em vez disso.
Exemplos de Código e Tutorial Passo a Passo
Na função setup, inicializamos o display e a comunicação serial. O trecho a seguir demonstra como o display é configurado:
void setup() {
Serial.begin(9600);// set serial monitor with 9600 baud
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D
}Aqui, o display é inicializado com o endereço I2C, permitindo que ele se comunique com o Arduino. O monitor serial também é configurado para imprimir os valores de distância.
No loop principal, limpamos a tela, medimos a distância e a exibimos. O trecho de código a seguir mostra como lidamos com a medição da distância:
void loop() {
display.clearDisplay();
String distance = String(sonar.ping_cm());// get distance and convert it to string for display
robojaxText(distance +"cm", 3, 20, 3, false);
display.display();
delay(50); // Wait 50ms between pings
}Este loop mede continuamente a distância e atualiza o display com a leitura atual. A função robojaxText é usada para exibir o texto na tela OLED.
Demonstração / O que esperar
Quando a configuração estiver concluída e o código for carregado, você deverá ver a distância exibida na tela OLED em centímetros. Ao aproximar ou afastar um objeto do sensor, o valor exibido deverá mudar de acordo. Certifique-se de que o sensor esteja orientado corretamente e não esteja obstruído (no vídeo em 02:30).
Marcadores de tempo do vídeo
- 00:00- Introdução ao projeto
- 01:15- Instruções de fiação
- 02:30- Explicação do código
- 04:00- Demonstração do sensor
Recursos e referências
-
ExternoBiblioteca Ultrassônica HC-SR04 do site oficial do Arduinoplayground.arduino.cc
Arquivos📁
Nenhum arquivo disponível.