#include <Servo.h>
Servo myservo;
int objek_jarak=0;
int pintu_status=0;
long readUltrasonicDistance(int pin)
{
pinMode(pin, OUTPUT);
digitalWrite(pin, LOW);
digitalWrite(pin, HIGH);
digitalWrite(pin, LOW);
pinMode(pin, INPUT);
return pulseIn(pin,HIGH);
}
void setup()
{
pinMode(3, INPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
myservo.attach(2);
}
void loop()
{
objek_jarak=0;
objek_jarak=0.01723 * readUltrasonicDistance(10);
if(objek_jarak<100){
if(pintu_status<1){
myservo.write(180);
delay(500);
tone(5,420,500);
digitalWrite(4, HIGH);
delay(5000);
pintu_status=1;
}
}
else {
if(pintu_status>0){
delay(5000);
tone(5,520,300);
digitalWrite(4, LOW);
delay(1000);
myservo.write(0);
delay(5000);
pintu_status=0;
}
}
}