#define TRIG_PIN PA0
#define ECHO_PIN PA1
#define PIR_PIN PA2
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(PIR_PIN, INPUT);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
float distance = duration * 0.034 / 2;
return distance;
}
void loop() {
float jarak = readDistanceCM();
int pirStatus = digitalRead(PIR_PIN);
if (jarak < 170 && pirStatus == HIGH) {
Serial.print("Objek TERDETEKSI oleh Ultrasonik & PIR! Jarak: ");
Serial.print(jarak);
Serial.println(" cm");
} else {
Serial.print("Tidak terdeteksi | Jarak: ");
Serial.print(jarak);
Serial.print(" cm | PIR: ");
Serial.println(pirStatus == HIGH ? "Gerakan" : "Tidak");
}
delay(500);
}