int TRIG = 13; // Define el pin 13 como salida para enviar el pulso ultrasónico
int ECO = 12; // Define el pin 12 como entrada para recibir el eco del sensor
int LED = 2; // Define el pin 2 para controlar un LED
int DURACION; // Variable para almacenar el tiempo que tarda en regresar el eco
int DISTANCIA; // Variable para calcular la distancia en centímetros
void setup()
{
pinMode(TRIG, OUTPUT); // Configura el pin TRIG como salida
pinMode(ECO, INPUT); // Configura el pin ECO como entrada
pinMode(LED, OUTPUT); // Configura el pin LED como salida
Serial.begin(9600); // Inicia la comunicación serie a 9600 baudios
}
void loop()
{
digitalWrite(TRIG, HIGH); // Envía un pulso eléctrico al pin TRIG
delay(1); // Espera 1 milisegundo para que el pulso sea detectado
digitalWrite(TRIG, LOW); // Finaliza el pulso en el pin TRIG
DURACION = pulseIn(ECO, HIGH); // Mide el tiempo que tarda en recibirse el eco (en microsegundos)
DISTANCIA = DURACION / 58.2; // Convierte el tiempo medido en distancia (cm aprox.)
Serial.println(DISTANCIA); // Muestra la distancia calculada en el monitor serie
delay(200); // Espera 200 milisegundos antes de la siguiente medición
// Condición: si la distancia es menor o igual a 20 cm y mayor o igual a 0
if(DISTANCIA <= 20 && DISTANCIA >= 0){
digitalWrite(LED, HIGH); // Enciende el LED
delay(DISTANCIA * 10); // Mantiene encendido el LED un tiempo proporcional a la distancia
// (más rápido cuando el objeto está más cerca)
digitalWrite(LED, LOW); // Apaga el LED
}
}