Controlador de acuarios con PIC (link a otra pag)
Publicado: Jue, 16 Ago 2007, 15:36
Este proyecto esta completo y deberia funcionar si el software esta bien "echo"
http://www.monigot.com/acuarios/controlador/index.php
Alimentador Automatico !!!! paso a paso...
http://www.monigot.com/acuarios/constru ... /index.php
Extracto de la pag.... los creditos a quien corresponden.. carlitos de monigot....
Aunque en un primer momento se consideró diseñar los diferentes módulos de forma separada (con su propio microcontrolador), la capacidad del PIC16F874A nos da la posibilidad de controlarlo todo con un solo microcontrolador. Los módulos desarrollados son los siguientes:
Módulo de control: Es el módulo principal del sistema, recoge la información suministrada por los sensores y medidores y actúa en consecuencia. También se encarga de realizar las tareas periódicas del acuario como encender y apagar las luces y dar de comer a los peces.
Módulo de configuración e información WEB (acuaweb) y RS232: Se trata de un módulo puramente software que permite la visualización de datos a través de una interfaz web o a través de un puerto serie. Además podemos configurar los parámetros del acuario (temperatura, iluminacion, comidas, etc...) y realizar actuaciones puntuales con alguno de ellos.
Módulo de temperatura: Consiste en una serie de sensores de temperatura encapsulados para poder sumergirlos y de unos actuadores para controlar los diferentes calefactores.
Módulo medidor de Ph: Mide el Ph del agua con un sensor estandar y convierte la señal para que el módulo de control la pueda procesar. También tiene actuadores para activar los controladores de Ph.
Módulo medidor de nivel: Informa al módulo de control del nivel de agua existente en el acuario.
Módulo actuador de luces: Se encarga de alimentar los tubos de iluminación.
Módulo actuador de alimentación: Será el que introduzca comida en el agua cuando el módulo de control lo considere necesario.
Módulo generador de oleaje: Este módulo se encargará de activar las bombas generadoras de olas en el orden correcto.
Módulo de control
El módulo de control es el encargado de obtener datos de todos los sensores del sistema y de manejar los actuadores que mantienen el acuario en su estado óptimo.
El encargado de todo esto es un microcontrolador, en concreto el PIC16F874A de Microchip. Es un microcontrolador RISC con 35 instrucciones diferentes que se ejecutan en cuatro ciclos de reloj, puede funcionar hasta a 20Mhz y tiene 4096 posiciones de memoria de 14 bits para el programa, 192 bytes de ram y 128 bytes de memoria EEPROM para poder guardar datos permanentemente. Tiene treinta y tres pines programables como entradas o salidas independientes, dos cronómetros/alarmas de 8 bits o uno de 16, puerto serie (USART) y ocho convertidores A/D de diez bits.
En la página de Microchip tenemos modelos más pequeños como el PIC12C509 de solo 8 pines y otros más grandes y con más prestaciones como el PIC18F8722 con 128 Kbytes de memoria, 54 pines programables, convertidores A/D, USART. etc. Prácticamente todos los microcontroladores PIC son compatibles entre sí y podríamos poner cualquiera de ellos con solo "recablear" los pines del integrado.
Para comunicarnos con el PIC16F874A utilizaremos el puerto serie USART integrado en él. Como los niveles del microcontrolador son TTL (0 y 5V para el "0" y el "1" respectivamente) utilizaremos un adaptador de señal para convertirlos a niveles RS232 (12 para el "0" y -12V para el "1"). El adaptador elegido es el MAX233A de dallas/maxim. Este integrado es capaz de manejar dos canales de comunicación y no necesita ningún componente externo.
Módulo controlador de temperatura
Éste módulo contiene tanto los sensores de temperatura como los actuadores que manejan los calefactores. Consiste en una serie de sensores de temperatura DS18S20 de dallas/maxim y los relés que actuarán sobre los calefactores del acuario.
El DS18S20 es un termómetro digital de 9 bits que se conecta a través de un bus 1-wire. Tiene una precisión de ±0.5°C en el rango de -10°C a +85°C y cada uno de ellos dispone de un identificador único de 64 bits, lo que permite que puedan coexistir varios sensores en un único bus 1-wire. El bus 1-wire puede ser de hasta 100 metros de largo por lo que la colocación de los sensores respecto del módulo no debería ser un problema.
El DS18S20 es un integrado con forma de transistor, tiene tres pines de los cuales dos sirven de alimentación (GND y Vdd) y el otro (DQ) es el que se conecta al bus. Este sensor puede funcionar también sin alimentación, con lo que se conoce como alimentación parásita. En este modo de funcionamiento la alimentación la saca directamente de la linea DQ por lo que solo se necesitan dos cables (DQ y GND).
Para proteger el sensor del agua lo montaremos dentro de una ampolla de vidrio o plástico rellena de silicona. Es importate que no entre humedad en el sensor para que no haya posibilidad de cortocircuito o de que se oxiden los pines.
El bus 1-wire es capaz de manejar varios dispositivos conectados a él por lo que con un bus es suficiente, este bus lo manejaremos por el pin RA4. Por el conector 1-wire concectaremos los sensores de temperatura DS18S20 y podemos colocar tantos como queramos repartidos por el acuario, en nuestro caso pondremos uno en el recipiente del sifón y otro en el filtro biológico.
Para controlar la temperatura utilizaremos dos calefactores típicos de acuario conectados a T1 que se activarán cuando la temperatura del acuario baje del nivel preestablecido. Estos calefactores disponen de un termostato que los enciende y apaga cuando es necesario, pero como el control de temperatura lo realizaremos nosotros, configuraremos los calefactores a una temperatura un poco mayor de la que necesitemos para que en caso de mal funcionamiento del controlador no suba la temperatura excesivamente. El hecho de usar dos calefactores nos asegura que la temperatura del tanque sea la óptima aún en el caso de que uno de ellos deje de funcionar.
Habitualmente nunca necesitamos enfriar el agua ya que la temperatura ambiente suele ser menor que la necesaria para el acuario, si necesitaramos manejar un enfriador lo conectaríamos a la borna marcada como T2 que se acciona cuando la temperatura supera el nivel configurado. Debemos tener en cuenta que cuantos mas calefactores/enfriadores conectemos al relé más potencia necesita soportar por lo que tendremos que instalar uno adecuado a nuestras necesidades o conectar varios en paralelo.
Módulo controlador de pH
Este módulo se encargará de obtener el pH del agua y de manejar los actuadores de control. El montaje está basado (mas bien copiado) en el medidor de pH para acuarios de José Manuel García, en su página podrás encontrar una explicación detallada del circuito y otras muchas cosas interesantes.
A grandes rasgos diremos que la salida del circuito nos da una tension de 0 a 999mV que corresponden a un pH de entre 0 y 9.99. Esta salida la conectaremos directamente a uno de los conversores A/D del PIC16F874A. En un principio únicamente usaremos un sensor y en caso de necesitar otro más tendremos que duplicar el circuito anterior.
Usaremos una sonda de pH estándar que suministra una tensión inversamente proporcional al pH del agua. Esta sonda proporciona 0V con pH neutro (ph 7) y varía aproximadamente 60mV por grado de pH. En la siguiente imagen tenemos una gráfica con el comportamiento de una sonda de este tipo.
Los sensores de pH se conectan al PIC16F874A por las entradas análogicas de los pines RA1, RA2 y RA3. Colocaremos uno en el recipiente del sifón y ahorraremos espacio en el acuario. Con uno es suficiente porque el pH cambia muy lentamente y la circulación de agua es lo suficientemente rápida para que sea uniforme en todo el sistema. Además son bastante caros (alrededor de 60 euros).
Al igual que en el caso de la temperatura, tenemos dos conectores para el control del pH: PH1 y PH2. PH1 se activa cuando el nivel de pH del acuario baja del nivel configurado y PH2 cuando se eleva por encima del nivel máximo.
Módulo controlador del nivel del agua
La forma más sencilla de controlar el nivel de agua del acuario es por medio de una boya instalada en su interior. Esta boya accionará unos contactos que nos indicarán que el agua está por encima o por debajo de un determinado nivel. Este método es completamente válido pero hemos previsto que en un futuro podamos conectar un sensor de nivel que nos indique exactamente la cantidad de agua del acuario, las entradas del PIC16F874A a las que conectaremos los sensores son conversores A/D por lo que simplemente con un sensor que nos proporcione una salida proporcional al nivel de agua tendremos un control mucho más preciso.
Necesitaremos controlar el nivel de agua en varios puntos del sistema: en el acuario, en el filtro, en el depósito de agua osmotizada y en el depósito de cambio de agua. En el caso del acuario es necesario saber si el agua baja de determinado nivel para añadirle más, en el filtro biológico es necesario para asegurarnos de que la bomba no trabaja en vacío. Los otros dos sensores se encargan de controlar que no se acabe el agua del depósito de llenado y de que no se llene el depósito de desagüe.
Disponemos de dos actuadores para controlar el nivel de agua, uno para introducir agua en el acuario y otro para sacarla. Con esto podemos mantener constante el nivel de agua del acuario simplemente añadiendo un poco cuando baje el nivel. Además podremos hacer los cambios periódicos de agua automáticamente siempre que dispongamos de un desagüe y de un depósito de agua osmotizada.
Módulo controlador de la iluminación
El control de la iluminación consiste básicamente en encender y apagar las luces a unas horas determinadas. Con este montaje podemos hacer algo mas complicado y manejar varias luces, por ejemplo unos tubos haciendo de luz solar y una pequeña bombilla a modo de luna. Además, con la posibilidad de conectar un ordenador por el puerto serie al controlador, podemos hacer ciclos de varias luces, por ejemplo podriamos emular las horas de luz y la fase de la luna con la fecha actual, simular dias nublados encendiendo menos luces, etc.
Para poder controlar varias luces tenemos cuatro conectores diferentes: L1, L2, L3 y L4.
Módulo de alimentación
Para automatizar la alimentación de los peces hemos previsto varios actuadores con el fin de poder accionar diferentes alimentadores automáticos. Este módulo consiste en uno o varios depósitos de comida colocados encima del acuario con un dispensador que proporciona la dosis adecuada. Los conectores C1 y C2 accionan los dispensadores.
Módulo de oleaje
Este módulo es el encargado de simular oleaje en el acuario. El oleaje se consigue activando unas bombas distribuidas por el acuario de forma ordenada.
Montaje del sistema
Montaremos cinco placas diferentes: dos de alimentación (una para el controlador y otra para la sonda de pH), otra con el circuito acondicionador de señal para la sonda de pH, la placa con el PIC16F874A y por último la placa de relés. La placa con el LCD y las seis teclas es opcional si tenemos conectado un ordenador al controlador.
http://www.monigot.com/acuarios/controlador/index.php
Alimentador Automatico !!!! paso a paso...
http://www.monigot.com/acuarios/constru ... /index.php
Extracto de la pag.... los creditos a quien corresponden.. carlitos de monigot....
Aunque en un primer momento se consideró diseñar los diferentes módulos de forma separada (con su propio microcontrolador), la capacidad del PIC16F874A nos da la posibilidad de controlarlo todo con un solo microcontrolador. Los módulos desarrollados son los siguientes:
Módulo de control: Es el módulo principal del sistema, recoge la información suministrada por los sensores y medidores y actúa en consecuencia. También se encarga de realizar las tareas periódicas del acuario como encender y apagar las luces y dar de comer a los peces.
Módulo de configuración e información WEB (acuaweb) y RS232: Se trata de un módulo puramente software que permite la visualización de datos a través de una interfaz web o a través de un puerto serie. Además podemos configurar los parámetros del acuario (temperatura, iluminacion, comidas, etc...) y realizar actuaciones puntuales con alguno de ellos.
Módulo de temperatura: Consiste en una serie de sensores de temperatura encapsulados para poder sumergirlos y de unos actuadores para controlar los diferentes calefactores.
Módulo medidor de Ph: Mide el Ph del agua con un sensor estandar y convierte la señal para que el módulo de control la pueda procesar. También tiene actuadores para activar los controladores de Ph.
Módulo medidor de nivel: Informa al módulo de control del nivel de agua existente en el acuario.
Módulo actuador de luces: Se encarga de alimentar los tubos de iluminación.
Módulo actuador de alimentación: Será el que introduzca comida en el agua cuando el módulo de control lo considere necesario.
Módulo generador de oleaje: Este módulo se encargará de activar las bombas generadoras de olas en el orden correcto.
Módulo de control
El módulo de control es el encargado de obtener datos de todos los sensores del sistema y de manejar los actuadores que mantienen el acuario en su estado óptimo.
El encargado de todo esto es un microcontrolador, en concreto el PIC16F874A de Microchip. Es un microcontrolador RISC con 35 instrucciones diferentes que se ejecutan en cuatro ciclos de reloj, puede funcionar hasta a 20Mhz y tiene 4096 posiciones de memoria de 14 bits para el programa, 192 bytes de ram y 128 bytes de memoria EEPROM para poder guardar datos permanentemente. Tiene treinta y tres pines programables como entradas o salidas independientes, dos cronómetros/alarmas de 8 bits o uno de 16, puerto serie (USART) y ocho convertidores A/D de diez bits.
En la página de Microchip tenemos modelos más pequeños como el PIC12C509 de solo 8 pines y otros más grandes y con más prestaciones como el PIC18F8722 con 128 Kbytes de memoria, 54 pines programables, convertidores A/D, USART. etc. Prácticamente todos los microcontroladores PIC son compatibles entre sí y podríamos poner cualquiera de ellos con solo "recablear" los pines del integrado.
Para comunicarnos con el PIC16F874A utilizaremos el puerto serie USART integrado en él. Como los niveles del microcontrolador son TTL (0 y 5V para el "0" y el "1" respectivamente) utilizaremos un adaptador de señal para convertirlos a niveles RS232 (12 para el "0" y -12V para el "1"). El adaptador elegido es el MAX233A de dallas/maxim. Este integrado es capaz de manejar dos canales de comunicación y no necesita ningún componente externo.
Módulo controlador de temperatura
Éste módulo contiene tanto los sensores de temperatura como los actuadores que manejan los calefactores. Consiste en una serie de sensores de temperatura DS18S20 de dallas/maxim y los relés que actuarán sobre los calefactores del acuario.
El DS18S20 es un termómetro digital de 9 bits que se conecta a través de un bus 1-wire. Tiene una precisión de ±0.5°C en el rango de -10°C a +85°C y cada uno de ellos dispone de un identificador único de 64 bits, lo que permite que puedan coexistir varios sensores en un único bus 1-wire. El bus 1-wire puede ser de hasta 100 metros de largo por lo que la colocación de los sensores respecto del módulo no debería ser un problema.
El DS18S20 es un integrado con forma de transistor, tiene tres pines de los cuales dos sirven de alimentación (GND y Vdd) y el otro (DQ) es el que se conecta al bus. Este sensor puede funcionar también sin alimentación, con lo que se conoce como alimentación parásita. En este modo de funcionamiento la alimentación la saca directamente de la linea DQ por lo que solo se necesitan dos cables (DQ y GND).
Para proteger el sensor del agua lo montaremos dentro de una ampolla de vidrio o plástico rellena de silicona. Es importate que no entre humedad en el sensor para que no haya posibilidad de cortocircuito o de que se oxiden los pines.
El bus 1-wire es capaz de manejar varios dispositivos conectados a él por lo que con un bus es suficiente, este bus lo manejaremos por el pin RA4. Por el conector 1-wire concectaremos los sensores de temperatura DS18S20 y podemos colocar tantos como queramos repartidos por el acuario, en nuestro caso pondremos uno en el recipiente del sifón y otro en el filtro biológico.
Para controlar la temperatura utilizaremos dos calefactores típicos de acuario conectados a T1 que se activarán cuando la temperatura del acuario baje del nivel preestablecido. Estos calefactores disponen de un termostato que los enciende y apaga cuando es necesario, pero como el control de temperatura lo realizaremos nosotros, configuraremos los calefactores a una temperatura un poco mayor de la que necesitemos para que en caso de mal funcionamiento del controlador no suba la temperatura excesivamente. El hecho de usar dos calefactores nos asegura que la temperatura del tanque sea la óptima aún en el caso de que uno de ellos deje de funcionar.
Habitualmente nunca necesitamos enfriar el agua ya que la temperatura ambiente suele ser menor que la necesaria para el acuario, si necesitaramos manejar un enfriador lo conectaríamos a la borna marcada como T2 que se acciona cuando la temperatura supera el nivel configurado. Debemos tener en cuenta que cuantos mas calefactores/enfriadores conectemos al relé más potencia necesita soportar por lo que tendremos que instalar uno adecuado a nuestras necesidades o conectar varios en paralelo.
Módulo controlador de pH
Este módulo se encargará de obtener el pH del agua y de manejar los actuadores de control. El montaje está basado (mas bien copiado) en el medidor de pH para acuarios de José Manuel García, en su página podrás encontrar una explicación detallada del circuito y otras muchas cosas interesantes.
A grandes rasgos diremos que la salida del circuito nos da una tension de 0 a 999mV que corresponden a un pH de entre 0 y 9.99. Esta salida la conectaremos directamente a uno de los conversores A/D del PIC16F874A. En un principio únicamente usaremos un sensor y en caso de necesitar otro más tendremos que duplicar el circuito anterior.
Usaremos una sonda de pH estándar que suministra una tensión inversamente proporcional al pH del agua. Esta sonda proporciona 0V con pH neutro (ph 7) y varía aproximadamente 60mV por grado de pH. En la siguiente imagen tenemos una gráfica con el comportamiento de una sonda de este tipo.
Los sensores de pH se conectan al PIC16F874A por las entradas análogicas de los pines RA1, RA2 y RA3. Colocaremos uno en el recipiente del sifón y ahorraremos espacio en el acuario. Con uno es suficiente porque el pH cambia muy lentamente y la circulación de agua es lo suficientemente rápida para que sea uniforme en todo el sistema. Además son bastante caros (alrededor de 60 euros).
Al igual que en el caso de la temperatura, tenemos dos conectores para el control del pH: PH1 y PH2. PH1 se activa cuando el nivel de pH del acuario baja del nivel configurado y PH2 cuando se eleva por encima del nivel máximo.
Módulo controlador del nivel del agua
La forma más sencilla de controlar el nivel de agua del acuario es por medio de una boya instalada en su interior. Esta boya accionará unos contactos que nos indicarán que el agua está por encima o por debajo de un determinado nivel. Este método es completamente válido pero hemos previsto que en un futuro podamos conectar un sensor de nivel que nos indique exactamente la cantidad de agua del acuario, las entradas del PIC16F874A a las que conectaremos los sensores son conversores A/D por lo que simplemente con un sensor que nos proporcione una salida proporcional al nivel de agua tendremos un control mucho más preciso.
Necesitaremos controlar el nivel de agua en varios puntos del sistema: en el acuario, en el filtro, en el depósito de agua osmotizada y en el depósito de cambio de agua. En el caso del acuario es necesario saber si el agua baja de determinado nivel para añadirle más, en el filtro biológico es necesario para asegurarnos de que la bomba no trabaja en vacío. Los otros dos sensores se encargan de controlar que no se acabe el agua del depósito de llenado y de que no se llene el depósito de desagüe.
Disponemos de dos actuadores para controlar el nivel de agua, uno para introducir agua en el acuario y otro para sacarla. Con esto podemos mantener constante el nivel de agua del acuario simplemente añadiendo un poco cuando baje el nivel. Además podremos hacer los cambios periódicos de agua automáticamente siempre que dispongamos de un desagüe y de un depósito de agua osmotizada.
Módulo controlador de la iluminación
El control de la iluminación consiste básicamente en encender y apagar las luces a unas horas determinadas. Con este montaje podemos hacer algo mas complicado y manejar varias luces, por ejemplo unos tubos haciendo de luz solar y una pequeña bombilla a modo de luna. Además, con la posibilidad de conectar un ordenador por el puerto serie al controlador, podemos hacer ciclos de varias luces, por ejemplo podriamos emular las horas de luz y la fase de la luna con la fecha actual, simular dias nublados encendiendo menos luces, etc.
Para poder controlar varias luces tenemos cuatro conectores diferentes: L1, L2, L3 y L4.
Módulo de alimentación
Para automatizar la alimentación de los peces hemos previsto varios actuadores con el fin de poder accionar diferentes alimentadores automáticos. Este módulo consiste en uno o varios depósitos de comida colocados encima del acuario con un dispensador que proporciona la dosis adecuada. Los conectores C1 y C2 accionan los dispensadores.
Módulo de oleaje
Este módulo es el encargado de simular oleaje en el acuario. El oleaje se consigue activando unas bombas distribuidas por el acuario de forma ordenada.
Montaje del sistema
Montaremos cinco placas diferentes: dos de alimentación (una para el controlador y otra para la sonda de pH), otra con el circuito acondicionador de señal para la sonda de pH, la placa con el PIC16F874A y por último la placa de relés. La placa con el LCD y las seis teclas es opcional si tenemos conectado un ordenador al controlador.