// Library untuk sensor ultrasonik
#include <NewPing.h>
// Library untuk motor servo
#include <Servo.h>
// Pin yang digunakan untuk sensor ultrasonik
#define TRIGGER_PIN 9
#define ECHO_PIN 10
#define MAX_DISTANCE 200
// Pin yang digunakan untuk sensor LDR
#define LDR_PIN A0
// Pin yang digunakan untuk LED
#define LED_PIN 13
// Pin yang digunakan untuk motor servo
#define SERVO_PIN 6
// Inisialisasi objek sensor ultrasonik
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
// Inisialisasi objek motor servo
Servo servoMotor;
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
pinMode(LED_PIN, OUTPUT); // Set pin LED sebagai output
servoMotor.attach(SERVO_PIN); // Menyambungkan motor servo ke pin
}
void loop() {
// Membaca jarak dari sensor ultrasonik
int distance = sonar.ping_cm();
// Membaca nilai dari sensor LDR
int ldrValue = analogRead(LDR_PIN);
// Menyalakan LED jika kondisi gelap
if (ldrValue < 100) {
digitalWrite(LED_PIN, HIGH);
} else {
digitalWrite(LED_PIN, LOW);
}
// Jika ada objek mendekati sensor ultrasonik
if (distance < 10) {
// Menggerakkan motor servo untuk mengusir hama
servoMotor.write(90); // Putar motor servo ke posisi tengah
delay(1000); // Tunggu 1 detik
servoMotor.write(0); // Putar motor servo kembali ke posisi awal
}
// Mengirimkan data ke Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.print(" cm, ");
Serial.print("Nilai LDR: ");
Serial.println(ldrValue);
// Tambahkan penundaan untuk stabilitas bacaan
delay(500);
}