/*Based on Ignacio Miró Orozco
(Professor at Polytechnic University of Valencia)code*/
/*This program simulates parking sistem of a car
turning on and turning off a sound with more or
less frequency in function of distance*/
#define echoPin 5 // Echo Pin
#define trigPin 4 // Trigger Pin
#define buzzer 11 // Buzzer
long distance;
long times;
int del;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT); /*activación del pin 4 como salida: para el pulso ultrasónico*/
pinMode(echoPin, INPUT); /*activación del pin 5 como entrada: tiempo del rebote del ultrasonido*/
}
void loop() {
digitalWrite(trigPin, LOW); /* Por cuestión de estabilización del sensor*/
delayMicroseconds(5);
digitalWrite(trigPin, HIGH); /* envío del pulso ultrasónico*/
delayMicroseconds(10);
times = pulseIn(echoPin, HIGH);
distance = int(0.017 * times);
Serial.print("Distancia ");
Serial.print(distance);
Serial.println(" cm");
if (distance <= 20) {
if (distance >= 0 && distance <= 3) del = 100;
if (distance > 3 && distance <= 6) del = 200;
if (distance > 6 && distance <= 9) del = 300;
if (distance > 9 && distance <= 12) del = 400;
if (distance > 12 && distance <= 15) del = 600;
if (distance > 15) del = 800;
tone(buzzer, 349);
delay(del);
noTone(buzzer);
if (distance >= 3) delay(200);
}
else
{
delay(200);
noTone(buzzer);
}
}