#include <Servo.h>
const int trigPin1=;
const int echoPin1=;
const int trigPin2=;
const int echoPin2=;
const int trigPin3=;
const int echoPin3=;
bool gateStat;
const int redled=;
const int greenled=;
const thresholddist=20;
const gateDist=30;
const int servoPin=;
Servo myservo;
void gate();
void compInitialize();
float distMasure(trigPin,echoPin);
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
compInitialize();
}
void loop() {
float distance1=distMasure(trigPin1,echoPin1);
float distance2=distMasure(trigPin2,echoPin2);
bool gateStat;
if(distance1<thresholddist&&distance2<thresholddist){
digitalWrite(redled, HIGH);
digitalWrite(greenled,LOW);
myservo.write(0);
gateStat=false;
}
else{
digitalWrite(redled, LOW);
digitalWrite(greenled,HIGH);
gateStat=true;
}
gate();
}
void gate(){
float distance3=distMasure(trigPin3,echoPin3);
if( distance3<=gateDist && !gateStat)
myservo.write(90);
gateStat=true;
}
float measureDistance(int trigPin, int echoPin) {
// Send a pulse
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Measure the duration of the echo
long duration = pulseIn(echoPin, HIGH);
// Calculate the distance (duration in microseconds / 58 = cm)
float distance = duration * 0.034 / 2;
return distance;
}