#include <Servo.h>
Servo motor;
int trigPin = 9;
int echoPin = 10;
int minDist = 2;
int maxDist = 50;
void setup() {
motor.attach(8);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
Serial.begin(9600);
}
void loop() {
int distance = getDistance();
if (distance > maxDist) {
distance = maxDist;
}
if (distance < minDist) {
distance = minDist;
}
motor.write(map(distance, minDist, maxDist, 0, 180));
delay(100);
}
int getDistance() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
int distance = duration * 0.0344 / 2;
return distance;
}