#include <Servo.h>
// Inisialisasi servo
Servo myservo;
// Pin sensor
const int trigPin = 3;
const int echoPin = 5;
// Variabel durasi dan jarak
long tmeduration;
int distance;
void setup() {
myservo.attach(9);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Memulai komunikasi serial
Serial.begin(9600);
}
void loop() {
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Mengukur durasi sinyal
tmeduration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan durasi
distance = (0.034 * tmeduration) / 2;
// jarak untuk buka gerbang
if (distance <= 40) {
myservo.write(90);
} else {
// jarak tutup gerbang
myservo.write(0);
}
// Menampilkan jarak pada serial monitor
Serial.print("distance: ");
Serial.println(distance);
// Delay sebelum loop
delay(100);
}