0% encontró este documento útil (0 votos)
344 vistas4 páginas

Control de Piscina con Arduino

El documento describe el código para controlar una piscina mediante Arduino. Se asignan pines digitales para controlar bombas, válvulas y sensores. Se define una función para medir la distancia mediante un sensor ultrasónico y otras funciones para controlar el funcionamiento de los dispositivos en función de la distancia medida y el estado de los sensores.

Cargado por

gabriel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
344 vistas4 páginas

Control de Piscina con Arduino

El documento describe el código para controlar una piscina mediante Arduino. Se asignan pines digitales para controlar bombas, válvulas y sensores. Se define una función para medir la distancia mediante un sensor ultrasónico y otras funciones para controlar el funcionamiento de los dispositivos en función de la distancia medida y el estado de los sensores.

Cargado por

gabriel
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

// 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


}

También podría gustarte