#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define TRIG_PIN_1 2
#define ECHO_PIN_1 3
#define TRIG_PIN_2 4
#define ECHO_PIN_2 5
#define LED_PIN_1 6
#define LED_PIN_2 7
#define BUZZER_PIN 8
#define SERVO_PIN_1 9
#define SERVO_PIN_2 10
#define SEGMENT_PIN_A 11
#define SEGMENT_PIN_B 12
#define SEGMENT_PIN_C 13
#define SEGMENT_PIN_D 14
#define SEGMENT_PIN_E 15
#define SEGMENT_PIN_F 16
#define SEGMENT_PIN_G 17
Servo servo1;
Servo servo2;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
pinMode(TRIG_PIN_1, OUTPUT);
pinMode(ECHO_PIN_1, INPUT);
pinMode(TRIG_PIN_2, OUTPUT);
pinMode(ECHO_PIN_2, INPUT);
pinMode(LED_PIN_1, OUTPUT);
pinMode(LED_PIN_2, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
servo1.attach(SERVO_PIN_1);
servo2.attach(SERVO_PIN_2);
lcd.init();
lcd.backlight();
}
void loop() {
long duration_1, distance_1;
long duration_2, distance_2;
// Measure distance from the first sensor
digitalWrite(TRIG_PIN_1, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN_1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN_1, LOW);
duration_1 = pulseIn(ECHO_PIN_1, HIGH);
distance_1 = duration_1 * 0.034 / 2;
// Measure distance from the second sensor
digitalWrite(TRIG_PIN_2, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN_2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN_2, LOW);
duration_2 = pulseIn(ECHO_PIN_2, HIGH);
distance_2 = duration_2 * 0.034 / 2;
// Display distances on LCD
lcd.setCursor(0, 0);
lcd.print("Distance 1: ");
lcd.print(distance_1);
lcd.print(" cm");
lcd.setCursor(0, 1);
lcd.print("Distance 2: ");
lcd.print(distance_2);
lcd.print(" cm");
// Control LEDs based on distance
if (distance_1 < 10) {
digitalWrite(LED_PIN_1, HIGH);
} else {
digitalWrite(LED_PIN_1, LOW);
}
if (distance_2 < 10) {
digitalWrite(LED_PIN_2, HIGH);
} else {
digitalWrite(LED_PIN_2, LOW);
}
// Control servos based on distance
int angle1 = map(distance_1, 0, 100, 0, 180);
servo1.write(angle1);
int angle2 = map(distance_2, 0, 100, 0, 180);
servo2.write(angle2);
// Control buzzer based on distance
if (distance_1 < 10 || distance_2 < 10) {
tone(BUZZER_PIN, 1000);
} else {
noTone(BUZZER_PIN);
}
delay(100); // Adjust delay as needed for your application
}