const int TRIG_PIN = 19;
const int ECHO_PIN = 21;
const int TRIG2_PIN = 26;
const int ECHO2_PIN = 27;
const int TRIG3_PIN = 5;
const int ECHO3_PIN = 4;
const int BUZZER_PIN = 2;
// const int DISTANCE_THRESHOLD = 200; // no usage in this cod
int activeSensor = 0;
/*
const float SPEED_OF_SOUND = 343.0; // Speed of sound in m/s
// arduino isn't calculator
float distanceToCm(float duration) {
// Calculate distance in centimeters
return (duration * SPEED_OF_SOUND) / 20000.0;
}*/
float readUltrasonicSensor(int trigPin, int echoPin) {
long duration;
float dist;
// Trigger ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//distance = distanceToCm(duration); // remove
dist=duration/57 ; // 57 is getting this offer for me cm directly
return dist;
}
void beep(int times) {
for (int i = 0; i < times; i++) {
digitalWrite(BUZZER_PIN, HIGH);
delay(200);
digitalWrite(BUZZER_PIN, LOW);
delay(200);
}
}
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG2_PIN, OUTPUT);
pinMode(ECHO2_PIN, INPUT);
pinMode(TRIG3_PIN, OUTPUT);
pinMode(ECHO3_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
// change the name of distance in float func to be dist only
float distance;
// Read ultrasonic sensor 1
distance = readUltrasonicSensor(TRIG_PIN, ECHO_PIN);
if (distance <= 70 && activeSensor == 0) {
Serial.print("dist0: ");
Serial.println(distance);
beep(2);
activeSensor = 1;
}
// Read ultrasonic sensor 2
distance = readUltrasonicSensor(TRIG2_PIN, ECHO2_PIN);
if (distance <= 50 && activeSensor == 1) {
Serial.print("dist1: ");
Serial.println(distance);
beep(4);
activeSensor = 2;
}
// Read ultrasonic sensor 3
distance = readUltrasonicSensor(TRIG3_PIN, ECHO3_PIN);
if (distance <= 50 && activeSensor == 2) {
Serial.print("dist2: ");
Serial.println(distance);
beep(6);
activeSensor = 0; // Reset the active sensor to 0
}
delay(1000);
}