#include <Servo.h>
// Definisi pin
const int trigPin = 13; // Pin Trig sensor ultrasonik
const int echoPin = 12; // Pin Echo sensor ultrasonik
const int servoPin = 9; // Pin servo motor
// Variabel
long duration;
int distance;
Servo servo; // Objek servo motor
void setup() {
// Konfigurasi pin
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Inisialisasi servo
servo.attach(servoPin);
servo.write(0); // Awal posisi palang tertutup (0 derajat)
// Inisialisasi komunikasi serial (opsional untuk debugging)
Serial.begin(9600);
}
void loop() {
// Kirim sinyal trigger
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Baca durasi pantulan sinyal
duration = pulseIn(echoPin, HIGH);
// Hitung jarak dalam cm
distance = duration * 0.034 / 2;
// Cetak jarak ke serial monitor (opsional)
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Logika membuka dan menutup palang
if (distance <= 20) {
servo.write(90); // Palang terbuka (90 derajat)
delay(5000); // Tunggu selama 5 detik
} else {
servo.write(0); // Palang tertutup (0 derajat)
}
delay(100); // Delay untuk stabilisasi
}