#define trigPin 13
#define echoPin 12
#define led 11
#define rele 10
#define buzzer 9
int buzzerState = 0;
unsigned long currentMillis;
unsigned long previousMillis = 0;
const long interval = 5000;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(rele, OUTPUT);
}
void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
if (distance < 10)
{ digitalWrite(led, HIGH);
if (buzzerState == 0)
{
currentMillis = millis();
tone(buzzer, 2500);
}
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis;
noTone(buzzer);
buzzerState = 1;
}
digitalWrite(rele, LOW);
}
else {
digitalWrite(led, LOW);
noTone(buzzer);
buzzerState = 0;
digitalWrite(rele, HIGH);
}
Serial.print(distance);
Serial.println(" cm");
delay(500);
}