#define SOUND_SPEED 0.034
// Sensor 1
const int trig1 = 19;
const int echo1 = 18;
// Sensor 2
const int trig2 = 5;
const int echo2 = 17;
// Sensor 3
const int trig3 = 16;
const int echo3 = 4;
// Sensor 4
const int trig4 = 21;
const int echo4 = 22;
// Buzzer
const int buzzer = 23;
// Threshold
const int threshold = 20;
bool objectDetected = false;
void setup() {
Serial.begin(115200);
pinMode(trig1, OUTPUT); pinMode(echo1, INPUT);
pinMode(trig2, OUTPUT); pinMode(echo2, INPUT);
pinMode(trig3, OUTPUT); pinMode(echo3, INPUT);
pinMode(trig4, OUTPUT); pinMode(echo4, INPUT);
pinMode(buzzer, OUTPUT);
Serial.println("Simulation Started");
}
long getDistance(int trig, int echo) {
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
long duration = pulseIn(echo, HIGH, 30000);
if (duration == 0) return 999;
return duration * SOUND_SPEED / 2;
}
void loop() {
long d1 = getDistance(trig1, echo1);
long d2 = getDistance(trig2, echo2);
long d3 = getDistance(trig3, echo3);
long d4 = getDistance(trig4, echo4);
bool s1 = d1 < threshold;
bool s2 = d2 < threshold;
bool s3 = d3 < threshold;
bool s4 = d4 < threshold;
bool currentState = s1 || s2 || s3 || s4;
if (currentState && !objectDetected) {
Serial.print("Object detected by: ");
if (s1) Serial.print("Sensor1 ");
if (s2) Serial.print("Sensor2 ");
if (s3) Serial.print("Sensor3 ");
if (s4) Serial.print("Sensor4 ");
Serial.println();
digitalWrite(buzzer, HIGH);
objectDetected = true;
}
else if (!currentState && objectDetected) {
Serial.println("No object");
digitalWrite(buzzer, LOW);
objectDetected = false;
}
delay(200);
}