Control de Nivel de Agua en un Tanque con Arduino

control de nivel de agua en un tanque con arduino

Conoce el control de nivel de agua en un tanque con arduino y 2 formas de comprobar el nivel del agua con Arduino, Home y Ultrasonido

Control de Nivel de Agua en un Tanque con Arduino


En muchos de los proyectos de Arduino tenemos que controlar el nivel del agua con Arduino, hay varias maneras de hacerlo, te digo 2, pero habría mucho más. Estos dos métodos nos ayudarían a controlar el nivel de muchos líquidos (no tiene que ser agua).


Comprobar el nivel del agua con Arduino y dos cables es gratis.


Este tipo de control de nivel de agua tiene la principal ventaja de que lo obtenemos de forma gratuita o prácticamente gratuita, ya que sólo necesitamos unos pocos cables y una resistencia.

MATERIALES NECESARIOS


  • Arduino
  • Podemos usar lo que queramos.
  • Resistencia de 10KΩ, Conjunto de resistencia
  • Tres cables


Podemos sacarlos de cualquier cable que tengamos para la casa (USB, red, audio) o podemos comprarlos.

ESQUEMA DE CONEXIÓN

El diagrama de cableado es muy sencillo, basta con conectar los tres cables de la siguiente manera:
Cable rojo: De una salida de 5V (puede ser la salida de Arduino) al fondo del tanque.
Cable negro: Desde el suelo (arduino GND) hasta la resistencia y desde allí hasta el depósito a la altura donde queremos medir el nivel.
Cable verde: De una laboriosa entrada digital (en este caso D4) a la resistencia.



OPERACIÓN

El funcionamiento es el más sencillo, como se puede ver en el diagrama, tenemos dos levas dentro del tanque (una en la parte inferior y otra a la altura que queramos) y otro cable conectado a la entrada digital del Arduinos (en este ejemplo D4, pero valdría la pena cualquier otra).
Arduino lee esta entrada en cualquier intervalo de tiempo dado (en este caso un segundo).
Esta pantalla puede tener dos valores, dependiendo de los cables en la memoria:
ALTO (1) - Cuando ambos cables entran en contacto con el agua.
BAJO (0) - Cuando uno o ambos cables no entran en contacto con el agua.

CÓDIGO

El código también es muy sencillo, iniciamos el pin digital, lo leemos y dependiendo de si es BAJO (0) o ALTO (1), definimos una acción, en este ejemplo mostramos un mensaje por consola.
BAJO: Tienes que llenar el depósito.
ALTO: El tanque tiene agua.


//Pin que nos da el nivel
int pinNivel = 4;
//Variable para almacenar el estado de nivel
int estadoNivelAgua = 0;
//Tiempo que debe esperar para la siguiente iteración del bucle
int tiempoEspera = 1000;//1 segundo
void setup()
{
//Iniciamos el pin el pin que nos da el nivel
pinMode(pinNivel, INPUT);
//Nicializa el serial
Serial.begin(9600);
}
void loop()
{
// Leermos el pin que nos da el nivel
estadoNivelAgua = digitalRead(pinNivel);
//Dependiendo del estado muestra un mensaje u otro.
if (estadoNivelAgua == HIGH) {
Serial.println(«El deposito tiene agua»);
} else {
Serial.println(«Debes llenar el deposito.»);
}
delay(tiempoEspera); //Espera el tiempo indicado
}


CONCLUSIONES

Esta es una forma de controlar el nivel del agua con arduino fácil y económica, si lo necesitamos, podemos añadir múltiples niveles y activar funciones entre los diferentes, si quieres que te diga cómo va, por favor haz un comentario y yo lo añadiré.

Sensor ultrasónico HC-SR04 para el control del nivel de agua con Arduino

El sensor ultrasónico hc-sr04 nos permite calcular la distancia entre el sensor y el líquido, su precio es muy razonable.

MATERIALES NECESARIOS

Arduino

Podemos usar lo que queramos.

Sensor ultrasónico hc-sr04Cable para conexiones

