Vous êtes sur la page 1sur 4

// Control Piscina

// asignacion de pines Arduino


int valvula1 = 3; // valvula 1 conectada a pin 3
int valvula2 = 4; // valvula 2 conectada a pin 4
int bomba1 = 5; // bomba 1 conectada en pin 5
int bomba2 = 6; // bomba 2 conectada en pin 6

int sensorS2 = 7; // sensor S2 conectado en pin 7


int valS2 = 0; // variable para almacenar estado del sensor S2
int bloqueoSTA = 0; // variable estado de bloqueo
int luz = 13; // luz intermitente conectada en pin 13

//Sensor Ultrasonico HC-SR04


const int Pulso=9; // pin de pulso del sensor ultrasonico
const int RebotePulso=8; // pin de recepcion del pulso del sensor ultrasonico
long distancia; // variable para almacenar la distancia
long tiempo; // variable para almcacenar el tiempo de duracion del pulso

void setup()
{
// declaramos entradas y salidas
pinMode(bomba1, OUTPUT); // bomba 1 como salida
pinMode(bomba2, OUTPUT); // bomba 2 como salida
pinMode(valvula1, OUTPUT); // valvula 1 como salida
pinMode(valvula2, OUTPUT); // valvula 2 como salida

pinMode(sensorS2, INPUT); // sensor S2 como entrada


pinMode(Pulso, OUTPUT); // pin envio de pulso como salida
pinMode(RebotePulso, INPUT); // pin recepcion de pulso como entrada
}

void loop()
{

valS2 = digitalRead(sensorS2); // verificamos el estado del sensor y lo


almacenamos en la variable valS2
if(valS2 == 1) // si esta activado el sensor S2
{
bloqueoSTA = 1; //asignamos el valor de 1 a la variable bloqueoSTA
bloqueo(); // direccionamos a la funcion bloqueo
}

medirdistancia(); //saltamos a la funcion medir distancia

if(distancia>3) // si la distancia es mayor que 3 Cm


{
digitalWrite(bomba1, HIGH); //encendemos Bomba1
digitalWrite(valvula1, HIGH); // abrimos la V1 para permitir el paso de agua
digitalWrite(valvula2, LOW); // cerramos V1 para llenar el tk2
digitalWrite(bomba2, HIGH); // drenamos tk3 a tk1
}
if(distancia<3) // si la distancia es menor que 3 Cm

{
digitalWrite(bomba1, LOW); // apagamos bomba1
digitalWrite(bomba2, LOW); // apagamos bomba2
digitalWrite(valvula1, LOW); // cerramos valvula1
digitalWrite(valvula2, HIGH); // abrimos valvula2
}
if(distancia == 3) // si la distancia es igual a 3 Cm
{
digitalWrite(bomba1, LOW); // apagamos la bomba1
digitalWrite(bomba2, LOW); // apagamos la bomba2
digitalWrite(valvula1, LOW); // cerramos la valvula 1
digitalWrite(valvula2, LOW); // cerramos la valvula 2
}
}

void bloqueo()
{
while(bloqueoSTA == 1) // si el estado de bloqueo es == 1
{
// apagamos todos los dispositivos y cerramos las valvulas
digitalWrite(bomba1, LOW);
digitalWrite(valvula1, LOW);
digitalWrite(bomba2, LOW);
digitalWrite(valvua2, LOW);
// Encendemos la Luz intermitente
digitalWrite(luz, HIGH);

delay(1000);
digitalWrite(luz, LOW);
delay(1000);
}
}

// funcion de medir distancia


void medirdistancia()
{
digitalWrite(Pulso,LOW); // apagamos el pin
delayMicroseconds(5); // esperamos 5 microsegundos
digitalWrite(Pulso, HIGH); // enviamos el pulso
delayMicroseconds(10); // de duracion 10 microsegundos

tiempo=pulseIn(RebotePulso, HIGH); // calculamos el tiempo de rebote

distancia= int(0.017*tiempo); // calculamos la distancia en cm

delay(200);// esperamos 200 milisegundos


}

Vous aimerez peut-être aussi