// Definir los pines del sensor y los LEDs
const int triggerPin = 15;
const int echoPin = 4;
const int ledRed = 18;
const int ledYellow = 19;
const int ledGreen = 21;
// Variables para el tiempo y la distancia
long duration;
int distance;
void setup() {
// Inicializar los pines de los LEDs como salida
pinMode(ledRed, OUTPUT);
pinMode(ledYellow, OUTPUT);
pinMode(ledGreen, OUTPUT);
// Inicializar los pines del sensor como salida y entrada
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
// Iniciar la comunicación serial
Serial.begin(9600);
}
void loop() {
// Limpiar el pin Trigger
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
// Enviar un pulso de 10 microsegundos en el Trigger
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
// Leer el pulso del Echo
duration = pulseIn(echoPin, HIGH);
// Calcular la distancia en centímetros
distance = duration * 0.034 / 2;
// Mostrar la distancia en el monitor serial
Serial.print("Distancia del objeto: ");
Serial.print(distance);
Serial.println(" cm");
// Controlar los LEDs en función de la distancia
if (distance > 40) {
Serial.println("Lejos");
digitalWrite(ledRed, HIGH);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, LOW);
} else if (distance > 20) {
Serial.println("No tan cerca");
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, HIGH);
digitalWrite(ledGreen, LOW);
} else if (distance > 0) {
Serial.println("Muy cerca");
digitalWrite(ledRed, LOW);
digitalWrite(ledYellow, LOW);
digitalWrite(ledGreen, HIGH);
}
// Esperar 1 segundo antes de la siguiente lectura
delay(1000);
}