#include <Servo.h>
// Pin konfigurasi
const int TRIG_PIN = 5;
const int ECHO_PIN = 18;
const int SERVO_PIN = 4;
// Objek servo
Servo myServo;
// Fungsi setup
void setup() {
Serial.begin(115200); // Inisialisasi serial monitor
myServo.attach(SERVO_PIN); // Hubungkan servo ke pin
pinMode(TRIG_PIN, OUTPUT); // Set TRIG sebagai output
pinMode(ECHO_PIN, INPUT); // Set ECHO sebagai input
// Tutup kran pada awal
myServo.write(0); // Posisi servo 0 derajat
}
// Fungsi loop
void loop() {
long duration, distance;
// Mengaktifkan TRIG untuk mengukur jarak
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Membaca ECHO
duration = pulseIn(ECHO_PIN, HIGH);
// Menghitung jarak dalam cm
distance = duration * 0.034 / 2;
// Menampilkan jarak ke serial monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Mengontrol servo berdasarkan jarak
if (distance < 10) {
myServo.write(180); // Buka kran (servo penuh)
Serial.println("Kran Dibuka");
} else {
myServo.write(0); // Tutup kran (servo nol)
Serial.println("Kran Ditutup");
}
delay(500); // Tunggu setengah detik sebelum mengukur lagi
}