#include <Servo.
h>
Servo myServo;
const int trigPin = 5;
const int echoPin = 6;
const int buzzerPin = 11;
const int ledPin = LED_BUILTIN;
const int servoPosClosed = 0; // Posisi tertutup servo
const int servoPosOpen = 90; // Posisi terbuka servo
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(ledPin, OUTPUT);
[Link](10); // Menghubungkan servo ke pin 6
[Link](servoPosClosed); // Menutup tutup saat memulai
[Link](9600);
}
void loop() {
long duration, distance;
// Mengirimkan sinyal ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima sinyal pantulan
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Menghitung jarak dalam cm
// Jika objek terdeteksi dalam jarak 20 cm
if (distance <= 20) {
digitalWrite(ledPin, HIGH); // Menghidupkan LED
digitalWrite(buzzerPin, HIGH); // Menghidupkan buzzer
[Link](servoPosOpen); // Membuka tutup
delay(5000); // Menunggu selama 5 detik
[Link](servoPosClosed); // Menutup kembali tutup
digitalWrite(buzzerPin, LOW); // Mematikan buzzer
digitalWrite(ledPin, LOW); // Mematikan LED
} else {
[Link](servoPosClosed); // Pastikan tutup tetap tertutup
}
delay(100); // Menunggu sebentar sebelum mengulangi loop