#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Pin definitions for ultrasonic sensor
const int trigPin = 12; // Trigger pin
const int echoPin = 14; // Echo pin
// Pin definitions for LCD
const int lcdColumns = 16;
const int lcdRows = 2;
const int lcdAddress = 0x27; // I2C address
const int lcdBacklight = 0x08; // Backlight control bit
LiquidCrystal_I2C lcd(lcdAddress, lcdColumns, lcdRows);
void setup() {
// Initialize serial communication
Serial.begin(9600);
// Initialize LCD
lcd.init();
lcd.backlight();
lcd.clear();
// Initialize ultrasonic sensor pins
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Trigger ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure echo pulse duration
long duration = pulseIn(echoPin, HIGH);
// Calculate distance in centimeters
float distance_cm = duration * 0.034 / 2;
// Print distance to serial monitor
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
// Print distance to LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Distance:");
lcd.setCursor(0, 1);
lcd.print(distance_cm);
lcd.print(" cm");
delay(1000); // Delay between measurements
}