const int trigPin = 9;
const int echoPin = 10;
const int motionPin = 12;
const int ledPin = 13;
float duration, distance;
bool motionDetected = false;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(motionPin, INPUT);
Serial.begin(9600);
}
void loop() {
// Check for motion
int motionState = digitalRead(motionPin);
if (motionState == HIGH) {
motionDetected = true;
} else {
motionDetected = false;
}
// If motion is detected, perform distance measurement
if (motionDetected) {
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: ");
Serial.println(distance);
if (distance <= 50) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
} else {
// If no motion is detected, turn off the LED
digitalWrite(ledPin, LOW);
}
delay(100);
}