// Incluir la biblioteca para el sensor ultrasónico
#include <NewPing.h>
// Definir los pines para el sensor ultrasónico
#define TRIGGER_PIN1 12
#define ECHO_PIN1 11
#define TRIGGER_PIN2 7
#define ECHO_PIN2 6
int RELE1=5;
int RELE2=4;
// Definir el umbral de distancia para activar o desactivar el interruptor (en centímetros)
#define DISTANCIA_UMBRAL 100
// Inicializar el objeto del sensor ultrasónico
NewPing sonar1(TRIGGER_PIN1, ECHO_PIN1);
NewPing sonar2(TRIGGER_PIN2, ECHO_PIN2);
// Variable para almacenar el estado del interruptor
bool interruptorEstado1 = false;
bool interruptorEstado2 = false;
void setup() {
// Inicializar el puerto serial
Serial.begin(9600);
// definimos salida
pinMode(RELE1, OUTPUT);
pinMode(RELE2, OUTPUT);
}
void loop() {
// Realizar una medición de distancia con el sensor ultrasónico
unsigned int distancia1 = sonar1.ping_cm();
unsigned int distancia2 = sonar2.ping_cm();
// Verificar si la distancia es menor que el umbral definido
if (distancia1 < DISTANCIA_UMBRAL) {
// Si la distancia es menor, activar el interruptor
if (!interruptorEstado1) {
interruptorEstado1 = true;
digitalWrite(RELE1,1);
Serial.println("Interruptor activado");
// Aquí puedes agregar el código para realizar la acción deseada cuando el interruptor se activa
}
} else {
// Si la distancia es mayor o igual, desactivar el interruptor
if (interruptorEstado1) {
interruptorEstado1 = false;
digitalWrite(RELE1,0);
Serial.println("Interruptor desactivado");
// Aquí puedes agregar el código para realizar la acción deseada cuando el interruptor se desactiva
}
}
if (distancia2 < DISTANCIA_UMBRAL) {
// Si la distancia es menor, activar el interruptor
if (!interruptorEstado2) {
interruptorEstado2 = true;
digitalWrite(RELE2,1);
Serial.println("Interruptor activado");
// Aquí puedes agregar el código para realizar la acción deseada cuando el interruptor se activa
}
} else {
// Si la distancia es mayor o igual, desactivar el interruptor
if (interruptorEstado2) {
interruptorEstado2 = false;
digitalWrite(RELE2,0);
Serial.println("Interruptor desactivado");
// Aquí puedes agregar el código para realizar la acción deseada cuando el interruptor se desactiva
}
}
// Esperar un breve período de tiempo antes de realizar la siguiente medición
delay(100);
}