SGCG

…esto no es un subtítulo…

Ir a: contenido categorías calendario archivo suscripción

Volver arriba

Proyecto de electrónica con microcontrolador: termómetro animado

2011-09-12

Termómetro animado.
Un colorido termómetro animado: ¡el Termometronator!

Vamos a construir un vistoso termómetro digital que mostrará la temperatura con un vistoso juego de luces animadas. Nuestro diseño se descompone en tres componentes básicos:

Para ser más específicos, nuestro diseño general es como sigue:

Módulo termométrico:
está formado por un sensor termométrico como el LM35.
Módulo de representación de datos:
está formado por un visualizador luminoso de siete segmentos y tres leds de colores.
Módulo de control:
Está formado por una tarjeta Arduino. Arduino es una popular familia de tarjetas con microcontroladores.

Módulo termométrico

El módulo termométrico es muy sencillo. Está formado por un sensor termométrico LM35 que podemos conectar directamente a una entrada analógica del microncontrolador. El sensor elegido no es muy caro y tiene una calibración muy cómoda de usar: la temperatura (T) medida en Celsius es igual a la tensión de salida (V) en decenas de milivoltios:
T = V ⋅ 0,1 °C ⁄ mV.
En unidades más civilizadas, la conversión es ésta:
T = 271,15 K + V ⋅ 0,1 K ⁄ mV.

El conector va conectado directamente al módulo microcontrolador. Como éste tiene un conversor analógico-digital de mil veinticuatro niveles para un rango de 0 V a 5 V, las medidas tienen una granularidad de aproximadamente 0,5 K. Si queremos algo más fino, necesitamos hacer un montaje algo más sofisticado.

Módulo de representación de datos

Usamos un visualizador luminoso de siete segmentos para mostrar la temperatura (medida en °C) en base 10. Como sólo usamos un visualizador, sólo podemos mostrar una cifra a un tiempo, pero esto no supone problema alguno, ya que podemos alternar la cifra que mostramos de forma cíclica:

Para saber qué cifra estamos mostrando, usamos tres leds:

Los leds, tanto del visualizador de siete segmentos como los que indican el orden de la cifra, han de estar protegidos mediante resistencias. Con una placa con salidas de 5 V y leds con una caída de tensión de entre unos 1,6 V y unos 2,0 V, suele ser adecuado poner resistencias de 330 Ω. Las salidas digitales de la placa Arduino usada (con un microcontrolador Atmega8) aguantan una intensidad de hasta 40 mA, así que estamos en el lado seguro con esta protección.

Conexión al módulo de control

La tarjeta Arduino tiene catorce conectores digitales (numerados del 0 al 13) y seis conectores analógicos (numerados de A0 a A5), además de tomas de tierra y de tensión de alimentación a 5 V.

Usaremos los conectores digitales del 2 al 8 para controlar los segmentos de la a a la f del visualizador de siete segmentos, mientras que el conector 9 controlará el led de las décimas, el 10 controlará el led de las unidades y el 11 controlará el led de las decenas. Hay dos posibilidades de conexión y uso del visualizador de siete segmentos:

En cuanto al módulo termométrico, conectaremos su alimentación a las tomas de 5 V y tierra y su salida a la entrada analógica A0.

La siguiente imagen muestra la conexión si el visualizador de siete segmentos es de ánodo común. Si es de cátodo común, la conexión a la toma de 5 V ha de ser reemplazada por una a la tierra («GND»).

Esquema del circuito.
Esquema del Termometronator.

La tarjeta Arduino también tiene comunicaciones en serie, tanto a través de USB como a través de los conectores digitales 0 y 1. Podemos usar estas comunicaciones para diagnosticar el funcionamiento del aparato, lo que nos lleva al tema de la siguiente sección, el software.

Software del módulo de control

El software, que podemos compilar y guardar en el Arduino con el entorno de desarrollo del proyecto o directamente con un compilador para AVR y el software avrdude, está disponible aquí:
termometronator.pde

La primera línea define si estamos usando un visualizador de ánodo común o de cátodo común:

ánodo común:
#define common_anode 1
cátodo común:
#define common_anode 0

El programa realiza unas tareas de arranque en la función setup y después entra en un bucle en la función loop. Esta última función llama a otras que hacen el trabajo sucio: leer el sensor y mostrar los datos. Hay un tiempo de espera de 500 ms entre cada paso de la animación.

El código es fácil de entender, pero quizá no es tan compacto y poco exigente en memoria como podría ser. Los nombres de las funciones y las variables están en inglés, que es el idioma correcto para dirigirse a una máquina.


Categorías: Electricidad, DIY

Permalink: http://sgcg.es/articulos/2011/09/12/proyecto-de-electronica-con-microncontrolador-termometro-animado/