#include <ESP32Servo.h>
Servo gate;
#define TRIG 5
#define ECHO 18
#define LED 2
#define SERVO_PIN 19
long duration;
float distance;
void setup() {
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(LED, OUTPUT);
gate.attach(SERVO_PIN);
gate.write(0);
Serial.begin(115200);
}
float getDistance() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO, HIGH);
return duration * 0.034 / 2;
}
void loop() {
distance = getDistance();
if(distance < 20){
digitalWrite(LED,HIGH);
gate.write(90);
delay(5000);
if(getDistance() > 20){
gate.write(0);
}
digitalWrite(LED,LOW);
}
delay(100);
}