lunes, 29 de abril de 2019

SENSOR APARCACOCHES

long distancia;
long tiempo;
int sonidoPin=12;
int pinTrig=9;
int pinEcho=8;
int pinZumbador=12;            //Declaramos las entradas y los tonos.
int ledr=3;
int leda=5;
int ledv=6;
int tonoa=200;
int tonob=500;
int tonoc=700;
void setup(){
Serial.begin(9600);
pinMode(pinTrig, OUTPUT);
pinMode(pinEcho, INPUT);
pinMode(ledr, OUTPUT);            //Indicamos que los leds están apagados.
pinMode(leda, OUTPUT);
pinMode(ledv, OUTPUT);
pinMode(sonidoPin, OUTPUT);
}
void loop(){
digitalWrite(pinTrig,LOW);
delayMicroseconds(6);                //Indicamos la función de pinTrig y pinEcho y el tiempo.
digitalWrite(pinTrig, HIGH);
delayMicroseconds(10);          
tiempo=pulseIn(pinEcho, HIGH);
distancia= int(0.017*tiempo);
Serial.println("Distancia ");
Serial.println(distancia);
Serial.println(" cm");
delay(1000);
if (distancia<10){              
digitalWrite(ledr, HIGH);  //Si la distancia es menor que 10,luce el led rojo y suena el tono C.
tone(sonidoPin,tonoc);
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(ledr, LOW);

if (distancia>10 && distancia<20){
digitalWrite(leda, HIGH);       //Si la distancia es mayor que 10  y menor que 20
 tone(sonidoPin,tonob);                              luce el led amaillo y suena el tono B.   
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(leda, LOW);

if (distancia>20 && distancia<30){
digitalWrite(ledv, HIGH);     //Si la distancia es mayor que 20 y menor que 30,luce el led rojo y           tone(sonidoPin,tonoa);                                                    suena el tono A.
delay(120);}
else {
noTone (sonidoPin);
digitalWrite(ledv, LOW);}
}
}

}


EXPLICACIÓN:Si la distancia es menor que 20, se enciende el led verde y suena con un tono; si la distancia está entre 10 y 20 se enciende el amarillo y el pulsador suena a un tono distinto al verde; y si la distancia es menor de 10, se enciende el rojo y el pulsador suena de otro tono.

No hay comentarios:

Publicar un comentario