#include <ESP32Servo.h>
#define TRIG_PIN 5
#define ECHO_PIN 18
#define SERVO_PIN 13
#define BUZZER_PIN 27
#define LED_G_PIN 22
#define LED_R_PIN 23
Servo myServo;
long duration;
float distance;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_G_PIN, OUTPUT);
pinMode(LED_R_PIN, OUTPUT);
myServo.attach(SERVO_PIN);
myServo.write(0);
}
void loop() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration = pulseIn(ECHO_PIN, HIGH, 30000);
if (duration == 0) {
Serial.println("No object");
return;
}
distance = duration * 0.034 / 2;
Serial.println(distance);
if (distance > 0 && distance < 20) {{
myServo.write(90);
tone(BUZZER_PIN, 1000);
digitalWrite(LED_G_PIN,LOW);
for (int i = 0; i < 5; i++) {
digitalWrite(LED_R_PIN, HIGH);
delay(50);
digitalWrite(LED_R_PIN, LOW);
delay(50);
}
} }else if (distance >= 25) {
myServo.write(0);
noTone(BUZZER_PIN);
digitalWrite(LED_G_PIN,HIGH);
digitalWrite(LED_R_PIN,LOW);
}
delay(300);
}