Nivel de un tanque de agua con un microcontrolador

¿Cómo mido el nivel de un tanque de agua con un microcontrolador?

Esto no es una respuesta digna, pero un amigo mío hizo esto para un proyecto de arte hace un par de años. Cualquier persona interesada me encantaría presentarles y estoy seguro de que él estaría feliz de explicar cómo lo hizo. Su proyecto está aquí: unixarts.com/sealevel.html Esto combinó las bombas y los sensores y requirió suficiente precisión para subir y bajar sin demasiado sesgo.
Cuando el microcontrolador deja de funcionar, está bajo el agua.

Respuestas (13)

Bueno, suponiendo que esté operando aquí en la tierra (a diferencia de en órbita), puede usar un sensor flotante que mide con el micro. La pregunta es: ¿Necesita saber el nivel exacto, o simplemente necesita algún tipo de viaje cuando llega a alto/bajo?

En el tema 'viaje a nivel específico', puede obtener interruptores como este ; generalmente, el flotador contiene algún tipo de interruptor de detección de actitud. Cuando el nivel del agua es más bajo, el flotador termina de lado, y el interruptor está 'apagado', mientras que al subir el nivel, el flotador se pone en posición vertical y, por lo tanto, se 'encende'. Estos se utilizan a menudo para bombas de sumidero. Son bastante confiables y muy fáciles de manejar, aunque debe tener cuidado de anclarlos correctamente y asegurarse de que nada se interponga en el camino del flotador.

Si necesita saber el nivel real, entonces tiene muchas opciones, pero es menos simple. Puede usar algo como un sensor ultrasónico (haz de ultrasonido que se dispara desde la parte superior del tanque para reflejarse en el nivel del agua).

Estos muchachos parecen hacer indicadores de nivel para tanques GRANDES que consisten en un flotador y un peso externo cableados juntos. A medida que el flotador sube y baja sobre el fluido, el indicador externo se mueve adecuadamente. Podrías construir algo similar, sin nada más complicado que las fotocélulas para leer el nivel (si es un tanque grande o si quieres mucha granularidad, necesitarás muchas fotocélulas).

Alternativamente, tomando la idea del flotador cableado, podría colocar una rueda loca que se mueva cada vez que se mueva el cable, y luego conectarle un codificador. Esto le permitiría rastrear el nivel con una precisión bastante alta.

Sé que el libro Práctico Arduino , que se publicará próximamente, incluye un proyecto de sensor de profundidad del tanque de agua , que utiliza un transductor de presión diferencial para medir la presión del agua en el fondo del tanque y, a partir de ahí, calcular qué tan lleno está el tanque.

Los esquemas se encuentran en el enlace anterior, junto con un enlace al código fuente en github.

(Divulgación completa: no tengo asociación con el libro, pero he conocido a uno de los autores un par de veces en nuestros espacios de hackers locales).

Un método que me gusta, pero que no he probado, es poner dos placas aisladas en el líquido. Sin conducción, electrolosis, contaminación....... Forman las placas de un casquete. y se utilizan en algún tipo de oscilador (la elección depende de usted) Debido a que el agua es una buena dialétrica, la frecuencia depende en gran medida de la cantidad de agua entre las placas. Mide la frecuencia para obtener la profundidad.

Es posible que pueda obtener un resultado similar aplicando una señal de CA y midiendo la corriente a través de la tapa.

Ojo, depende mucho de la constante dialéctica del fluido. A menos que me equivoque, la detección capacitiva se usa más para detectar presencia/ausencia que nivel. Sin embargo, parece que casi todos los métodos con los que me he encontrado dependen de la gravedad específica. Los tanques que contienen fluidos de composición variable son difíciles de regular.
Los sensores de nivel de líquido basados ​​en capacitancia funcionan mejor para detectar la presencia o ausencia de líquido. Para leer el nivel de agua cargue/descargue las placas usando una resistencia fija y mida el tiempo. Como se mencionó anteriormente, agregar contaminantes al agua (como la sal) puede causar un cambio drástico en la capacitancia y, por lo tanto, en la lectura de un nivel de líquido fijo. Si el líquido que está midiendo es homogéneo, esto es un problema mucho menor.
Hice un oscilador de dinatrón con una bobina SMD simple lista para usar que resonaba con placas aisladas como postuló Russ. La onda sinusoidal se cuadró y alguien más contó los pulsos en el firmware, en otras palabras, lo que dijo Russ SÍ funciona.

Más detalles ayudarían, pero creo que el método ultrasónico es probablemente el más simple, conceptualmente, de todos modos (de ahí la necesidad de más detalles :-]). Preparé un sensor de nivel para el tanque de combustible en mi sótano usando un transductor ultrasónico MaxSonar. Voy a cambiar a un sensor Parallax Ping, tan pronto como pueda tener uno en mis manos. La unidad MaxSonar ha demostrado ser algo molesta; Resulta que solo tiene una resolución de una pulgada (2,54 cm), lo que equivale a casi 7 galones en mi tanque. Coloqué la unidad MaxSonar en una tapa de PVC en la parte superior del tanque apuntando hacia abajo (fuera del alcance del líquido).

Una forma de hacerlo es colocar un LED en la parte inferior del tanque apuntando hacia la parte superior y un fotodiodo en la parte superior del tanque, de cara al LED. El LED será atenuado por el agua en el tanque, deberá experimentar para determinar cuánto. Además, es mejor tomar una serie de mediciones rápidas y promediarlas al usar este método.

