#include <ESP32Servo.h>
const byte led = 15;
const byte servoPin = 21;
const byte trig = 13;
const byte echo = 12;
bool flag = true;
Servo servo;
void setup() {
Serial.begin(9600);
servo.attach(servoPin);
pinMode(led, OUTPUT);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
servo.write(0);
digitalWrite(led, LOW);
digitalWrite(trig, LOW);
}
void loop() {
long int dist = getDist();
if (dist <= 10) {
if (flag) {
servo.write(180);
digitalWrite(led, HIGH);
delay(1000);
flag = false;
} else {
servo.write(0);
digitalWrite(led, LOW);
}
} else {
servo.write(0);
digitalWrite(led, LOW);
flag = true;
}
delay(100);
}
int getDist() {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
long int dur = pulseIn(echo, HIGH);
long int dist = dur * 0.017;
return dist;
}