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.
}
}
}
}