O Projeto Sensor de Estacionamento Arduino com Sensor Ultrassônico é mais uma possibilidade de aplicação do incrível e prático módulo HC-SR04 em conjunto com o microcontrolador Arduino.
Sensores de estacionamento são sensores de proximidade para veículos, projetados para alertar o motorista sobre obstáculos durante o estacionamento. Esses sistemas usam sensores eletromagnéticos ou ultrassônicos.
No entanto, os mais comuns são detectores de proximidade ultrassônicos que fazem o papel de medir as distâncias a objetos próximos por meio de sensores localizados no para-choque dianteiro e / ou traseiro.
Sendo assim, neste tutorial você irá aprender a construir algo parecido com o sensor de estacionamento de carros e utilizando 3 tipos de componentes diferentes para se comunicar com a placa UNO. Veja só a imagem abaixo:
Para isso, temos diversas maneiras diferentes para calcular distâncias com a placa microcontroladora no projeto Sensor de Estacionamento Arduino. Uma delas é através do sensor infravermelho, que usa as propriedades da luz para calcular a distância.
Já a segunda maneira e a que iremos aplicar neste projeto, é a de utilizar o sensor ultrassônico, que usa as propriedades de propagação do som, mais especificamente o ultrassom, para medir distâncias.
OBS: Esses tipos de ondas sonoras estão acima do espectro audível para humanos.
A operação é muito simples. O sensor envia uma onda ultrassônica através do trigger, ricocheteia no objeto e o receptor ou echo detecta a onda. Sabendo quanto tempo essa onda levou para viajar, podemos obter a distância.
Por fim, incorporamos ao projeto Sensor de Estacionamento Arduino o sistema de alerta visual com o uso de 4 LED’s vermelhos que irá nos permitir ver se estamos longe, perto ou em uma zona de perigo de um obstáculo. Os LED’s acendem a uma distância de 30cm, 20cm, 10c, e 5cm respectivamente.
Já para um alerta sonoro utilizaremos o buzzer.
Existem dois tipos desse componente: o buzzer ativo e o buzzer passivo. No nosso caso, iremos utilizar o buzzer ativo e ele será programado para aumentar a frequência gradualmente conforme o objeto for se aproximando do sensor.
O buzzer ativo funciona a partir do efeito piezoelétrico reverso. Conectando o componente em uma porta digital, basta apenas enviar um sinal em nível lógico alto para fazer o componente apitar.
Já o buzzer passivo requer um sinal AC para fazer um som. É como um alto-falante eletromagnético, em que uma mudança no sinal de entrada produz o som, em vez de produzir um tom automaticamente.
Para identificá-los, basta aplicar uma tensão DC no componente e caso um deles zumbir, significa que é um ativo.
Ou senão, veja a diferença abaixo para saber identifica-los melhor:
Observe que este componente possui apenas 2 terminais, um é o negativo, o outro é o positivo que vai ligado no pino digital do Arduino. Para saber mais sobre este componente e como construir circuitos com o Arduino de forma simples, acesse o curso e se torne um especialista na plataforma.
Montagem do Sensor de Estacionamento
Para construir o projeto deste tutorial você irá precisar de:
- 4x LED’s Vermelhos;
- 4x Resistores de 330 Ohms;
- 1x Buzzer Ativo;
- 1x Sensor Ultrassônico;
- 1x Arduino UNO;
- 1x Protoboard 400 Pontos;
- Alguns Jumpers;
No diagrama a seguir as conexões com os componentes pode ser observada melhor onde, por um lado, estão os componentes responsáveis pelo alerta sonoro (buzzer) e visual (LED’s) e, por outro lado, o sensor de ultrassom:
Se atente aos componentes e suas conexões:
- Os LED’s vermelhos são conectados na seguinte ordem crescente de pinos digitais do Arduino: D6, D7, D8 e D9, lembrando que é necessário ter resistores nesses pinos para diminuir o risco de queimar os componentes;
- Conectamos o sensor ultrassônico em dois pinos digitais do Arduino: um para o trigger (pino 10) e outro para o echo (pino 11), e;
- O buzzer ativo conectamos no Arduino através do pino 3.
Para fazer a alimentação de todo o circuito elétrico do Sensor de Estacionamento Arduino você pode utilizar o próprio cabo USB do Arduino, uma bateria ou até mesmo uma Fonte de Alimentação 9V. Atente-se em utilizar uma boa fonte para evitar choques elétricos indesejáveis. É importante que neste caso a instalação elétrica de sua casa esteja aparelhada com equipamentos de proteção como dispositivo protetor de surto ou dispositivo diferencial residual.
Código do Projeto Sensor de Estacionamento Arduino
Após conhecer melhor sobre o funcionamento do sensor ultrassônico e do restante dos componentes do projeto, agora você escreverá um programa que irá ler constantemente as informações do sensor ultrassônico e, de acordo com a distância medida pelo sensor, os LED’s vermelhos irão acendendo de forma progressiva enquanto que o buzzer irá aumentando a frequência do tom.
Para que isso aconteça você vai usar as condições seguintes:
- Se a distância estiver entre 30 cm e 20 cm, o LED 1 irá acender e o Buzzer irá apitar a uma frequência de 1500 Hz;
- Se a distância estiver entre 20 cm e 10 cm, o LED 2 irá acender e o Buzzer irá apitar a uma frequência de 2000 Hz;
- Se a distância estiver entre 10 cm e 5 cm, o LED 3 irá acender e o Buzzer irá apitar a uma frequência de 2750 Hz;
- Se a distância estiver abaixo de 5 cm, o LED 4 irá acender e o Buzzer irá apitar a uma frequência de 3000 Hz;
Veja só o código na íntegra:
[crayon-673f53d6ef1d0438568665/]
Código comentado passo a passo
[crayon-673f53d6ef1d6547648278/]
É preciso que nas primeiras linhas de código identifiquemos as portas de cada componente eletrônico conectado ao Arduino. Para isso, usamos o #define e na frente identificamos qual é o componente e qual é a porta que está conectado.
[crayon-673f53d6ef1d8380635703/]
Utilizamos as próximas linhas para declarar variáveis de leitura para a velocidade do som e a distância limite para o sensor detectar e acionar os LED’s e o buzzer.
[crayon-673f53d6ef1d9484528015/]
Já dentro do void setup() inicializamos a comunicação serial na velocidade de 9600 bits por segundo e após, definimos cada componente sua respectiva função: se é de saída ou se é de entrada no código.
No caso do sensor ultrassônico, o pino ECHO é de entrada pois recebe a onda que é transmitida pelo ECHO, que é de saída.
[crayon-673f53d6ef1da036557750/]
Finalizamos o setup chamando uma função que será escrita posteriormente no código. Seu objetivo é garantir que os LED’s estarão apagados quando iniciarmos o loop.
[crayon-673f53d6ef1db202461087/]
Iremos trabalhar somente com a chamada de funções aqui no void loop(). Assim, o código fica mais enxuto e sua lógica fica mais inteligente.
Ou seja, para que a onda ultrassônica seja emitida, primeiros precisamos acionar o Trigger de acordo com a função abaixo:
[crayon-673f53d6ef1dc444627400/]
A lógica é bastante simples aqui pois fazemos com que o Trigger desligue e ligue em intervalos de tempo específicos para que as ondas sejam coletadas pelo ECHO.
Por conseguinte, está presente no código a lógica que faz essa coleta das ondas e após, efetua o cálculo da distância, veja:
[crayon-673f53d6ef1dd535716783/]
A função retorna o valor encontrado em centímetros e exibe na tela do monitor serial este valor.
Então, o valor fica armazenado na variável distancia para que ela seja processada pelo microcontrolador do Arduino e assim ligar ou desligar os LED’s bem como o buzzer.
O próximo passo dentro do loop, é novamente utilizar a função de desligarleds que está representada abaixo:
[crayon-673f53d6ef1de739137752/]
Essa função nada mais é do que usar o comando digitalWrite para colocar em estado de nível lógico baixo os LED’s do sensor de estacionamento garantido que eles estejam apagados.
O último passo do nosso loop está em definir uma condição que irá verificar se a distância está abaixo do valor limite1. Se sim, então a função de alerta é chamada para acionar os LED’s e o buzzer.
Veja o código principal do projeto Sensor de Estacionamento Arduino que contém a lógica comentada para cada distância limite e explica como é feito o acionamento dos LED’s de forma progressiva.
Projeto Sensor de Estacionamento Finalizado
Após ter seguido esse passo a passo aqui do tutorial do sensor de estacionamento, você terá algo parecido com o vídeo abaixo:
Caso queira alterar o modo como o buzzer emite o ruído, você pode ir nesta parte do código: tone(BUZZER, 1500, 50) e variar a frequência que está em “1500” de forma a deixar o som mais agudo ou mais grave e mudar a duração do tom que está em “50”. Esta última é dada em milissegundos.
O que você achou deste tutorial? Gostou? Então não esqueça de deixar sua opinião nos comentários abaixo!