Olá pessoal, vamos fazer agora um sensor de ré que emite um alerta sonoro quando um objeto chega a uma certa distância. Para ficar mais visível iremos utilizar um LCD que nos informará a distância do objeto próximo ao sensor. Os códigos serão todos comentados para melhor entendimento, podendo ser retirados após a compreensão de cada linha. Bom trabalho !!!
COMPONENTES NECESSÁRIOS
1 Arduino Uno R3
1 Protoboard
1 Módulo ultrassônico HC-SRO4
1 LCD (JHD 162A de 16 colunas e 2 linhas) ou outro modelo com back light
2 Potenciômetros de 10 K ohms (Um para o contraste e o outro para a luz de fundo)*
1 Sonorizador piezo
Fios jumpers
* Este modelo que utilizei não possui o back light, porém o projeto foi montado com se tivesse essa função.
Obs.: Verifique a polaridade do sonorizador piezo.
CONECTANDO OS COMPONENTES
Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue o sensor ultrasôncio, o LCD, o piezo, os potenciômetros e os fios e conecte-os como mostra a figura.
Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino e conecte o cabo USB.
AGORA VAMOS AO CÓDIGO
// Projeto 16 - Sensor de ré para automóvel
#include <LiquidCrystal.h> // Biblioteca necessária para iniciar o LCD
#define buzina 6 // Define um variável chamada buzina no pino digital 6
#define trigPin 12
#define echoPin 13
LiquidCrystal lcd(9, 8, 5, 4, 3, 2); // Cria um objeto LCD e atribui os pinos
void setup() {
lcd.begin(12, 6); // Inicializa o LCD
pinMode(buzina, OUTPUT); // Declara o pino 6 como saída
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration, distance;
// Configura o pino 12 com um pulso baixo "LOW" ou desligado ou ainda 0
digitalWrite(trigPin, LOW);
delayMicroseconds(2); // Aguarda 2 microssegundos
// Configura o pino 12 com pulso alto "HIGH" ou ligado ou ainda 1
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Aguarda 10 microssegundos
// Configura o pino 12 com pulso baixo novamente
digitalWrite(trigPin, LOW);
// PulseIn lê o tempo entre a chamada e o pino entrar em High
duration = pulseIn(echoPin, HIGH);
/*Esse calculo é baseado em s = v . t, lembrando que o tempo vem dobrado
porque é o tempo de ida e volta do ultrassom */
distance = ((duration/2) / 29.1);
lcd.clear();
lcd.print("Distancia:");
lcd.print(distance);
lcd.print(" CM");
{
delay(500);
}
// Condição para ativar a buzina quando atingir a distância necessária
if(distance < 30){
digitalWrite(buzina, HIGH); // Pino lógico 6 habilitado (5 Volts)
lcd.setCursor(0,1);
lcd.println("Muito proximo ! ");
}
else
{
digitalWrite(buzina, LOW); // Pino lógico 6 desabilitado (0 Volts)
lcd.setCursor(0,1);
lcd.println("Ainda seguro ! ");
}
delay(500);
}
Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora gire os potenciômetros para regular o contraste e o brilho. Coloque algum objeto próximo ao ultrassônico e quando o objeto chegar ao uma distância inferior a 30 cm o piezo emitirá um som de alerta. Isso tudo você também poderá visualizar no LCD.
fonte: facacomarduino.info