#define TRIG_PIN 5 // Pin TRIG HC-SR04
#define ECHO_PIN 18 // Pin ECHO HC-SR04 (melalui divider resistor)
#define RELAY_PIN 23 // Pin Relay IN
long duration;
float distance;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, HIGH); // Relay OFF (aktif LOW biasanya)
}
void loop() {
// Hantar pulse TRIG 10µs
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Baca pulse ECHO
duration = pulseIn(ECHO_PIN, HIGH);
// Kira jarak (cm) = masa * kelajuan bunyi / 2
distance = duration * 0.0343 / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Kawal relay ikut jarak
if (distance < 20.0 && distance > 2.0) {
digitalWrite(RELAY_PIN, LOW); // Relay ON
Serial.println("Relay ON");
} else {
digitalWrite(RELAY_PIN, HIGH); // Relay OFF
Serial.println("Relay OFF");
}
delay(500); // Baca setiap 0.5s
}