#include <Servo.h>

const int trigPin = 2;  // Ultrasonic sensor trig pin
const int echoPin = 3; // Ultrasonic sensor echo pin
const int servo1Pin = 10; // Servo 1 pin
const int servo2Pin = 9; // Servo 2 pin

Servo servo1;
Servo servo2;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  servo1.attach(servo1Pin);
  servo2.attach(servo2Pin);
}

void loop() {
  long duration, distance;
  
  // Trigger the ultrasonic sensor to send a pulse
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Measure the pulse duration on the echo pin
  duration = pulseIn(echoPin, HIGH);

  // Calculate the distance in cm
  distance = duration / 58;

  Serial.print("Distance: ");
  Serial.print(distance);
  Serial.println(" cm");

  // Move servos in opposite directions based on distance
  if (distance <= 20) {
    // If obstacle is close, move servo1 to 90 degrees and servo2 to 0 degrees
    servo1.write(90);
    servo2.write(0);
  } else {
    // If no obstacle, move servo1 to 0 degrees and servo2 to 90 degrees
    servo1.write(0);
    servo2.write(90);
  }

  delay(100);  // Delay for stability
}
