#define pirPin 3
int pirState = LOW;
#define trigPin 9
#define echoPin 10
#define ledPin 13
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop() {
int pirVal = digitalRead(pirPin);
if (pirVal == HIGH) {
if (pirState == LOW) {
Serial.println("Motion detected");
digitalWrite(ledPin, HIGH);
pirState = HIGH;
}
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.0343 / 2;
Serial.print("Distance to object: ");
Serial.print(distance);
Serial.println(" cm");
} else {
if (pirState == HIGH)
Serial.println("Motion detected");
digitalWrite(ledPin, LOW);
pirState = LOW;
}
delay(200);
}