#include <Servo.h>
Servo servoGate;
int echoPin = 3;
int trigPin = 2;
int gateOpenDuration = 5000; // Время открытия ворот в миллисекундах
int gateOpenDistance = 200; // Расстояние до ворот, при котором они открываются
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servoGate.attach(9);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
if (distance < gateOpenDistance) {
openGate();
delay(gateOpenDuration);
closeGate();
}
}
void openGate() {
servoGate.write(0); // Установка положения сервопривода для открытия ворот
}
void closeGate() {
servoGate.write(90); // Установка положения сервопривода для закрытия ворот
}