#define TRIG_PIN 5
#define ECHO_PIN 18
#define BUZZER_PIN 23
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Reverse Dist");
}
void loop() {
long duration, distance;
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN,HIGH);
distance = duration*0.034/2;
Serial.print("Distance:");
Serial.print(distance);
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print("meters ");
if (distance<50 && distance>0){
long beepDuration = map(distance, 0, 50,50, 500);
tone(BUZZER_PIN, 1000, beepDuration);
delay(beepDuration +200);
}else{
noTone(BUZZER_PIN);
delay(500);
}
delay(10); // this speeds up the simulation
}