lunes, 9 de abril de 2012

Aquarium: Diseño de la Electrónica

Una vez fabricado el alimentador de comida del acuario, todo el resto del sistema es electrónica. Para empezar realizaremos las especificaciones generales del sistema. Para poder elegir el microcontrolador a emplear.

El sistema deberá poder controlar 3 elementos. El control del motor del alimentador debe ser bidireccional por lo que emplearemos un driver en H. Para controlarlo necesitaremos 2 líneas digitales.
El control de la bomba y la luz se realizará con relés y requerirá una línea de I/O cada uno.
El sistema debe sincronizar las diferentes acciones con la hora del dia por tanto, nos convendría disponer de un reloj de tiempo real. Para mostrar la hora actual y programar el sistema necesitamos un display. Con un display LCD de 6 dígitos tenemos bastante. Si puede ser alfanumérico, mejor.
Para programar el sistema se ha elegido emplear un control con 3 botones, un botón (+) un botón (-) y un botón (OK). Para ello necesitaremos 3 líneas de I/O que, sumadas a las 4 anteriores dan un total de 7.

En definitiva necesitamos:

  • 7 Líneas de I/O
    • 2 Para el control del alimentador de comida
    • 2 Para los relés de control de la bomba de filtrado y la luz
    • 3 Para los botones de control
  • Reloj de tiempo Real
  • Display LCD
La placa STM8L Discovery, de la familia de placas Discovery de bajo coste es perfecta para esta aplicación. Dispone de un LCD alfanumérico de 6 dígitos con algunos segmentos extra adicionales. Dispone también de un cristal de cuarzo de 32768 Hz y el hardware necesario para el reloj de tiempo real. Además el precio está muy bien (Menos de 11 Euros en Farnell).

La placa STM8L Discovery
La página web de ST contiene mucha información sobre esta placa, pero lo principal para trabajar con ella a nivel de hardware es el manual de usuario.


Consiguiendo las I/Os necesarias

El único problema de la placa STM8L Discovery es que, debido a la gran cantidad de líneas de I/O que emplea el LCD, quedan pocas lineas disponibles para uso externo. En concreto sólo hay 3 líneas de I/O completamente disponibles: PA2, PA3 y PC0. La placa emplea las líneas PE7 y PC7 para controlar dos leds de usuario. Podemos emplear estas dos líneas al mismo tiempo para controlar los relés de la luz y la bomba de filtrado. Adicionalmente la línea  PC1 se emplea para el botón de usuario que lleva la placa. Dado que necesitamos 3 botones, asignaremos uno de ellos a la línea PC1 y los otros dos a las dos líneas disponibles PA2 y PA3. Con ello nos queda únicamente la línea PC0 disponible pero necesitamos dos lineas todavía para controlar el motor del alimentador.

Para obtener más líneas de I/O, podemos eliminar el sistema de medida de corriente de alimentación que incorpora la placa. Este sistema emplea las líneas de I/O PE6, PC4 y PF0. Si eliminamos los puentes de soldadura SB11, SB12 y SB14 y ponemos el jumper JP1 en posición OFF, tal y como se indica en el manual, tendremos esas 3 líneas de I/O disponibles para cualquier uso externo.

Con ello las líneas de I/O empleadas serán:

  • PA2 : Botón (+)
  • PC1 : Botón (OK)
  • PA3 : Botón (-)
  • PC0, PC4 : Control del motor del alimentador
  • PE7 : Relé de la luz
  • PC7 : Relé de la bomba
Todavia nos quedan libres las líneas PE6 y PF0 para ampliaciones futuras si hace falta.


H Drivers

