Abordaremos la construcción de un reloj digital muy especial, ya que entre sus características se encuentran la función termómetro y el disponer de dígitos gigantes, por lo que se puede utilizar en salones de venta, comercios, etc. Las características más sobresalientes de este reloj son: dígitos formados por diodos LED, de aproximadamente 7 centímetros de alto, pero fácilmente ampliables; función termómetro, con la posibilidad de agregar la lectura de la temperatura exterior; y la posibilidad de utilizar el display construido para otras funciones, como por ejemplo, un dispensador de turnos. Como el corazón del proyecto es un microcontrolador, las posibilidades de ampliar las funcionalidades del reloj son enormes, muchas veces solamente modificando el software que lo controla. Debido a que se trata de un proyecto que reviste cierta complejidad, hemos dividido el artículo en tres partes. Intentaremos brindar toda la información necesaria sobre el funcionamiento del reloj y de los componentes implicados, de manera que los interesados puedan modificarlo para adaptarlo a sus necesidades.

Reloj digital parte 1 (de 3)
Construya y programe su propio reloj con termómetro.

El proyecto en tres placas

El concepto de “divide y vencerás” es muy útil en electrónica. En este caso tendremos una placa que contendrá todos los LEDs que forman el display, y unos pocos componentes destinados a manejarlos; una segunda placa se encargará del manejo del encendido y apagado de cada uno de los segmentos que forman los dígitos del display y de memorizar el valor representado en él; y la tercera placa es la que controla la generación de los datos a mostrar, lee el sensor de temperatura y provee un sistema para el ajuste de la hora y los minutos. Cada una de estas partes tiene el potencial de ser empleada en otro proyecto.

El display en sí consta de cuatro dígitos de 7 segmentos, con los que se pueden representar los dígitos del “0” al “9” y algunos caracteres, con dos puntos entre cada par de dígitos, para poder mostrar con su parpadeo que el reloj está efectivamente funcionando. Si bien comercialmente es posible encontrar displays de 7 segmentos, incluso de tamaños respetables, hemos decidido construir nosotros mismos los dígitos, de manera que podamos lograr el tamaño que deseemos, manteniendo un coste realmente bajo, y a la vez nos sirve de excusa para explicar varios conceptos teóricos. Los segmentos de cada dígito se conforman mediante varios LEDs conectados en serie, manejados por un transistor capaz de suministrarles la corriente necesaria para que enciendan.

Este display será el encargado de mostrar la hora en formato “HH:MM” y la temperatura (formato “TT º”). Para manejar la placa del display utilizaremos un esquema circuital denominado “registro de desplazamiento”, sobre el que ya hemos hablado en NeoTeo, por lo que recomendamos leer el artículo citado en los enlaces que acompañan esta nota. Dicho circuito tiene la ventaja de permitirnos manejar el display mediante solo 4 líneas de control, en lugar de las 29 necesarias si encendiéramos cada segmento en forma individual. Las líneas empleadas conforman un control de tipo serial, mediante una señal que provee pulsos de reloj (llamada CLOCK), otra que entrega los datos propiamente dichos (DATA), una línea de RESET para limpiar el display, y otra que hemos denominado “ON/OFF”, destinada a apagar el display durante unos milisegundos para que al escribir los datos en él no se perciba ningún tipo de parpadeo.

Por último, y a pesar de su pequeño tamaño, la tercera placa es la más importante del proyecto. Destinada a albergar el microcontrolador que gestiona todas las funciones del proyecto, el sensor de temperatura y los pulsadores de ajuste, se conectará a la placa controladora del display mediante un cable plano. El microcontrolador seleccionado ha sido el PIC 16F628A de Microchip, debido a su bajo costo, cantidad de memoria disponible y número de pines de I/O. Lo dotaremos de un cristal de 4 MHz para dar mayor precisión a nuestro reloj, aunque este microcontrolador puede funcionar perfectamente sin un clock externo.

