#include <Servo.h>
#define echoPin 3 // Pin Echo sensor HC-SR04 terhubung ke pin D3 pada Arduino
#define trigPin 2 // Pin Trigger sensor HC-SR04 terhubung ke pin D2 pada Arduino
#define servoPin 9 // Pin servo terhubung ke pin D9 pada Arduino
Servo myservo;
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial dengan baudrate 9600
pinMode(trigPin, OUTPUT); // Set pin Trigger sebagai output
pinMode(echoPin, INPUT); // Set pin Echo sebagai input
myservo.attach(servoPin); // Attach servo ke pin D9
}
void loop() {
// Mengirimkan pulsa ultrasonik
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Menerima waktu yang diperlukan untuk gelombang ultrasonik kembali
long duration = pulseIn(echoPin, HIGH);
// Menghitung jarak berdasarkan waktu yang diterima
// Rumus: Jarak = Kecepatan suara * Waktu / 2
// Kecepatan suara sekitar 343 meter/detik di udara
float distance = (duration * 0.0343) / 2;
// Menampilkan jarak di Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Atur nilai pada jarak berapa tutup tempat sampah akan terbuka
if (distance <= 50) {
// Jarak 50 cm atau kurang, servo berputar ke derajat 90
myservo.write(90);
} else {
// Jarak lebih dari 10 cm, servo kembali ke derajat 0
myservo.write(0);
}
delay(800); // Delay 1 detik sebelum mengukur lagi
}