// Definir los pines para el sensor ultrasónico y los LEDs
const int triggerPin = 3;
const int echoPin = 2;
const int led1Pin = 4; // Primer LED a 30 cm
const int led2Pin = 5; // Segundo LED a 20 cm
const int led3Pin = 6; // Tercer LED a 10 cm
// Definir variables para almacenar la distancia y la duración del pulso
long duration;
int distance;
void setup() {
// Configurar los pines como entrada o salida
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
// Inicializar el puerto serie
Serial.begin(9600);
}
void loop() {
// Generar un pulso en el pin del sensor ultrasónico
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Medir la duración del pulso de eco
duration = pulseIn(echoPin, HIGH);
// Calcular la distancia en centímetros
distance = duration * 0.034 / 2;
// Mostrar la distancia en el monitor serie
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Encender los LEDs según la distancia medida
if (distance <= 30) {
digitalWrite(led1Pin, HIGH);
} else {
digitalWrite(led1Pin, LOW);
}
if (distance <= 20) {
digitalWrite(led2Pin, HIGH);
} else {
digitalWrite(led2Pin, LOW);
}
if (distance <= 10) {
digitalWrite(led3Pin, HIGH);
} else {
digitalWrite(led3Pin, LOW);
}
// Esperar un breve período antes de la siguiente lectura
delay(100);
}