Reloj digital parte 1 (de 3)
Vista posterior del display, con su placa controladora.
Reloj digital parte 1 (de 3)
Componentes y circuito impreso del display.

El sensor de temperatura

Existen varios transductores de temperatura que pueden realizar la tarea mencionada. Entre los más conocidos y utilizados están las termocuplas, que consisten en un par de metales que al ser sometidos a una temperatura determinada generan un pequeño potencial que puede ser leído. Este tipo de sensores tienen la gran ventaja de un amplio rango de temperaturas de trabajo, capaces de medir valores superiores a los 1000 ºC, pero debido a su falta de linealidad no resulta apropiado para nuestro proyecto.

Otros sensores muy comunes son los que mediante una unión PN pueden variar una tensión en unos pocos milivoltios por grado centígrado. Quizás el exponente más común de este tipo de transductores sea la familia de sensores LM35, LM335, etc., que entregan una tensión de 10 mV/ºC. Pero tiene la desventaja de necesitar un conversor A/D para que el microcontrolador pueda interpretar esa variación de tensión como una temperatura.

La solución a nuestro problema viene de la mano de un sensor de Dallas Semiconductor, cuyo código es DS1820. Este circuito integrado, a pesar de su reducido tamaño y de tener solo tres terminales, posee una serie de características que lo hacen ideal para este proyecto. Dentro de la pequeña cápsula se encuentra un sensor de temperatura, un conversor analógico-digital y una interfaz capaz de entregarnos el dato de la temperatura leída en forma serial, utilizando un bus propietario de la empresa, denominado 1-wire, justamente por utilizar solamente un conductor para leer/escribir en el sensor. Puede sonar extraña la palabra “escribir” asociada a un sensor de temperatura, pero esta pequeña maravilla incluye una pequeña memoria EEPROM en la que podemos guardar algún dato de interés (por ejemplo, una temperatura máxima, mínima, etc.). A todo esto se suma la posibilidad de incluir varios sensores sobre la misma línea de datos, de manera que con solo tres cables (dos de alimentación y uno de datos) se puede leer la temperatura de varios sensores.

Reloj digital parte 1 (de 3)
Termocupla tipo K.
Reloj digital parte 1 (de 3)
Sensor digital DS1820.

La construcción de los dígitos

Como dijimos, el display dispone de cuatro dígitos de 7 segmentos cada uno. Para resolver el problema del tamaño de los dígitos, utilizaremos varios LEDs comunes, redondos o rectangulares, del color que nos guste (nosotros elegimos el rojo) para armar los segmentos, y de esta manera, modificando el número de LEDs o su separación, podremos construir el display del tamaño que queramos. Desde aquí los alentamos a modificar el circuito para adaptarlo a sus necesidades, y para ello les daremos toda la información necesaria.

El elemento base de nuestro display es el segmento. Con siete de ellos, en las posiciones adecuadas, podemos representar cualquier dígito. Como se puede ver en la figura 1, para encender un LED hace falta que lo atraviese una corriente determinada en el sentido correcto. No todos los LEDs funcionan con la misma tensión y corriente, pero podemos asumir valores promedio para realizar los cálculos, y en todo caso, el lector puede consultar la hoja de datos correspondiente a los LEDs que vaya a usar para adecuar los valores de las resistencias empleadas. Tomaremos un valor de 15 mA para la corriente que necesitará un LED para encender. El sentido de circulación de esta corriente por dentro del LED debe ser desde el ánodo hacia el cátodo para que este se ilumine, por lo que el ánodo se conectará al positivo de la fuente, y el cátodo al negativo. También supondremos que la caída de tensión en cada diodo LED es de unos 2 V, aunque esto varía un poco de un modelo a otro.

Como el valor de la tensión de nuestra fuente de alimentación será superior a 2 V, deberemos incluir una resistencia limitadora en serie. El cálculo de su valor se realiza mediante la fórmula que acompaña la figura 2, y para una fuente de 12 V debe tener un valor de 666.66 ohmios. Tal como se explica en el artículo correspondiente (ver enlaces), las resistencias no se fabrican en todos los valores posibles, así que deberemos utilizar el valor comercial más cercano, que para este caso es de 680 ohmios.

