#include <Servo.h>
const int trigPin = 12;
const int echoPin = 11;
const int servoPin = 10;
const int buzzerPin = 9;
Servo myServo;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
myServo.attach(servoPin);
myServo.write(0); // Tutup posisi awal
noTone(buzzerPin); // Mematikan buzzer awalnya
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1; // Hitung jarak dalam cm
if (distance <= 30) { // Jika jarak kurang dari atau sama dengan 30 cm
myServo.write(90); // Buka tutup
tone(buzzerPin, 1000); // Nyalakan buzzer dengan frekuensi 1000Hz
delay(500); // Tunggu 2 detik
myServo.write(0); // Tutup kembali
noTone(buzzerPin); // Matikan buzzer
}
delay(1000);
}