#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display
int buzzer = 4;
int trigPin = 8;
int echoPin = 9;
int red = 3;
int green = 2;
//define variable
long duration;
int distance;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Reverse system");
delay(2000);
}
void loop() {
// put your main code here, to run repeatedly:
//Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
//Set the trigPin on HIGH for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
//Calculate the distance
distance = duration*0.034/2;
if (distance <= 50){
tone(buzzer,1250);
digitalWrite(red, HIGH);
digitalWrite(green, LOW);
lcd.setCursor(0,0);
lcd.print(" DISTANCE: ");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print(" Warning! ");
delay(500);
noTone(buzzer);
delay(500);
}
else{
noTone(buzzer);
digitalWrite(red, LOW);
digitalWrite(green, HIGH);
lcd.setCursor(0,0);
lcd.print(" DISTANCE: ");
lcd.print(distance);
lcd.print("cm");
lcd.setCursor(0,1);
lcd.print(" Safe distance. ");
}
}