// constants won't change
const int TRIG_PIN1 = 6; // Arduino pin connected to Ultrasonic Sensor 1's TRIG pin
const int ECHO_PIN1 = 7; // Arduino pin connected to Ultrasonic Sensor 1's ECHO pin
const int TRIG_PIN2 = 8; // Arduino pin connected to Ultrasonic Sensor 2's TRIG pin
const int ECHO_PIN2 = 9; // Arduino pin connected to Ultrasonic Sensor 2's ECHO pin
const int TRIG_PIN3 = 10; // Arduino pin connected to Ultrasonic Sensor 3's TRIG pin
const int ECHO_PIN3 = 11; // Arduino pin connected to Ultrasonic Sensor 3's ECHO pin
const int BUZZER_PIN = 3; // Arduino pin connected to Piezo Buzzer's pin
const int DISTANCE_THRESHOLD = 50; // centimeters
// variables will change
float duration_us1, distance_cm1;
float duration_us2, distance_cm2;
float duration_us3, distance_cm3;
void setup() {
Serial.begin(9600); // initialize serial port
pinMode(TRIG_PIN1, OUTPUT); // set arduino pin to output mode
pinMode(ECHO_PIN1, INPUT); // set arduino pin to input mode
pinMode(TRIG_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(TRIG_PIN3, OUTPUT);
pinMode(ECHO_PIN3, INPUT);
pinMode(BUZZER_PIN, OUTPUT); // set arduino pin to output mode
}
void loop() {
// Sensor 1
digitalWrite(TRIG_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN1, LOW);
duration_us1 = pulseIn(ECHO_PIN1, HIGH);
distance_cm1 = 0.017 * duration_us1;
// Sensor 2
digitalWrite(TRIG_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN2, LOW);
duration_us2 = pulseIn(ECHO_PIN2, HIGH);
distance_cm2 = 0.017 * duration_us2;
// Sensor 3
digitalWrite(TRIG_PIN3, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN3, LOW);
duration_us3 = pulseIn(ECHO_PIN3, HIGH);
distance_cm3 = 0.017 * duration_us3;
// Buzzer control logic based on the distances from all three sensors
if (distance_cm1 < DISTANCE_THRESHOLD || distance_cm2 < DISTANCE_THRESHOLD || distance_cm3 < DISTANCE_THRESHOLD){
digitalWrite(BUZZER_PIN, HIGH); // turn on Piezo Buzzer
tone(3, 262, 250);}
else{
digitalWrite(BUZZER_PIN, LOW); // turn off Piezo Buzzer
}
// print the values to Serial Monitor
Serial.print("distance1: ");
Serial.print(distance_cm1);
Serial.print(" cm, distance2: ");
Serial.print(distance_cm2);
Serial.print(" cm, distance3: ");
Serial.print(distance_cm3);
Serial.println(" cm");
delay(500);
}