// Definir pines para los LEDs
const int lazul = 14;
const int lverde = 12;
const int lrojo = 27;
// Definir pines para el sensor de distancia
const int echo = 16;
const int trigger = 17;
long duracion;
long distancia;
void setup() {
// Configuración de pines para los LEDs
pinMode(lazul, OUTPUT);
pinMode(lverde, OUTPUT);
pinMode(lrojo, OUTPUT);
// Configuración de pines para el sensor de distancia
pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);
Serial.begin(115200);
}
void loop () {
// Enviar señal de trigger
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
// Medir la duración del eco
duracion = pulseIn(echo, HIGH);
distancia = duracion * 0.034 / 2;
// Mostrar la distancia en el monitor serial
Serial.print("Distancia: ");
Serial.println(distancia);
// Lógica para encender los LEDs dependiendo de la distancia medida
if (distancia < 25) {
// Encender LED amarillo (rojo + verde)
digitalWrite(lrojo, HIGH);
digitalWrite(lverde, HIGH);
digitalWrite(lazul, LOW);
Serial.println("Encendido LED amarillo");
}
else if (distancia < 50) {
// Encender LED cian (azul + verde)
digitalWrite(lrojo, LOW);
digitalWrite(lverde, HIGH);
digitalWrite(lazul, HIGH);
Serial.println("Encendido LED cian");
}
else if (distancia < 100) {
// Encender LED magenta (rojo + azul)
digitalWrite(lrojo, HIGH);
digitalWrite(lverde, LOW);
digitalWrite(lazul, HIGH);
Serial.println("Encendido LED magenta");
}
else {
// Apagar todos los LEDs si la distancia es mayor a 100 cm
digitalWrite(lrojo, LOW);
digitalWrite(lverde, LOW);
digitalWrite(lazul, LOW);
Serial.println("Todos los LEDs apagados");
}
// Retardo para evitar mediciones demasiado rápidas
delay(100);
}