#include <Servo.h>
// Define pins
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 8;
Servo myServo;
void setup() {
// Initialize the serial communication
Serial.begin(9600);
// Initialize the HC-SR04 sensor pins
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
// Initialize the buzzer pin
pinMode(buzzerPin, OUTPUT);
// Attach the servo to pin 3
myServo.attach(3);
}
void loop() {
for (int angle = 0; angle <= 180; angle += 10) {
myServo.write(angle);
delay(500);
float distance = measureDistance();
Serial.print("Angle: ");
Serial.print(angle);
Serial.print(" Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 20) {
soundBuzzer(100);
}
delay(100);
}
for (int angle = 180; angle >= 0; angle -= 10) {
myServo.write(angle);
delay(500);
float distance = measureDistance();
Serial.print("Angle: ");
Serial.print(angle);
Serial.print(" Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance < 20) {
soundBuzzer(100);
}
delay(100);
}
}
float measureDistance() {
// Clear the trigger pin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Set the trigger pin HIGH for 10 microseconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Read the echo pin
long duration = pulseIn(echoPin, HIGH);
// Calculate the distance
float distance = (duration * 0.034) / 2;
return distance;
}
void soundBuzzer(int durationMs) {
digitalWrite(buzzerPin, HIGH);
delay(durationMs);
digitalWrite(buzzerPin, LOW);
}