parece muy propenso a errores, luz ambiental, salpicaduras, etc.

Utilizo un sensor de espárrago barato de la ferretería local con un fototransistor para detectar el indicador LED. Con esto pegado al costado del tanque, detecta cuando el nivel sube por encima del sensor y nos alerta sobre una condición de nivel alto de agua.

Hay un sorprendente número de formas de comprobar el nivel. Hay sensores que usan RF, envían un pulso por una guía de ondas y detectan el reflejo de la superficie del líquido en el tanque. Hay ultrasonidos, flotadores, tubos burbujeadores, grifos de presión... El método utilizado depende del tamaño del tanque, el contenido, el entorno ambiental y otros factores.

Estoy sorprendido por todas las soluciones electrónicas complicadas aquí, usaría un potenciómetro simple. La mayoría de los microcontroladores tienen un i/p analógico básico.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Use un flotador de válvula de tanque de agua estándar (es posible que ya haya uno). El problema restante es acoplar el flotador a la olla para obtener el máximo swing (también podría usar una olla deslizante).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----
¿Cómo te aseguras de que el bote vuelva a su posición original?
El peso del flotador lo empujará hacia abajo cuando baje el nivel del agua...
No estoy tan seguro de eso. Encontrar el peso correcto del flotador de modo que flote en presencia de agua y deje caer la olla en ausencia de agua no es tan fácil. La mayoría de las ollas tienen una fricción estática bastante alta. Supongo que es posible, sin embargo, dada la configuración mecánica correcta.
Muchos de los potenciómetros deslizantes más largos tienen una fricción muy baja (utilizados en mezcladores controlados con la punta de los dedos y cubiertas de DJ). Usé un control deslizante de 4" de mi caja de brocas y lo probé con un flotador de tanque de agua normal. ¡Incluso funcionó en un flotador de cisterna de inodoro más pequeño! Por cierto, usaría una resistencia fija en serie con la olla para que, incluso si pantalones cortos en un ambiente húmedo, no excederá la salida de un puerto del controlador (o consumirá demasiada corriente de un Vref fijo).Usé una resistencia de 10k con un potenciómetro de 10k en mi configuración de prueba.
En las pruebas, solo usé un trozo de alambre doblado para sujetarlo al brazo del flotador. En la cisterna del inodoro el brazo es de plástico de sección cuadrada por lo que sería muy sencillo perforar un pequeño agujero para hacer la fijación.

Enfoque más simple

Coloque un pequeño tubo en una esquina del tanque que sea un poco más grande en diámetro que una pelota de ping pong.

Coloque un LED infrarrojo en un lado del tubo y una fotorresistencia en el lado opuesto del LED (haciendo un agujero en el tubo si es opaco o colocándolo en el exterior si es transparente). Pegue con pegamento caliente las partes eléctricas para impermeabilizarlas y deje caer la pelota de ping pong en el tubo.

Cuando el nivel del agua suba o baje hasta el punto en que la pelota de ping pong rompa el haz de infrarrojos, sabrá que alcanzó el nivel deseado. Esto funciona si solo necesita un indicador de nivel discreto (encendido/apagado).

Este sistema también se utiliza en las pistolas de paintball diseñadas para evitar que corte las bolas al garantizar que la bola completa esté en la cámara de disparo antes de permitir que el gatillo electrónico arme el solenoide de disparo.

Es simple, eficaz y requiere poca o ninguna calibración.

Otro enfoque inteligente: hacer uso de la mayor conductividad térmica del agua (líquido). La idea es tener un sensor de temperatura y medir la diferencia de su autocalentamiento cuando está sumergido y cuando está al aire libre.

De hecho, esto se ha hecho en CHCH NewZealand donde estoy, pero no lo hice, creo que tiene unos 20 años. Había una fila de muchos termistores en el exterior del tanque. Así que funciona bien para que obtenga mi voto.

Otra solución (sin juego de palabras);

Use un potenciómetro como se sugirió anteriormente. El rango de rotación normal es de 270 grados. Conecte un flotador al potenciómetro usando un brazo de pluma. (longitud=1 unidad)

Entre lleno y vacío, el brazo de la pluma se moverá 90 grados.

El ADC en un PIC es 256 o 1024 pasos (sí, cero es un paso).

Usaré 256 pasos para mayor claridad.

270 grados = 256 pasos ADC. 270/90 = 3 (un tercio del rango del potenciómetro)
255/3 = 85 pasos ADC

Programe algún código para marcar el punto de 0 grados (tanque vacío) cuando se presiona un botón.

Esto almacena un punto de compensación en la EEPROM del PIC. Ahora el potenciómetro no tiene que estar exactamente en cero porque este punto de calibración se puede configurar.

Usando trigometría, calcule una tabla de búsqueda (pista: script php) para corresponder a cada paso del ADC.

Sugerencia: cada paso de ADC corresponde a 90/85 = 1,0588 grados.

Sí, deberías haber prestado más atención en la clase de matemáticas. estúpida pérdida de tiempo en aquel entonces, indispensable ahora. comprometer el cerebro. aprender trigonometría. enseñar a otros.

Acrónimo: El viejo árabe llevó un pesado saco de heno.

La hipontenusa es la longitud del brazo de la pluma. Que sea de 1 unidad de largo. La tabla de búsqueda luego proporciona el porcentaje de la profundidad del tanque. (multiplicar por 100 por supuesto)

Por favor revise el siguiente enlace:

http://www.edgefxkits.com/contactless-liquid-level-controller

Creo que te puede ser útil.