#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int trigger = 9;
const int echo = 10;
const int buzzer = 11;
const int led = 13;
void setup() {
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
lcd.init(); // Initialize the LCD
lcd.backlight(); // Turn on the backlight
}
void loop() {
digitalWrite(trigger, LOW);
delayMicroseconds(5);
digitalWrite(trigger, HIGH);
delayMicroseconds(13);
digitalWrite(trigger, LOW);
long duration = pulseIn(echo, HIGH);
long distance = (duration * 0.0343) / 2;
Serial.print("Sensor Distance: ");
Serial.println(distance);
//Distance = (Time x SpeedOfSound) / 2.
//Sound travels about 0.0343 CM per microsecond so multiply the duration by 0.0343 to get round-trip (out and back) centimeters.
//1 m/s = 100/1000000 = 0.0001 cm/μs
//343 m/s = 0.0001 * 343 = 0.0343 cm/μs
if (distance < 40) {
Serial.print("OBSTACLE DETECTED \n");
tone(buzzer, 1000);
} else {
noTone(buzzer);
}
if(distance>40){
Serial.print("NO OBSTACLE DETECTED \n");
digitalWrite(led, HIGH);
}
else{
digitalWrite(led, LOW);
}
lcd.setCursor(0, 0);
lcd.print("OBJ DISTANCE ");
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.setCursor(4, 1);
lcd.print("cm");
delay(500);
}
/* if (distance < 75) {
tone(buzzer, 1000);
} else {
noTone(buzzer);
}
if(distance>75){
digitalWrite(led, HIGH);
}
else{
digitalWrite(led, LOW);
}
lcd.setCursor(0, 0);
lcd.print("distance");
lcd.setCursor(0, 1);
lcd.print(distance);
delay(500);
}
*/