int TRIG = 5;
int ECO = 6;
int LED = 3;
int DURACION;
int DISTANCIA;
int LED2 = 2;
int LED3 = 4;
int ALERTA = 7;
int buzzerPin = 8;
void setup() {
// put your setup code here, to run once:
pinMode(TRIG, OUTPUT);
pinMode(ECO, INPUT);
pinMode(LED, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(ALERTA, OUTPUT);
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(TRIG, HIGH);
delay(1);
digitalWrite(TRIG, LOW);
DURACION = pulseIn(ECO, HIGH);
DISTANCIA = DURACION / 58.2;
Serial.println(DISTANCIA);
delay(200);
// S'activa el zumbador si la distància és menor a 40 cm
if ((DISTANCIA <= 40) && (DISTANCIA > 20)) {
int frequency = 2300;
// Es defineix la duració del to en funció de la distància mesurada
int duration = 300;
// S'activa el zumbador amb el to i la duració definides
for (int i = 0; i < 1; i++) {
tone(buzzerPin, frequency, duration);
delay(duration) ;
noTone(buzzerPin) ;
delay(duration) ;
}
}
// S'activa el zumbador si la distància és menor a 20 cm
if ((DISTANCIA <=19) && (DISTANCIA > 0)) {
int frequency = 3600;
// Es defineix la duració del to en funció de la distància mesurada
int duration = 50;
// S'activa el zumbador amb el to i la duració definides
for (int i = 0; i < 1; i++) {
tone(buzzerPin, frequency, duration);
delay(duration) ;
noTone(buzzerPin) ;
delay(duration) ;
}
}
// S'activa el zumbador si la distància és menor a 60 cm
if ((DISTANCIA <=59) && (DISTANCIA > 41)) {
int frequency = 1300;
// Es defineix la duració del to en funció de la distància mesurada
int duration = 600;
// S'activa el zumbador amb el to i la duració definides
for (int i = 0; i < 1; i++) {
tone(buzzerPin, frequency, duration);
delay(duration) ;
noTone(buzzerPin) ;
delay(duration) ;
}
}
if (DISTANCIA <= 40 && DISTANCIA > 20 ) {
digitalWrite(LED, HIGH);
}
else {
digitalWrite(LED, LOW);
if (DISTANCIA <= 59 && DISTANCIA > 41) {
digitalWrite(LED2, HIGH);
}
else {
digitalWrite (LED2, LOW);
if (DISTANCIA <= 80 && DISTANCIA > 60) {
digitalWrite(LED3, HIGH);
}
else {
digitalWrite (LED3, LOW);
if (DISTANCIA <= 19 && DISTANCIA > 0) {
digitalWrite (ALERTA, HIGH);
delay(150) ;
digitalWrite(ALERTA, LOW);
delay (150) ;
}
else {
digitalWrite (ALERTA, LOW);
}
}
}
}
}