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