/* MXENGINEER PIN CONNECTIONS: - HY-SRF05 VCC -> Arduino 5V - HY-SRF05 GND -> Arduino GND - HY-SRF05 TRIG -> Pin 9 - HY-SRF05 ECHO -> Pin 10 - Buzzer (+) -> Pin 11 - Buzzer (-) -> Arduino GND - Potentiometer Left -> Arduino GND - Potentiometer Middle -> Arduino A0 - Potentiometer Right -> Arduino 5V */ const int trigPin = 9; const int echoPin = 10; const int buzzerPin = 11; const int potPin = A0; long duration; int distance; int potValue; int dangerDistance; int beepIntensity; int beepDelay; void setup() { pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); pinMode(buzzerPin, OUTPUT); Serial.begin(9600); } int readDistance() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH, 30000); if (duration == 0) return 999; return duration * 0.034 / 2; } void loop() { distance = readDistance(); potValue = analogRead(potPin); dangerDistance = map(potValue, 0, 1023, 200, 10); Serial.print("Distance: "); Serial.print(distance); Serial.print(" cm | Alarm: "); Serial.print(dangerDistance); Serial.println(" cm"); if (distance > 200) { analogWrite(buzzerPin, 0); delay(200); } else if (distance <= dangerDistance) { analogWrite(buzzerPin, 255); delay(50); } else if (distance <= 200) { beepIntensity = map(distance, dangerDistance, 200, 255, 50); beepIntensity = constrain(beepIntensity, 50, 255); beepDelay = map(distance, dangerDistance, 200, 100, 600); beepDelay = constrain(beepDelay, 100, 600); analogWrite(buzzerPin, beepIntensity); delay(150); analogWrite(buzzerPin, 0); delay(beepDelay); } delay(50); }