#include <Servo.h>
Servo palangServo; // Objek Servo untuk mengendalikan palang pintu
const int trigPin = 9; // Pin trigger sensor ultrasonik
const int echoPin = 10; // Pin echo sensor ultrasonik
const int thresholdDistance = 20; // Ambang batas jarak untuk membuka palang pintu (sesuaikan sesuai kebutuhan)
void setup() {
palangServo.attach(11); // Menghubungkan Servo ke pin 8
pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai output
pinMode(echoPin, INPUT); // Menetapkan echoPin sebagai input
Serial.begin(9600); // Inisialisasi komunikasi serial
}
void loop() {
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 / 2) / 29.1;
Serial.print("Distance: ");
Serial.println(distance);
// Jika objek terdeteksi dalam jarak tertentu, buka palang pintu
if (distance < thresholdDistance) {
bukaPalang();
} else {
tutupPalang();
}
}
void bukaPalang() {
palangServo.write(90); // Menggerakkan servo untuk membuka palang pintu
delay(2000); // Menunggu 2 detik (sesuaikan dengan kecepatan palang pintu)
}
void tutupPalang() {
palangServo.write(0); // Menggerakkan servo untuk menutup palang pintu
delay(2000); // Menunggu 2 detik (sesuaikan dengan kecepatan palang pintu)
}