#include <LiquidCrystal.h>

// Define pins for ultrasonic sensor
const int trigPin = 34;
const int echoPin = 35;

// Define pins for LCD
const int rs = 32, en = 32, d4 = 0, d5 = 1, d6 = 2, d7 = 3;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  // Initialize LCD
  lcd.begin(20, 4);
  
  // Initialize serial communication
  Serial.begin(9600);
  
  // Set ultrasonic sensor pins
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  // Send ultrasonic pulse
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  // Read time taken for the pulse to return
  long duration = pulseIn(echoPin, HIGH);
  
  // Convert time to distance (in cm)
  float distance = duration * 0.034 / 2;
  
  // Print distance to serial monitor
  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");
  
  // Display distance on LCD
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
  lcd.print(distance);
  lcd.print(" cm");
  
  delay(1000);
}