Control de iluminación y temperatura de un acuario

Pseudotropheus cebra en la cuevaEscalar mirando a la cámaraLos dos parámetros más importantes para controlar en un acuario son la temperatura del agua y la iluminación. La primera normalmente se regula directamente en el termostato del calentador, que es un simple bimetal con una ruleta de ajuste que está dentro de la misma ampolla de vidrio que contiene el elemento calefactor. Hay varias razones para controlar externamente la temperatura, la primera es para alejar la sonda del elemento calefactor, con lo que las medidas de temperatura serán más reales, otra buena razón es como doble sistema de seguridad para asegurarnos que los peces no se «cuecen» en caso de avería del termostato, por último nos da flexibilidad, para por ejemplo hacer un perfil de temperatura variable con el tiempo.

En cuanto a la luz, sobre todo en un acuario plantado, es importante tener una buena iluminación para que las plantas crezcan sanas y no proliferen las algas, a la vez que hacemos un ciclo razonable de luz y oscuridad. En el acuario a controlar están instalados tres fluorescentes, uno de ellos de luz cálida y dos de luz fría. Como vamos a tener un sistema inteligente será fácil hacer el amanecer y el anochecer encendiendo y apagando fluorescentes en el orden adecuado.
Vamos a ver el sistema a controlar, y como hacerlo. El acuario tiene los siguientes elementos:

  • Balasto electrónico sacado de una bombilla de bajo consumoIluminación: Tenemos un acuario plantado de agua dulce y 180L. Usando fluorescentes se puede iluminar con entre 1/2W y 1W por litro. Con tres fluorescentes de 30W cada uno se cubren las necesidades básicas de luz. Usando tres bombillas de bajo consumo, compradas en el todo a cien del barrio por 2,5€ cada una podemos fabricar los balastos que nos hacen falta para arrancar instantáneamente los fluorescentes y reducir las pérdidas por calentamiento de las reactancias tradicionales. Vamos a poner un relé por fluorescente y así podremos encender y apagar independientemente cada uno. Además con uno de los fluorescentes, que es de color cálido haremos el amanecer y el anochecer, este será el primero en encenderse y el último en apagarse, luego irán entrando los otros dos para tener los tres encendidos durante las horas centrales del día.
  • Calentador: Es una resistencia eléctrica de 300W metida en una ampolla de vidrio, con una termostato bimetálico que se regula con una ruleta. Vamos a poner la ruleta a la temperatura máxima admisible para los peces, como control de seguridad, pero el controlador electrónico será el que haga el trabajo de regulación utilizando un relé y una sonda DS1820 metida dentro de un tubo de silicona para que no se moje.
  • Filtro: Por el momento no vamos a tocar el filtro que es básicamente una bomba que funciona a 220V. Podríamos hacer un control de caudal, para ver que los tubos o el filtro siguen limpios, y podríamos aumentar o disminuir la velocidad de la bomba con un variador de velocidad, pero en mi opinión no merece la pena la complicación si tenemos un mantenimiento adecuado.
  • Otros: Mediante el medidor de ultrasonidos que desarrollamos en una entrada anterior, se podría medir continuamente el nivel de agua para reponer con un sistema automático, o avisar con una alarma de una posible fuga o un exceso de evaporación. También se puede utilizar una sonda de pH y una electroválvula dosificando CO2 para aumentar el crecimiento de las plantas. Dejaremos todo esto para otra ocasión, pero es una posibilidad que se abre inmediatamente al incluir un control digital a la pecera.

16F683 en placa entrenadoraVistos los elementos a controlar, y dado que nos basta con cuatro relés y una sonda de temperatura, he decidido emplear un PIC de sólo 8 patas, el 12F683, que tengo en una pequeña placa entrenadora con regulador de tensión integrado.

Placa de relésSi no usamos la señal de reset nos da 6 entradas/salidas libres para hacer lo que queramos, como tiene el regulador de tensión, sólo hay que enchufar a un alimentador de 9 o 12V y listo.

Para los cuatro relés que necesitamos he comprado en ebay un bloque prefabricado con las señales optoacopladas y las clemas y conectores ya soldados, por unos 4$  que es menos de lo que me cuesta un relé suelto en la tienda. Basta conectar cada pin del bloque a una salida y la masa y +5V a la alimentación regulada de la placa del micro.

Sonda de temperatura sumergida DS1820Por último la medición de la temperatura se hace con un sólo pin mediante un DS1820, que ya hemos visto en otras entradas como se maneja. En este caso ponemos el sensor, junto a la resistencia de pull-up y un metro de cable dentro de un tubo de silicona de los que se usan para los aireadores de acuario y lo sellamos por el extremo que irá sumergido con  plástico termofusible.

El programa utiliza el timer1 para generar una interrupción cada 262144 us, llevamos un contador de us y cuando alcanzamos 1000000, aumentamos los segundos, minutos, horas, … para generar un RTC por software que servirá de base de tiempo para todo lo demás.

Usaremos la eeprom del micro para almacenar los parámetros iniciales del programa: La hora de encendido y apagado de cada elemento, la fecha y hora por defecto después de un reset y el perfil de temperaturas hora a hora. Nada más arrancar cargamos los datos en variables y empezamos el bucle principal.

Utilizamos la librería que ya teníamos de otras entradas para medir continuamente la temperatura desde la sonda y comparala con la referencia que nos da el perfil de temperatura deseado, actuando en consecuencia sobre el relé que activa el calentador.

El encendido y apagado de las luces se hace comparando la hora actual con los datos configurados.

Aquí os dejo los fuentes del programa ya terminado:

Fichero sólo visible para usuarios registrados

Después de cargar el programa en el PIC hay que cargar en la eeprom los datos de configuración y poner en hora. Empezando en la dirección cero tenemos: Hora, minuto, segundo, día, mes, años desde 2012, hora de encendido fluorescente 1, hora de apagado 1, minuto encendido 1, minuto apagado 1, idem para 2 y 3. Y empezando en la dirección 20 (en decimal) tenemos los 24 bytes que corresponden al perfil de temperatura horario en grados centígrados.

NOTA: He hecho una nueva versión con una 16F886 con el reloj basado en un cristal de cuarzo de 20MHZ que mantiene más estable el reloj y nos deja señales libres para introducir más sensores o actuadores, adjunto aquí el programa, aunque es muy similar al anterior.

Fichero sólo visible para usuarios registrados

Deja una respuesta

Tu email nunca se publicará.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies