#include <Servo.h>
const int triggerPin = 9;
const int EchoPin = 10;
const int ServoPin = 3;
Servo servo;
const int DetectDistance = 20;
const int delayTime = 20000;
const int GapTime = 6000;
void setup() {
pinMode(triggerPin, OUTPUT);
pinMode(EchoPin, INPUT);
servo.attach(ServoPin);
servo.write(0);
}
void loop() {
if (isObjectDetected()) {
delay(delayTime);
for (int i = 0; i < 3; i++) {
moveServo();
}
}
}
bool isObjectDetected() {
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
long duration = pulseIn(EchoPin, HIGH);
int distance = duration * 0.034 / 2;
return (distance > 0 && distance <= DetectDistance);
}
void moveServo() {
servo.write(90);
delay(5000);
servo.write(0);
delay(5000);
}