lunes, 13 de mayo de 2019

Sensor aparcamiento

Crearemos, un sensor de aparcamiento mediante un sensor de ultrasonidos, que cuando este cerca de colisionar emita un sonido muy molesta y encienda la luz roja, encienda la luz amarilla con un sonido menos molesto cuando no haya mucho peligro, y cuando no haya nada de peligro encienda la luz verde


long distancia;//

long tiempo;//
int pinTrig=9;//
int pinEcho=8; //
int verde=13;//Declaramos el led verde en el pin 13.
int amarillo=2;//Declaramos el led amarillo en el pin 2;
int rojo=4;//Declaramos el led rojo en el pin 4;
int sonido=6;//Declaramos el zumbador en el pin 6;
int tonoa=2000;//Declaramos el tono a 
int tonob=5000;//Declaramos el tono b 
int tonoc=1000;//Declaramos el tono c 

void setup(){
  Serial.begin(9600);// 
  pinMode(pinTrig, OUTPUT); 
  pinMode(pinEcho, INPUT);
  pinMode(verde,OUTPUT);
  pinMode(rojo,OUTPUT);

  pinMode(amarillo,OUTPUT);
  pinMode(sonido,OUTPUT);
}
void loop(){
  digitalWrite(pinTrig,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);//esperamos 5 microsegundos.
  digitalWrite(pinTrig, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);//esperamos 10 microsegundos.
  tiempo=pulseIn(pinEcho, HIGH);//
  distancia= int(0.017*tiempo); //distancia medida en cm
  Serial.println("Distancia ");//En la consula aparece la palabra distancia.
  Serial.println(distancia);
  Serial.println(" cm");//En la consula aparece la palabra cm
  delay(1000);//esperamos 1000ms
    if(distancia>30){//creamos una condicional
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  noTone(sonido);
    delay(10);//si la distancia es mayor que 30 cm todos los led estan apagados y esperamos 10 ms.

    }else
    {
      if(distancia>20d&&distancia<30){
  
    digitalWrite(rojo,LOW);
    digitalWrite(verde,HIGH);
    digitalWrite(amarillo,LOW);
    tone(sonido,tonoc,1000);
    delay(10);//si la distancia es mayor de 20 cm y menor que 30 cm solo se encience el led verde y espera 10 ms.
      }
      else{
        if(10<=distancia&&distancia<20){
  digitalWrite(rojo,LOW);
  digitalWrite(amarillo,HIGH);
  digitalWrite(verde,LOW);
  tone(sonido,tonob,100);
  delay(10);//si la distancia es mayor o igual que 10 cm y menos que 20 cm ,solo  se enciende el del amarillo.
  }
      else{
  
  if(distancia<10){
  digitalWrite(rojo,HIGH);
  digitalWrite(amarillo,LOW);
  digitalWrite(verde,LOW);
  tone(sonido,tonoc,10);
    delay(10);si la distancia  es manor que 10 cm, solo se enciende el led rojo y esperamos 10 ms.
  }
    
  }
      }
}

No hay comentarios:

Publicar un comentario