#include <Servo.h> // Menggunakan library servo
Servo myServo; // Membuat objek servo
const int trigPin = 10; // Pin untuk Trigger sensor ultrasonik
const int echoPin = 11; // Pin untuk Echo sensor ultrasonik
const int buzzerPin = 8; // Pin untuk buzzer
const int servoPin = 9; // Pin untuk servo motor
const int distanceThreshold = 20; // Jarak minimum untuk membuka pintu (cm)
void setup() {
pinMode(trigPin, OUTPUT); // Set pin Trigger sebagai OUTPUT
pinMode(echoPin, INPUT); // Set pin Echo sebagai INPUT
pinMode(buzzerPin, OUTPUT); // Set pin buzzer sebagai OUTPUT
myServo.attach(servoPin); // Menghubungkan servo ke pin
myServo.write(0); // Servo dalam posisi awal (pintu tertutup)
Serial.begin(9600); // Untuk debugging melalui serial monitor
}
void loop() {
long duration, distance;
// Mengirim sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima sinyal pantulan (echo)
duration = pulseIn(echoPin, HIGH);
// Menghitung jarak dalam cm
distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Logika untuk membuka pintu dan mengaktifkan buzzer
if (distance < distanceThreshold) {
myServo.write(90); // Pindahkan servo (buka pintu)
digitalWrite(buzzerPin, HIGH); // Aktifkan buzzer
} else {
myServo.write(0); // Kembalikan servo ke posisi awal (tutup pintu)
digitalWrite(buzzerPin, LOW); // Matikan buzzer
}
delay(1000); // Delay untuk stabilitas
}