const int TRIG_PIN = 3; // GPIO 3 conectado a TRIG
const int ECHO_PIN = 2; // GPIO 2 conectado a ECHO (vía divisor)
const int RELAY_PIN = 23; // GPIO 23 conectado al pin IN del Relevador
// Distancia límite en centímetros para activar el relevador
const int DISTANCIA_LIMITE = 20;
void setup() {
Serial.begin(115200);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
// Configurar el pin del relevador como salida
pinMode(RELAY_PIN, OUTPUT);
// Asegurar que inicie apagado
digitalWrite(RELAY_PIN, LOW);
}
void loop() {
// Generar pulso de 10us en TRIG
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
// Medir el tiempo de respuesta en ECHO
long duration = pulseIn(ECHO_PIN, HIGH);
// Calcular distancia en cm
float distance = duration * 0.034 / 2;
Serial.print("Distancia: ");
Serial.print(distance);
Serial.println(" cm");
// Lógica del Relevador / LED
if (distance > 0 && distance < DISTANCIA_LIMITE) {
digitalWrite(RELAY_PIN, HIGH); // Prende el relevador y el LED
Serial.println("-> ¡Objeto cerca! Relevador ACTIVADO");
} else {
digitalWrite(RELAY_PIN, LOW); // Apaga el relevador y el LED
Serial.println("-> Relevador APAGADO");
}
delay(500);
}