#include <Ultrasonic.h>
#include <ESP32Servo.h>
const int trigPin = 12; // Trigger pin of the ultrasonic sensor
const int echoPin = 14; // Echo pin of the ultrasonic sensor
const int led1 = 2; // LED pin
const int led2 = 15; // LED pin
const int led3 = 4; // LED pin
const int led4 = 16; // LED pin
const int led5 = 17; // LED pin
const int led6 = 5; // LED pin
const int led7 = 18; // LED pin
const int servoPin = 27; // Servo motor pin
Ultrasonic ultrasonic(trigPin, echoPin);
Servo myServo;
void setup() {
Serial.begin(115200);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(led6, OUTPUT);
pinMode(led7, OUTPUT);
myServo.attach(servoPin);
}
void loop() {
// Measure distance using the ultrasonic sensor
int distance = ultrasonic.read();
// Print distance to Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Check if distance is less than 50cm
if (distance > 300 && distance <= 350) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
// Trigger Servo motor
myServo.write(45); // Assuming 90 degrees is the desired position
}
else if (distance > 250 && distance <= 300) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
else if (distance > 200 && distance <= 250) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
// Trigger Servo motor
myServo.write(90); // Assuming 90 degrees is the desired position
}
else if (distance > 150 && distance <= 200) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
else if (distance > 100 && distance <= 150) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
// Trigger Servo motor
myServo.write(135); // Assuming 90 degrees is the desired position
}
else if (distance > 50 && distance <= 100) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, LOW);
}
else if (distance <= 50) {
// Trigger LED
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
digitalWrite(led5, HIGH);
digitalWrite(led6, HIGH);
digitalWrite(led7, HIGH);
// Trigger Servo motor
myServo.write(180); // Assuming 90 degrees is the desired position
}
else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
digitalWrite(led5, LOW);
digitalWrite(led6, LOW);
digitalWrite(led7, LOW);
}
delay(500); // Add a small delay for stability
}