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 !!!
// 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; // http://arduino.cc/en/Reference/Long
digitalWrite(trigPin, LOW); // Configura o pino 12 com um pulso baixo "LOW" ou desligado ou ainda 0
delayMicroseconds(2); // Aguarda 2 microssegundos
digitalWrite(trigPin, HIGH); // Configura o pino 12 com pulso alto "HIGH" ou ligado ou ainda 1
delayMicroseconds(10); // Aguarda 10 microssegundos
digitalWrite(trigPin, LOW); // Configura o pino 12 com pulso baixo novamente
duration = pulseIn(echoPin, HIGH); // PulseIn lê o tempo entre a chamada e o pino entrar em 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);
}