// define pins for ultrasonic sensor
const int trigPin = 2;
const int echoPin = 3;
// define pins for PIR sensor
const int pirPin = 5;
// define pins for LED and buzzer
const int ledPin = 10;
const int buzzerPin = 8;
// define variables for ultrasonic sensor
long duration;
int distance;
void setup() {
// initialize serial communication
Serial.begin(9600);
// set pin modes for ultrasonic sensor
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// set pin mode for PIR sensor
pinMode(pirPin, INPUT);
// set pin modes for LED and buzzer
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// read distance from ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
// print distance to serial monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// turn on LED and buzzer if distance is less than 30 cm
if (distance < 30) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
delay(500);
digitalWrite(buzzerPin, LOW);
delay(500);
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
// read PIR sensor and turn on LED and buzzer if motion is detected
if (digitalRead(pirPin) == HIGH) {
digitalWrite(ledPin, HIGH);
digitalWrite(buzzerPin, HIGH);
delay(500);
digitalWrite(buzzerPin, LOW);
delay(500);
} else {
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
}