Ni el motor del alimentador ni los relés pueden ser directamente accionados por un microcontrolador. Para actuar sobre ellos se requiere algún tipo de driver.
Dado que el motor ha de poder ser actuado bidireccionalmente, lo mejor es emplear un driver en H. Uno de los integrados más típicos de este tipo es el L293D que incorpora 2 drivers en H completos. Por simplicidad de soldadura, emplearemos la versión DIL de 16 pines.
Tal y como muestra su datasheet, el driver puede controlar 2 motores de manera bidireccional o 4 motores en un único sentido. En nuestro diseño emplearemos un driver H para el motor del alimentador y las otras dos mitades del driver restante para controlar los 2 relés de la luz y la bomba de filtrado.
Debido a que el driver L293D ya incorpora diodos de protección flyback, no es necesario añadirlos al esquema.


Esquema completo

Juntando todo lo anterior se llega al esquema que se muestra en la figura siguiente.

Esquema eléctrico


Las conexiones en color rojo y azul son las únicas peligrosas al estar a 220V. El resto de señales trabaja por debajo de los 5V.
En el esquema se han indicado los puertos del microcontrolador empleados y la posición en la que se halla el terminal empleado. Así, por ejemplo, el pulsador (+) S1 se halla conectado a PA2 que está disponible en el quinto terminal de la fila izquierda de conexiones de la placa. En todo caso no hay pérdida porque las señales se hallan perfectamente rotuladas sobre la placa.

También se indican los pines del encapsulado DIL16 del driver L293D. Los pines 1, 8, 9 y 16 se hallan conectados a alimentación. Los pines 1 y 9 corresponden a los Enables de los 2 drivers en H que dejaremos permanentemente activos. Los pines 8 y 16 corresponden, respectivamente, a las alimentaciones de los motores y la circuitería digital, que dejaremos a +5V.

Para abaratar costes, la alimentación eléctrica del sistema se ha construido en torno a un viejo alimentador de 12V que tenía por ahí tirado. Añadiéndole un regulador 7805 disponemos de la tensión requerida por la placa STM8L Discovery. Cualquier alimentador entre 9V y 12V habría valido mientras de la corriente suficiente para alimentar el motor y los relés.

El motor del alimentador de comida se ha conectado a los pines 3 y 6 del L293D que son la salida del primer driver H. Para girar en un sentido se ha de poner PC0 alto y PC4 bajo. Para girar en el sentido contrario se ha de poner PC0 bajo y PC4 alto, para parar el motor basta poner PC0 y PC4 en el mismo nivel lógico.



Como se observa, las conexiones de la luz y la bomba se toman de las salidas NC (Normally Closed) de los relés. Eso significa que ambos elementos se hallan activos cuando los relés están apagados. La conexión se ha realizado así para que cuando el sistema está apagado (con S4 abierto) tanto la luz como la bomba se puedan controlar manualmente con los interruptores S5 y S6. Lógicamente cuando es sistema funciona tanto S5 como S6 deben permanecer cerrados para que el sistema pueda controlar la luz y la bomba.


Los relés empleados son de tipo G5LA. La elección de estos relés se ha hecho porque son muy baratos, a menos de 1€ cada uno. En encendido de cada relé provoca el apagado del sistema que alimenta (luz o bomba de filtrado). Debido a que uno de los terminales de la bobina del relé se halla a +5V, los relés se encenderán con un nivel bajo de las salidas que lo controlan (PE7 o PC7). Por tanto, los leds de la placa LD3 y LD4 asociados, respectivamente, a PE7 y PC7, se encenderán al mismo tiempo que lo haga la luz o la bomba. A modo de ejemplo, para el control de la luz:

  • Nivel alto en PE7: Apagado de RL1 y encendido de la Luz y del LED LD3 (Verde)
  • Nivel bajo en PE7: Encendido de RL1 y apagado de la Luz y del LED LD3 (Verde)

Y para la bomba de filtrado:
  • Nivel alto en PC7: Apagado de RL2 y encendido de la Bomba y del LED LD4 (Azul)
  • Nivel bajo en PC7: Encendido de RL2 y apagado de la Bomba y del LED LD4 (Azul)

Con ello acaba la descripción del esquema eléctrico. En el proximo artículo hablaré del primer prototipo y del programa que controla el microcontrolador.

Continua con el prototipo

No hay comentarios:

Publicar un comentario