Sensor de Estacionamento DIY com Arduino UNO e Sensores Ultrassônicos HC-SR04
Componentes e Materiais
| Arduino UNO | 1 |
| Sensor Ultrassônico HC-SR04 (genérico) | 3 |
| Mini Displays de Bateria (baseados no chip TM1651) | 2 |
Sobre o Projeto
Este projeto é um Sensor de Estacionamento DIY (Radar de Estacionamento), muito fácil de fazer, baseado no sensor ultrassônico HC-SR04. Uso 3 sensores: um para cada lado e um para o meio, além de 2 mini displays de bateria (originalmente feitos para mostrar estado da bateria, mas aqui usados para mostrar distância entre sensores e obstáculos, dependendo do lado). Também depende da distância máxima configurada: acima dela considera-se espaço suficiente sempre; abaixo, os displays mudam conforme a distância e sua direção.

Peças
Estas são as peças usadas, pode adicionar alguns jumpers e protoboard se quiser. (O display de bateria usa chip TM1651)




Funcionamento
Há 3 módulos ultrassônicos: Direito, Central e Esquerdo, e dois displays: Direito e Esquerdo. O sensor central pode afetar ambos displays, mas os dois laterais afetam apenas seus respectivos lados.
Exemplo: há dois obstáculos, um no lado direito e um no central. O código pega o mais próximo para mostrar no display.
- Se o central for o mais próximo, ambos displays mudam conforme sua distância.
- Se o lado direito for o mais próximo, o display direito muda e fica menor que o esquerdo.
Há uma distância máxima configurável no código. Acima dela é considerado seguro e o display acende totalmente. Abaixo, os displays mudam proporcionalmente à distância máxima.
Exemplos
Casos para facilitar entendimento:




O último caso ocorre se houver obstáculos no central e direito (direito mais próximo) ou no esquerdo e direito (direito mais próximo), ou em todos lados mas direito mais próximo.
Melhorias
- Adicionar mais sensores para cobrir área maior
- Adicionar tela para mostrar valor da distância
- Trocar sensores por versões à prova d'água como JSN SR-04
- Adicionar som
Código
Parking_sensor_v1.ino (Arduino)
/* Código para trabalhar com módulos ultrassom HC-SR04 x3 e display bateria TM1651 x2
* Projeto: sensor de estacionamento que mostra quão perto estão obstáculos e de qual lado
* dependendo da Maxdistance que acima dela display mostra como distância segura
* abaixo começa a mudar
* Referência: www.SurtrTech.com para mais detalhes */
#include <TM1651.h>
#define CLK 3 // Display direito
#define DIO 2
#define CLK2 5 // Display esquerdo
#define DIO2 4
#define trigPin 6 // Módulos ultrassom R=Direito L=Esquerdo o outro é central
#define echoPin 7
#define trigPinR 8
#define echoPinR 9
#define trigPinL 10
#define echoPinL 11
#define Maxdistance 20 // Distância máxima 20cm
long duration;
int distance;
TM1651 DisplayR(CLK, DIO);
TM1651 DisplayL(CLK2, DIO2);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
DisplayR.init();
DisplayR.set(BRIGHTEST);
DisplayL.init();
DisplayL.set(BRIGHTEST);
}
void loop() {
int distanceM = CDistance(trigPin, echoPin);
int distanceR = CDistance(trigPinR, echoPinR);
int distanceL = CDistance(trigPinL, echoPinL);
int R = min(distanceM, distanceR); // Mínimo entre central/direito
int L = min(distanceM, distanceL); // Mínimo entre central/esquerdo
if (R > 0 && R < Maxdistance) {
short LevelR = map(R, 0, Maxdistance, 0, 7); // Escala 0-20 para 0-7
DisplayR.displayLevel(LevelR);
}
if (R > Maxdistance) DisplayR.displayLevel(7); // Seguro
if (L > 0 && L < Maxdistance) {
short LevelL = map(L, 0, Maxdistance, 0, 7);
DisplayL.displayLevel(LevelL);
}
if (L > Maxdistance) DisplayL.displayLevel(7);
delay(50);
}
int CDistance(int a, int b) {
digitalWrite(a, LOW);
delayMicroseconds(2);
digitalWrite(a, HIGH);
delayMicroseconds(10);
digitalWrite(a, LOW);
duration = pulseIn(b, HIGH);
distance = duration * (0.034 / 2);
return distance;
}
Biblioteca Display Bateria TM1651
A biblioteca facilita muito o trabalho:
https://github.com/ne0x/fuel_display
Esquemáticos

Processo de manufatura
- Sensores de Radar Explicados: Como Funcionam e Suas Aplicações Modernas
- Como Funcionam Sensores de Estacionamento e Suas Principais Aplicações
- Entendendo o Sensor de Oxigênio (O2): Função, Localização e Sinais de Falha
- Mouser Apresenta Tecnologias Avançadas de Sensores na Sensors Expo 2019
- Ambarella adquire Oculii por US$ 307,5 milhões, expandindo radar e fusão de sensores para veículos autônomos
- Controle um LED com Sensor de Movimento PIR no Raspberry Pi
- Construa um Sensor de Umidade do Solo de Baixo Custo para Irrigação Inteligente com Raspberry Pi
- Construa Monitor de Temperatura Doméstico com Raspberry Pi, MCP9808, InfluxDB e Grafana
- Integrando Radar Pulsado Acconeer A111 com Raspberry Pi: Guia Prático
- Sensor de Emoção & EEG: Hardware de Baixo Custo para Detecção de Emoções em Tempo Real