#include <Servo.h>
Servo servo;
// Pin Ultrasonic
const int trigPin = 3;
const int echoPin = 5;
// Pin Servo
const int servoPin = 9;
long duration;
int distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.attach(servoPin);
servo.write(0); // posisi awal servo
}
void loop() {
// Kirim pulsa ultrasonic
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Hitung waktu pantulan
duration = pulseIn(echoPin, HIGH);
// Konversi ke jarak (cm)
distance = duration * 0.034 / 2;
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
if (distance > 0 && distance < 10) {
// Jika tangan terdeteksi < 15 cm
servo.write(90); // Servo tekan pump
delay(1000); // Tahan 1 detik
servo.write(0); // Kembali ke posisi semula
delay(2000); // Tunggu 2 detik sebelum deteksi ulang
}
}