← Todos os projetos
Intermediário ⏱ 60 min 01 de julho de 2026

Sensor de estacionamento com display LCD e LEDs indicadores

Monte um detector de distância completo: um display LCD mostra os centímetros em tempo real, três LEDs funcionam como um semáforo de proximidade (verde, amarelo, vermelho) e um buzzer apita cada vez mais rápido conforme você se aproxima do obstáculo.

Sensor de estacionamento com display LCD e LEDs indicadores

Como funciona

O coração do projeto é o sensor ultrassônico HC-SR04. Ele emite um pulso de som inaudível e mede o tempo até o eco voltar — com esse tempo, o Arduino calcula a distância até o objeto. A cada leitura, o programa acende o LED da faixa correspondente, escreve o valor no display LCD e ajusta a velocidade do bipe. Quanto mais perto, mais rápido o apito.

O que você vai precisar

Todos os componentes disponíveis na A2 Robotics — clique em cada item para comprar

Arduino Uno R3

1 unidade

Ver produto ↗

Sensor ultrassônico HC-SR04

1 unidade

Ver produto ↗

Display LCD 16x2

1 unidade

Ver produto ↗

LED difuso 5mm verde

1 unidade

Ver produto ↗

LED difuso 5mm amarelo

1 unidade

Ver produto ↗

LED difuso 5mm vermelho

1 unidade

Ver produto ↗

Buzzer ativo 5V

1 unidade

Ver produto ↗

Resistor 220Ω (1/4W)

1 unidade (LCD)

Ver produto ↗

Resistor 470Ω (1/4W)

3 unidades (LEDs)

Ver produto ↗

Protoboard 830 pontos

1 unidade

Ver produto ↗

Jumpers (cabos de ligação)

40 cabos

Ver produto ↗

Mapa de pinos

ComponenteLigação no Arduino
HC-SR04 Trig / EchoPinos 7 e 6
LCD (RS,EN,D4,D5,D6,D7)Pinos 12, 11, 5, 4, 3, 2
LEDs verde / amarelo / vermelhoPinos 8 / 9 / 10
BuzzerPino 13

O código

// Sensor de estacionamento com LCD e LEDs — A2 Robotics
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int pinoTrig = 7, pinoEcho = 6;
const int ledVerde = 8, ledAmarelo = 9, ledVermelho = 10;
const int pinoBuzzer = 13;
const int distSegura = 40, distAtencao = 20, distPerigo = 10;
unsigned long ultimoBipe = 0;
int intervaloBipe = 500;
bool estadoBuzzer = false;  // buzzer ligado/desligado

void setup() {
  pinMode(ledVerde, OUTPUT); pinMode(ledAmarelo, OUTPUT); pinMode(ledVermelho, OUTPUT);
  pinMode(pinoBuzzer, OUTPUT); pinMode(pinoTrig, OUTPUT); pinMode(pinoEcho, INPUT);
  lcd.begin(16, 2);
  lcd.print("SENSOR DE RE");
  delay(2000); lcd.clear();
}

void loop() {
  long d = medirDistancia();
  atualizarDisplay(d); atualizarLeds(d); atualizarBuzzer(d);
  delay(100);
}

long medirDistancia() {
  digitalWrite(pinoTrig, LOW); delayMicroseconds(2);
  digitalWrite(pinoTrig, HIGH); delayMicroseconds(10); digitalWrite(pinoTrig, LOW);
  long dur = pulseIn(pinoEcho, HIGH);
  long d = dur * 0.0343 / 2;
  if (d > 200) d = 200; if (d < 0) d = 0;
  return d;
}

void atualizarDisplay(long d) {
  lcd.setCursor(0,0); lcd.print("Dist: "); lcd.print(d); lcd.print(" cm    ");
  lcd.setCursor(0,1);
  if (d > distSegura)       lcd.print("  TUDO CERTO   ");
  else if (d > distAtencao) lcd.print("  DIMINUA...   ");
  else if (d > distPerigo)  lcd.print("  ATENCAO!!!   ");
  else                     lcd.print("  ** PARE! **  ");
}

void atualizarLeds(long d) {
  digitalWrite(ledVerde,    d > distSegura);
  digitalWrite(ledAmarelo,  d <= distSegura && d > distPerigo);
  digitalWrite(ledVermelho, d <= distAtencao);
}

void atualizarBuzzer(long d) {
  // Buzzer ATIVO: liga/desliga com digitalWrite (não usa tone).
  if (d > distSegura) { digitalWrite(pinoBuzzer, LOW); return; }
  if (d > distAtencao)      intervaloBipe = 600;
  else if (d > distPerigo)  intervaloBipe = 250;
  else                     intervaloBipe = 80;
  // Alterna o estado a cada intervalo, criando o bipe intermitente
  unsigned long agora = millis();
  if (agora - ultimoBipe >= intervaloBipe) {
    ultimoBipe = agora;
    estadoBuzzer = !estadoBuzzer;
    digitalWrite(pinoBuzzer, estadoBuzzer);
  }
}

Passo a passo

  1. Monte o sensor HC-SR04

    VCC no 5V, GND no terra, Trig no pino 7 e Echo no pino 6.

  2. Conecte o display LCD

    Pinos RS, EN, D4, D5, D6 e D7 nos pinos 12, 11, 5, 4, 3 e 2.

  3. Instale os LEDs

    Verde no 8, amarelo no 9, vermelho no 10 — cada um com resistor de 470Ω.

  4. Adicione o buzzer ativo

    Respeite a polaridade: o terminal positivo (+) vai no pino 13 e o negativo (−) no GND. O buzzer ativo já tem o som embutido — não precisa de resistor.

  5. Envie o código e teste

    Carregue na IDE do Arduino e aproxime a mão do sensor para ver os LEDs, o LCD e o buzzer reagirem.

Gostou do projeto? Monte o seu Todos os componentes disponíveis com entrega para todo o Brasil
Ver produtos →