Ahora bien, todo lo explicado es correcto para encender un LED, pero nuestro segmento, para ser visible a una gran distancia, debe constar de al menos 3 o 4 de ellos. El número elegido de LEDs se conecta entre sí en serie, de modo que el ánodo de uno queda unido al cátodo del siguiente, y así sucesivamente. Esto significa que la corriente que los atravesará a todos será la misma, y el voltaje aplicado deberá ser mayor que la tensión necesaria en cada uno (los mencionados 2 V) por el número de LEDs utilizados.

La figura 2 también muestra la manera de conectar tres LEDs en serie, y la fórmula necesaria para calcular la resistencia limitadora de corriente. Si el lector decide utilizar segmentos con una mayor cantidad de LEDs, deberá recalcularla introduciendo en la fórmula los valores adecuados. En el caso de usar una fuente de alimentación de 12 V como la de nuestro proyecto, la resistencia necesaria será de 400 ohmios. Nuevamente, al buscar en un catálogo vemos que el valor más cercano disponible es de 390 ohmios, y es el que en la práctica emplearemos.

Reloj digital parte 1 (de 3)
Figura 1.
Reloj digital parte 1 (de 3)
Figura 2.

El control de los dígitos

En este punto debemos recordar que el display se controla mediante una placa que implementa un registro de desplazamiento, por lo que utilizaremos un sistema que permita apagar los dígitos en aquellos momentos en que estemos escribiendo datos en el shift-register, y no aparezcan “cosas raras” en el display. Dicho sistema consiste simplemente en una serie de transistores, uno por dígito, que actuará como una llave que encienda o apague todos los segmentos del dígito elegido cuando lo deseemos, mediante una señal específica.

En este proyecto, todos los dígitos se encenderán y apagarán al mismo tiempo, por lo que los transistores conmutarán todos al mismo tiempo. No obstante, dadas las características educativas que tiene el proyecto, no los hemos conectado de manera fija entre sí, sino que los cablearemos sobre el circuito impreso. De esta manera, si decidimos utilizar el display en otro proyecto que necesite que algunos dígitos enciendan en forma individual, podremos hacerlo.

Explicado en términos simples, un transistor puede ser visto como un dispositivo de tres pines, donde la corriente que se aplica a uno de ellos, denominado “base”, controla una corriente mayor entre sus otros dos terminales, llamados “emisor” y “colector”. Esta es una gran simplificación de lo que es un transistor, pero es suficiente para entender la función que cumple en este circuito. La primera figura al final de esta página nos muestra la manera de conectar un transistor para encender los tres LEDs de un segmento. T1 es un transistor PNP. Cuando la base de T1 está puesta a masa (un 0 lógico) y el cátodo del último LED está conectado al negativo de la fuente, los LEDs se encenderán. Las resistencias conectadas a la base del transistor limitan la corriente que deberá entregar el pin del microcontrolador, y “R” se calcula tal como lo explicamos antes. Por último, la segunda figura muestra el esquema eléctrico completo del display.

Reloj digital parte 1 (de 3)
El transistor controla el encendido de los LEDs...
Reloj digital parte 1 (de 3)
Esquema completo del display.

También pondremos a su disposición los archivos necesarios para que puedan imprimir los PCB (circuitos impresos) con el método ya explicado en NeoTeo (ver enlaces), y los esquemas eléctricos restantes. La tercera nota de la serie mostrará cómo construir la placa controladora y el software encargado de controlar todo el proyecto. Hasta entonces.

Reloj digital parte 1 (de 3)
Detalle del circuito impreso del display.
Reloj digital parte 1 (de 3)
Reloj digital parte 1 (de 3)

Enlaces relacionados

  • Más información
  • Más información
  • Más información