IGUALDAD DE CONEXIONES

Las conexiones son bastante sencillas, básicamente hay que conectar las 3 patas del sensor a nuestro Arduino.


  • Cable rojo: De una salida de 5V (también puede ser la salida de Arduino) a la clavija del sensor de 5V.
  • Cable negro: Tierra (arduino GND) con sensor 5V Pin
  • Cable verde: De una tediosa entrada digital (en este caso D7) a la clavija ECHO del sensor.
  • Cable amarillo: De una tediosa entrada digital (en este caso D8) a la clavija TRIG del sensor.

Falta el cable amarillo en la imagen.


OPERACIÓN

Es necesario colocar el sensor hc-sr04, que emite ultrasonido, hacia el interior del depósito, y esto nos indicará la distancia a la que se encuentra el nivel del agua, con esta información calibraremos dos distancias, una para depósito lleno y otra para depósito vacío.
Si la distancia es menor que la del depósito vacío, aparecerá un mensaje en la consola de depósito vacío.
Si la distancia es mayor que la del depósito lleno, se mostrará un mensaje de depósito lleno por consola.

CÓDIGO

El código tambien es muy sencillo iniciamos el pin digital, y usamos la función pulsoCalcularDistanciaEnCmpara calcular la distancia al agua dependiendo de en que humbral se encuentre esta definimos una acción, en este ejemplo mostrar un mensaje por consola
Si menor DEPOSITO_LLENO: El deposito esta lleno.
Si mayor DEPOSITO_VACIO: Debes llenar el deposito.
La función pulsoCalcularDistanciaEnCm lo que hace es enviar un pulso y esp


int cm = 0;
//Pin en el que toma la lectura
int pinLectura = 7;
//Umbral al que indicamos que esta lleno el deposito
int DEPOSITO_LLENO = 40;
//Umbral al que indicamos que esta a medias
int DEPOSITO_MEDIAS = 60;
//Umbral al que indicamos que esta vacío el deposito
int DEPOSITO_VACIO = 75;
/*
*Funcion que nos indica la distancia a la que se encuentra el agua.
*/
long pulsoCalcularDistanciaEnCm()
{
pinMode(pinLectura, OUTPUT);
digitalWrite(pinLectura, LOW);
delayMicroseconds(2);
digitalWrite(pinLectura, HIGH);
delayMicroseconds(10);
digitalWrite(pinLectura, LOW);
pinMode(pinLectura, INPUT);
return 0.01723 * pulseIn(pinLectura, HIGH);
}
void setup()
{
pinMode(pinLectura, INPUT);
Serial.begin(9600);
}
void loop()
{
//recupera la distancia en Centimetros
cm = pulsoCalcularDistanciaEnCm();
if (cm<DEPOSITO_LLENO){
Serial.print(«El deposito esta lleno «);
//Pinta al distancia
Serial.print(cm);
Serial.println(«cm»);
}else if (cm>DEPOSITO_MEDIAS && cm<DEPOSITO_VACIO){
Serial.print(«El deposito esta a medias «);
//Pinta al distancia
Serial.print(cm);
Serial.println(«cm»);
}else if (cm>DEPOSITO_VACIO){
Serial.print(«El deposito esta vacio «);
//Pinta al distancia
Serial.print(cm);
Serial.println(«cm»);
}
delay(100); // Espera 100 milisegundos
}

CONCLUSIONES

Controlar el nivel del agua con arduino y el  de ultrasonidos HC-SR04 nos permite un control preciso de en que estado se encuentra el deposito en cada instante.
Si quieres más información tecnica sobre el sensor HC-SR04 Luis Llamas tiene un artículo muy interesante con la explicación teorica.


ENTRADAS RELACIONADAS


  • sensor de nivel de agua ultrasonico
  • proyecto control de nivel de agua
  • arduino sensor/switch de nivel de agua horizontal
  • dispensador de agua con arduino
  • control de nivel de agua automatico
  • sensor switch de nivel de agua arduino sensor flotador
  • llenado de botellas con arduino
  • llenado con arduino