Código Arduino e vídeo para o sensor de distância ultrassônico HC-SR04 com display OLED SSD1306

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.

How HC-SR04 ulrasonic sensor work
SSD1306 OLED display

À 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

FabricanteDiversos
Número da peçaHC-SR04
Tensão lógica/E/S5 V
Tensão de alimentação5 V
Corrente de saída (por canal)15 mA
Corrente de pico (por canal)20 mA
Orientação sobre a frequência PWMNão aplicável
Limiares de lógica de entrada0.3*Vcc a 0.7*Vcc
Queda de tensão / RDS(on)/ saturaçãoNão aplicável
Limites térmicos0-70 °C
Pacotemódulo de 4 pinos
Notas / variantesMó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

Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED

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

Imagens

HC-SR04 ulrasonic sensor
HC-SR04 ulrasonic sensor
How HC-SR04 ulrasonic sensor work
How HC-SR04 ulrasonic sensor work
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
Arduino wiring for HC-SR04 ultrasonic SSD1306 128x64 OLED
SSD1306 OLED display
SSD1306 OLED display
SSD1306 OLED display-dimensions
SSD1306 OLED display-dimensions
SSD1306_128x64_OLDE-4
SSD1306_128x64_OLDE-4
SSD1306 OLED display-back
SSD1306 OLED display-back
44-This is the Arduino code for an HC-SR04 ultrasonic distance sensor with an SSD1306 display.
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.