I am quite new at arduino and im trying to create a system with three ultrasonic sensors, which when they detect something, their respective led lights up and a buzzer activates. However, when I activated it the led and buzzer of one ultrasonic sensor wont turn off, the second sensor's led wont turn on, and the other detects and the led activates but its buzzer doesn't.
This is my code:
const int echoPinR = 2; const int trigPinR = 3;
const int echoPinC = 6; const int trigPinC = 7;
const int echoPinL = 4;const int trigPinL = 5;
const int alertLedPinR = 8;const int alertLedPinL = 9;
const int alertLedPinC = 10;
const int buzzerR = 12; const int buzzerL = 11;
void setup() {
pinMode(trigPinR, OUTPUT);
pinMode(echoPinR, INPUT);
pinMode(trigPinL, OUTPUT);
pinMode(echoPinL, INPUT);
pinMode(trigPinC, OUTPUT);
pinMode(echoPinC, INPUT);
Serial.begin(9600);
}
void loop() {
long durationR, distanceR, durationC, distanceC, durationL, distanceL;
digitalWrite(trigPinR, LOW);
delayMicroseconds(2);
digitalWrite(trigPinR, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinR, LOW);
durationR = pulseIn(echoPinR, HIGH);
distanceR = durationR * 0.0343 / 2;
digitalWrite(trigPinC, LOW);
delayMicroseconds(2);
digitalWrite(trigPinC, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinC, LOW);
durationR = pulseIn(echoPinC, HIGH);
distanceR = durationC * 0.0343 / 2;
digitalWrite(trigPinL, LOW);
delayMicroseconds(2);
digitalWrite(trigPinL, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinL, LOW);
durationL = pulseIn(echoPinL, HIGH);
distanceL = durationL * 0.0343 / 2;
Serial.print("Distance Sensor 1: ");
Serial.print(distanceR);
Serial.println(" cm");
Serial.print("Distance Sensor 2: ");
Serial.print(distanceL);
Serial.println(" cm");
Serial.print("Distance Sensor 3: ");
Serial.print(distanceC);
Serial.println(" cm");
if (distanceR < 40) {
digitalWrite(alertLedPinR, HIGH);
tone(buzzerR, 1000);
} else {
digitalWrite(alertLedPinR, LOW);
noTone(buzzerR);
}
if (distanceC < 40) {
digitalWrite(alertLedPinC, HIGH);
} else {
digitalWrite(alertLedPinC, LOW);
}
if (distanceL < 40) {
digitalWrite(alertLedPinL, HIGH);
tone(buzzerL, 1000);
} else {
digitalWrite(alertLedPinL, LOW);
noTone(buzzerL);
}
delay(500);
}
im trying to find out if this is a code problem or a hardware problem. Im open for advice
