int trig = 9;
int echo = 8;
int relay = 7;
bool ledState = false; // Status awal LED (mati)
bool handDetected = false; // Status deteksi tangan sebelumnya
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
pinMode(relay, OUTPUT);
Serial.begin(9600);
}
void loop() {
// Kirim sinyal trigger
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
// Baca waktu pantulan
long duration = pulseIn(echo, HIGH);
// Hitung jarak (cm)
float distance = (duration * 0.034) / 2;
// Tampilkan jarak di Serial Monitor
Serial.print("Jarak: ");
Serial.print(distance);
Serial.println(" cm");
// Ambang batas jarak deteksi (misalnya 10 cm)
if (distance < 10) {
if (!handDetected) { // Jika tangan baru saja terdeteksi
ledState = !ledState; // Ubah status LED
digitalWrite(relay, ledState ? HIGH : LOW); // Kendalikan LED
handDetected = true; // Tandai bahwa tangan terdeteksi
}
} else {
handDetected = false; // Reset status deteksi jika tangan menjauh
}
delay(500);
}