int Trig = 13;
int Echo = 12;
int Relay1 = 23;
int Relay2 = 4;
char estadop1 = 0;
void setup() {
//inicializamos el puerto serial
Serial.begin(9600);
//se define el pin emisor de sonido como salida
pinMode(Trig, OUTPUT);
//se define el pin recerptor de sonido como entrada
pinMode(Echo, INPUT);
//se define el pin del modulo relay numero 1 como un pin de salida
pinMode(Relay1, OUTPUT);
//se define el pin del modulo relay numero 2 como un pin de salida
pinMode(Relay2, OUTPUT);
}
void loop() {
long duracion;
long distancia;
//apagamos el emisor de sonido
digitalWrite(Trig, LOW);
//retrasamos la emision de sonido por 4 microsegundos
delay(10);
//comenzamos a emitir sonido
digitalWrite(Trig, HIGH);
//retrasamos la emision de sonido por 10 microsegundos
delay(10);
//apagamos el emisor de sonido
digitalWrite(Trig, LOW);
//calculamos el tiempo en que tardo en regresar el sonido
duracion = pulseIn(Echo, HIGH);
//como solo nos interesa el tiempo que toma la onda en ser captada por el pin Echo se defin elo siguiente
duracion = duracion/2;
//el valor de la distncia esta definido por lal siguiente ecuacion
distancia = duracion/29.2;
//se imprime el valor de distancia en la pantalla
Serial.println(distancia);
delay(100);
if (distancia > 5){
//se manda a imprimir en pantalla cuales de los elementos esta accionado en dependencia de la distanciooa determinada por el censor
Serial.println("Active la electovalvula ");
//un segundo para imprimir estos textos en pantalla
delay(1000);
}
//si la distancia es menor a 5 cm apagar el led y se este modo tambien apaga la electrovalvula
else{
Serial.println("Active la bomba");
}
delay(1000);
//leemos el puerto serial
while(Serial.available()>0){
//almacenamos en la variable lo que se lea en el puerto serial
estadop1 = Serial.read();
//si la variable toma el valor de 1 iniciamos el arranque
if(estadop1 == '0'){
digitalWrite (Relay1, HIGH);
digitalWrite (Relay2, LOW);
Serial.println("electrovalvula activa");
Serial.println("Bomba desactivada");
}
//si la variable toma el valor 0 apagamos el Relay2
else if (estadop1 == '1'){
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, HIGH);
Serial.println("electrovalvula desactivada");
Serial.println("Bomba activa");
}
else if (estadop1 == '2'){
digitalWrite(Relay1, LOW);
digitalWrite(Relay2, LOW);
Serial.println("electrovalvula desactivada");
Serial.println("Bomba desactivada");
}
}
}