#include <Servo.h>
int trigPin = 12;
int echoPin = 13;
int ledPin = 7;
int pinPir = 4;
int servoPin = 9;
int pirvalue = 0;
Servo myservo;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
pinMode(trigPin, INPUT);
pinMode(pinPir, INPUT);
pinMode(echoPin, OUTPUT);
myservo.attach(servoPin);
}
void loop() {
// put your main code here, to run repeatedly:
pirvalue = digitalRead(pinPir);
long duration, distance;
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH );
delayMicroseconds(10);
digitalWrite(trigPin, LOW );
// Menerima waktu pantulan ultrasonik
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu pantulan
distance = duration * 0.034 / 2;
// Menampilkan jarak pada Serial Monitor
Serial.print("Jarak: ");
//Serial.print( "measured distance: " );
Serial.println(distance);
if(pirvalue == HIGH){
if(distance < 50){
digitalWrite(ledPin, HIGH);
myservo.write(90);
}
else{
digitalWrite(ledPin, LOW);
myservo.write(0);
}
}
}