void setup(){ Serial.begin(9600); //Inicio comunicacion serial pinMode(2,OUTPUT); //Trigger (sensor UT HC-SR04) pinMode(3,INPUT); //Echo (sensor UT HC-SR04) pinMode(8,OUTPUT); //Altavoz digitalWrite(8,0);//Para que el altavoz no suene al iniciar el programa pinMode(10,OUTPUT); //Led Azul pinMode(11,OUTPUT); //Led Verde pinMode(12,OUTPUT); //Led Amarillo pinMode(13,OUTPUT); //Led Rojo } void loop(){ long tiempo,altavoz; //Definición variables tiempo y altavoz float distancia; //Definición variable distancia digitalWrite(2,HIGH); //Envio de un pulso para activar el sensor HC-SR04 delayMicroseconds(10); digitalWrite(2,LOW); tiempo=(pulseIn(3,HIGH)/2); //Medida del pulso de respuesta distancia=float(tiempo*0.034); //Calculo de la distancia en cm //Monitorización en de la distancia en cm por el monitor en serie Serial.print("Deteccion en "); //Imprime en el monitor en serie, Serial.print(distancia); //seguido de la distancia obtenida y las unidades, Serial.println(" cm"); //en este caso en centímetros (cm) //Si la distancia es inferior o igual a 50 cm, suena el altavoz y se encienden los leds ROJO y AMARILLO: if (distancia <= 50){ tone(altavoz,250,2000); delay(3000); digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,HIGH); digitalWrite(13,HIGH); } //Si la distancia es mayor de 50 cm y menor o igual a 100 cm, se enciende el led ROJO: else if((distancia>50)&&(distancia<=100)){ digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,HIGH); } //Si la distancia es mayor de 100 cm y menor o igual a 150 cm, se enciende el led AMARILLO: else if((distancia>100)&&(distancia<=150)){ digitalWrite(10,LOW); digitalWrite(11,LOW); digitalWrite(12,HIGH); digitalWrite(13,LOW); } //Si la distancia es mayor de 150 cm y menor o igual a 200 cm, se enciende el led VERDE: else if((distancia>150)&&(distancia<=200)){ digitalWrite(10,LOW); digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(13,LOW); } //Si la distancia es mayor de 200 cm y menor o igual a 250 cm, se enciende el led AZUL: else if((distancia>200)&&(distancia<=250)){ digitalWrite(10,HIGH); digitalWrite(11,LOW); digitalWrite(12,LOW); digitalWrite(13,LOW); } //Si la distancia es mayor de 250 cm se encienden los leds AZUL y VERDE: else if((distancia>250)){ digitalWrite(10,HIGH); digitalWrite(11,HIGH); digitalWrite(12,LOW); digitalWrite(13,LOW); delay(1000); } }