#include <Servo.h>
#define trigpin 7
#define echopin 6
#define led 13
#define servo 9
int position = 0;
Servo doorservo;
long duration;
float distance;
void setup() {
// put your setup code here, to run once:
doorservo.attach(servo);
pinMode(echopin, INPUT);
pinMode(trigpin, OUTPUT);
pinMode(led, OUTPUT);
doorservo.write(position);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.begin(9600);
digitalWrite(trigpin, LOW);
delayMicroseconds(2);
digitalWrite(trigpin, HIGH);
delayMicroseconds(10); //output pulse with 1ms width on trig
digitalWrite(trigpin, LOW);
duration=pulseIn(echopin, HIGH);
distance = (duration*0.0343/2);
Serial.println(distance );
if (distance<35)
{
digitalWrite(led, HIGH);
//sweep from 0 to 180 degrees
for(position =0 ; position <=180; position +=1 ){
doorservo.write(position);
delay(10);
}
delay(1000);
for(position =180 ; position >=0; position -=1 ){
doorservo.write(position);
delay(30);
}
}
else{
digitalWrite(led, LOW);
delay(300);
}
}