Nuevo PCB + Sorteo

Diseño de un nuevo circuito impreso con 2 dígitos de 7 segmentos, LED SMD, incluyendo los dos puntos separadores y el punto decimal. Este circuito impreso es compatible con el anterior de un sólo dígito que utilicé en el ‘Reloj SMD’. Así se pueden utilizar ambas placas en el mismo montaje y construir cualquier tipo de display, sin la necesidad de tener que pegar más diodos en el PCB.

Construye un Reloj SMD

Reloj serie con el nuevo PCB

Display de 4 dígitos

El display del último reloj que hice, estaba construido con 4 circuitos impresos  de un dígito de 7 segmentos. Cada uno del los dígitos permite el control de encendido de un punto decimal, el cuál se incluye en cada PCB. Sin embargo, este reloj utiliza además del punto decimal un separador central, formado por dos puntos LED. Como es lógico, para poder controlar 2 signos es necesario utilizar la salida del control decimal de 2 dígitos. Por otra parte, en los PCBs no estaba contemplada la posibilidad de montar los dos puntos separadores. La solución fue la de colocar 2 LED entre las dos placas centrales, pegando uno en cada tarjeta.

Pegar LED en el display

Ambos LED van conectados en serie. El ánodo de esta serie, como es el punto común, va conectado con la alimentación al +12V.

Cableado LED

El cátodo de la serie lo tuve que cablear hasta la salida de control del punto decimal del dígito anterior (el punto decimal del dígito de la izquierda no se utiliza en este reloj).

Nuevo PCB

A pesar de que la solución que tomé es válida, no queda muy elegante hacer semejante ‘engendro’ en un diseño nuevo. Al final decidí hacer otro circuito impreso, con los dos puntos además del punto decimal, y que fuera totalmente compatible con los circuitos impresos que ya tenía fabricados.

PCB: 2 dígitos de 7 segmentos

Este nuevo circuito impreso contiene 2 dígitos, y los dos puntos LED están montados entre ambos dígitos. Este circuito impreso va montado en el centro del display del reloj de 4 dígitos, ocupando los 2 dígitos centrales; y a cada lado va montada otra placa de un sólo dígito.

Nuevo display del Reloj

¿Dónde fabricar el PCB?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos, pero no en todas podemos conseguir pequeñas tiradas a buen precio. Por suerte, ahora disponemos de Internet y es mucho más fácil que antes. Podemos buscar empresas en cualquier parte del mundo, y es más fácil encontrar un fabricante que haga nuestros prototipos (PCB) a buen precio. Por suerte, se puso en contacto conmigo el fabricante de circuitos impresos PCBWay, preguntando si quería hacer una colaboración con ellos. Lo primero que hice es visitar su página Web, y me pareció muy interesante su manera de trabajar.

Proyectos compartidos en PCBWay

https://www.pcbway.com/project/shareproject/

Esta empresa, aparte de ser grande y tener muy buenos precios, dispone de un apartado en su Web para alojar los diseños y poder compartirlos. Creo que la idea es muy buena para ambas partes. El diseñador recibe un porcentaje de las ventas que se realicen de sus diseños y el fabricante aumenta sus ventas.

Link of my shared project: 
PCB from PCBWay

Lote PCBs

Sorteo por cortesía de: PCBWay

Sorteo patrocinado por PCBWay

El sorteo se realizará el próximo día 23 de Diciembre de 2017, y habrá 3 ganadores. Cada ganador recibirá un cupón de regalo para mandar a fabricar sus propios PCB’s. Los circuitos impresos podrán ser de una o dos caras, y con un tamaño máximo de 100×100 milímetros… con transporte incluido.

PARTICIPANTES

El sorteo se realizará entre los suscriptores de este canal, que dejen un comentario en la línea de comentarios del video (YouTube). Si quieres participar, no te olvides de dejar sin marcar en tu cuenta de YouTube la casilla: ‘Mantener todas mis suscripciones en privado’ (por lo menos el día 23 de Diciembre).

Logo PCBWay
https://www.pcbway.com/

CIRCUITOS IMPRESOS (PCB)

Archivos GERBER para fabricar este nuevo PCB, con 2 dígitos de 7 segmentos:

PCB_Display_2x7.zip

Construye un Reloj SMD

Fabricación de un Reloj-Cronómetro-Temperatura, encadenando 4 módulos SMD de 7 segmentos con control serie. El controlador de este reloj está construido a partir del micro controlador AT89S52, con encapsulado TQFP de 44 pines (SMD).

Hora en el display

ESQUEMAS

CPU: Reloj SERIE

Display: Reloj SERIE

Módulo RTC: DS1302

Las comunicaciones entre el micro-controlador y el chip de reloj DS1302 se realizan mediante 3 hilos:

  1. Reloj (SCLK)
  2. Entrada/Salida de datos (I/O)
  3. Habilitación (CE)
Módulo RTC: DS1302
Módulo RTC: DS1302

El módulo RTC ya incluye el cristal de cuarzo que necesita el chip DS1302, y una pila de 3V para mantener sus datos cuando falta la alimentación. La conexión entre este módulo y la CPU es de 5 hilos, 2 de la alimentación y 3 de control.

Comunicaciones con DS1302
Comunicaciones con DS1302

Sensor de temperatura: DS18B20

El control de este sensor de temperatura es bidireccional y se realiza mediante un sólo pin, así su encapsulado sólo tiene 3 pines: VCC, GND y Datos.

Sensor: DS18B20
Sensor: DS18B20

El DS18B20 se puede comprar con encapsulado normal, su aspecto es el de un transistor, o ya montado dentro de una cápsula de acero inoxidable. El encapsulado en acero inoxidable permite sumergir el sensor en líquidos, y también es muy aconsejable para utilizarlo en el exterior.

El chip DS18B20 es un sensor temperatura digital,  su resolución es configurable entre 9 y 12 bits. Por defecto, de fábrica está configurado con 12 bits. A máxima resolución, sus últimos 4 bits se corresponden con las lecturas decimales de: 0,5°/ 0,25° / 0,125° / 0,0625°.  Puedes ver más detalles técnicos de este sensor en el siguiente artículo:

Firmware Reloj LED #2 (Temperatura, Hora de Verano)

FUENTE DE ALIMENTACIÓN

Para alimentar este reloj se necesita una fuente de alimentación de 12 VDC, con una corriente mínima de 200 mA. La solución más barata y eficaz, es incluir dentro de la caja del reloj una pequeña fuente de alimentación conmutada de 12V / 400 mA.

Fuente conmutada 12V

CONFIGURACIÓN

Para cambiar los datos de fecha, hora, cronómetro y el resto de parámetros de configuración, se utilizan dos pulsadores:

  1. MODE
  2. PLUS

Para modificar los datos del reloj, seguir el siguiente diagrama de configuración:

Configuración RELOJ SERIE

SELECCIONAR MODO: RELOJ/CRONÓMETRO

El modo de funcionamiento RELOJ/CRONÓMETRO se determina durante la fase de arranque, mientras se está mostrando en el display  un mensaje de texto rotando, en la que se muestra la versión del firmware. Si no se toca ningún pulsador, el modo de funcionamiento será: RELOJ. Para cambiar a modo CRONÓMETRO en cualquier momento, seguir los siguientes pasos:

  • Pulsar los dos botones a la vez: RESET
  • Cuando aparezca el mensaje rotante, mantener pulsado el botón 1 (MODE)

Cronómetro en el display

Una vez que que hayamos entrado en el modo CRONÓMETRO, ya podremos configurar sus parámetros de funcionamiento. Estos valores se guardarán en el chip de memoria del reloj (DS1302), y estos serán los nuevos valores de arranque del cronómetro. Al igual que sucede con los parámetros del reloj, tendremos que tener conectada la pila de tampón en el chip, si no queremos perder todos los datos cuando falte la alimentación.

Detalles de la presentación del Display

Cuando se está funcionando en modo RELOJ, es posible seleccionar entre 3 tipos de presentación. La información que muestra el display se cambia mediante una breve pulsación del botón 2 (PLUS):

  1. Hora / (*) Alterno: Hora y Temperatura
  2. Temperatura
  3. Alterno: Hora, Fecha y Temperatura

(*) El modo alterno de la presentación 1ª, se muestra en caso de que se active la alarma de temperatura en el menú de configuración. En caso contrario, la presentación 1ª mostrará la hora de forma permanente.

Temperatura en el display

Cuando se active el modo de presentación alterno, la temperatura se mostrará de forma síncrona con el reloj, y lo hará cada 5 segundos. Entre el segundo 5 y el 55 de cada minuto, nunca se mostrará en el segundo ‘0’ de cada minuto. La temperatura sólo aparecerá durante un segundo de cada 5, en total 11 veces en cada minuto.

Alarma de Temperatura

La lectura del sensor de Temperatura se realiza cada 10 segundos. De manera que entre dos presentaciones sucesivas de 5 segundos, sólo una de las lecturas será en tiempo real. Cuando está utilizando la presentación 1ª en modo alterno, los segundos acabados en ‘0’ mostrarán la temperatura leída anteriormente, excepto en el segundo ‘0’ de cada minuto que no se muestra. En el caso de que la temperatura sobrepasara alguno de los dos umbrales de alarma, el aviso acústico se realizará cuando el valor acaba de ser leído. Es decir, la alarma de temperatura sólo sonaría en los segundos acabados en ‘5’.

Alarmas horarias

El reloj permite configurar 2 alarmas horarias, sin prioridad entre ellas pero siguiendo este criterio: Cuando una de las dos alarmas se dispara, mientras permanezca en su periodo activo, la otra alarma nunca podrá dispararse. 

Las dos alarmas horarias pueden valer para los 7 días de la semana, o estar limitadas a los 5 días laborables, quedando inactivas todos los Sábados y Domingos. En modo RELOJ, el punto decimal del dígito de la derecha (esquina inferior derecha del display) esta asociado a la alarma horaria. Las alarmas horarias pueden configurarse para que suenen una sola vez (1 minuto si no se silencia antes) o con repeticiones. Las repeticiones se realizarán cada 5 segundos. Para silenciar el sonido de una alarma, realizar una breve pulsación en el botón 2 (PLUS). Si después de sonar una alarma se quieren anular todas sus repeticiones sin cambiar la configuración del reloj, es necesario pulsar los dos botones a la vez (RESET).

Estados posibles del LED indicador de alarma horaria:

  • APAGADO: No existe ninguna alarma horaria en las próximas 24 horas
  • PARPADEANDO: Existe alguna alarma horaria dentro de las próximas 24 horas.
  • FIJO: Alarma ACTIVA, sonando o dentro del periodo de repetición.

Hora: Verano/Invierno

En algunos países existen dos tipos horarios:

  1. Horario estándar, el que corresponde con el huso horario (Horario de invierno).
  2. Horario de verano:

El cambio de hora se aplica una vez al año, haciendo que del horario estándar (o de invierno) se pase al horario de verano. Aunque la primera vez que se aplicó este cambio de hora fue durante la Primera Guerra Mundial, dejo de aplicarse hasta la crisis del petróleo de 1973. El objetivo es el de aprovechar mejor la luz solar, consumiendo menos electricidad.

Cambios horarios (Invierno/Verano)
Cambios horarios (Invierno/Verano)

HORARIO DE VERANO

Último domingo de MARZO:  A las 2:00 AM  se adelanta a las 3:00 AM

… se adelante 1 hora el reloj

HORARIO DE INVIERNO

Último domingo de OCTUBRE: A las 3:00 AM  se atrasa a las 2:00 AM

… se atrasa 1 hora el reloj

FIRMWARE

El firmware de este reloj se programa una vez montado el micro controlador (AT89S52) en su circuito impreso, a través de su interface de programación serie ICSP. Lo ideal sería utilizar un programador que tuviera dicho interface, pero si no lo tienes, puedes hacerlo con ARDUINO.

Programador ICSP con ARDUINO

El archivo que necesitas para programar este reloj (firmware), lo puedes descargar de forma gratuita desde el siguiente enlace:

J_RPM_v1_RELOJ_SERIE.HEX

FABRICAR LA CAJA CON UNA CNC

Archivos para cortar la madera tipo DM de 10 mm, en una CNC, y fabricar la caja de este reloj:

Caja_CNC_RELOJ_.zip

Piezas cortadas para montar la caja

CIRCUITOS IMPRESOS (PCB)

Archivos GERBER para fabricar el PCB de la CPU:

PCB_CPU_RELOJ.zip

PCB: CPU del Reloj SERIE

Archivos GERBER para fabricar el PCB de la CPU (v2):

PCB_CPU2.zip

PCB: CPU del Reloj SERIE (Modificada)

En esta versión se corrige el tamaño de los taladros, se incluye la posibilidad de utilizar dos tipos de conector en sus salidas y se añade una toma auxiliar de +5V

Archivos GERBER para fabricar el PCB del Display ( 1 dígito de 7 segmentos):

PCB_Display_RELOJ.zip

PCB: Display 7 segmentos serie

Si quieres ver los detalles de fabricación, configuración y puesta en marcha de este reloj, echa un vistazo al siguiente video:

 

Caja a medida con CNC

Diseño y fabricación de una caja a medida, cortando las piezas con la ayuda de una fresadora digital (CNC). El diseño de las piezas lo hice con el software SketchUp. Tuve que corregir el archivo que genera SketchUp para poder utilizarlo en la CNC. Para comprobar el código ‘G’ y corregir el archivo, utilicé el simulador por software CAMotics

Con el fin de controlar los display’s de 7 segmentos SMD que tengo, he mandado fabricar otro circuito impreso para montar la CPU.

PCB de la CPU

Esta CPU está basada en el micro-controlador AT89S52 de ATMEL. Como este micro-controlador se puede programar sin desmontarlo del circuito impreso, a través de su interface ICSP, he elegido el encapsulado de tipo SMD. El circuito impreso tiene una altura muy parecida a la del  display de 7 segmentos, y la idea es la de fabricar una caja de madera a medida, para construir un display con 4 dígitos.

SketchUP

Para cortar las piezas de madera con precisión, he utilizado una fresadora digital (CNC). Para dibujar las piezas a medida y poder exportar los datos a la CNC, he utilizado el software SketchUp.

Software SketchUp

A pesar de que este software funciona muy bien, he encontrado un problema a la hora de generar los archivos de código ‘G’. Los archivos contienen una serie de instrucciones adicionales que dañan las piezas a fabricar. Para localizar el lugar exacto donde se encuentran estas instrucciones para eliminarlos, he utilizado otro software que emula el funcionamiento de la CNC.

CAMotics 

El software CAMotics permite la ejecución del código ‘G’ de forma visual, y esto facilita la localización de las instrucciones que se deben eliminar.

Software CAMotics

El software permite la edición de los archivos y su posterior visualización, para comprobar que los cortes que hará la CNC sean los correctos.

Construcción de la caja

Después de la fase de diseño de la caja y conversión de sus datos en código ‘G’, el trabajo de corte y fresado de todas las piezas lo realiza la CNC. Si queremos obtener un buen acabado y precisión, es importante que los cortes se realicen en capas, no en una sola pasada.

Fresado de la caja

También es importante incluir unas pequeñas zonas en cada cara de las piezas, en las que la fresadora no realice el corte por completo. Estos pequeños puntos de sujeción evitarán que se muevan las piezas de su estructura durante el corte, evitando su desplazamiento y marcado por la fresa.

Montaje de la caja

Una vez cortadas todas las piezas que componen le caja, incluido su frontal de metacrilato, la pegamos con cola blanca (dejando la tapa lateral derecha sin pegar). La tapa lateral derecha irá sujeta con 2 tornillos, y es la que nos dará el  acceso al montaje y desmontaje de todos sus componentes en el interior. Para obtener un buen acabado, se sellan las juntas de todas las uniones que van pegadas, con cola blanca y serrín de la misma caja, suavizando todas las aristas con una lija especial para madera.

Ajuste de los PCB's en la caja

Para terminar se pinta la caja en color negro mate, con pintura en spray, y se comprueban los soportes colocando los circuitos impresos en su lugar y cerrando la caja.

 

¿Programar con interrupciones?

Elegir el modo de programar un microprocesador: consultando de forma cíclica el estado de cada periférico (Polling), o creando una interrupción por cada periférico a controlar. Métodos a seguir para programar el microprocesador AT89S52 con 2 interrupciones y una consulta cíclica. Posibles efectos indeseados cuando se programa con interrupciones.

Interrupciones AT89S52

Cuando se programa un microprocesador con la finalidad de tomar decisiones, dependiendo del estado de alguno o varios dispositivos periféricos, como podrían ser: pulsadores, un reloj en tiempo real (RTC), termómetros, alarmas, etc… existen dos formas posibles de hacerlo:

-> La forma más sencilla y clásica sería consultar de forma cíclica el estado de cada periférico.

-> Lo ideal sería habilitar una interrupción en el procesador por cada periférico a controlar.

Consulta secuencial y periódica

En este proceso de consulta, también conocido como polling en inglés, es el propio procesador el que determina el momento en el que realiza la consulta.

Consulta secuencial

Este método tiene el inconveniente de ser poco eficiente, porque el procesador consume muchos recursos realizando las instrucciones de sondeo… y además en algunas aplicaciones, una pequeña demora de tiempo afecta a la precisión de la medida o produce efectos indeseados. Por ejemplo, un error en la precisión cuando se utiliza un temporizador del procesador como patrón de tiempo de un reloj o cronómetro. Efectos indeseados, como podrían ser parpadeos, cuando se genera una señal PWM para el control de brillo de un display… o inestabilidad  si se utiliza esta misma señal PWM para  regular la velocidad de un motor.

Programar con interrupciones

Una interrupción sirve para detectar en tiempo real el momento en el que se debe realizar la consulta a cada periférico. Con la interrupción, es el periférico quien se encarga de avisar al procesador, y mientras tanto el procesador puede realizar otras tareas.

Habilitación de las interrupciones

El orden de prioridad de todas las interrupciones se pueden programar en el procesador. Así el procesador decidirá si un proceso se debe interrumpir o no, en caso de que se produzca una interrupción mientras se está atendiendo a otra, o cuando se produzcan dos o más interrupciones de forma simultánea. Un mal uso de la prioridad en las interrupciones, también podría provocar efectos indeseados.

Prioridad de las interrupciones

En la imagen anterior, al no tener la prioridad de interrupción el Timer que genera la señal PWM, se producen fluctuaciones en el ancho de impulso generado.

 

 

Temporizador digital para insoladora

Construcción de un temporizador para la insoladora. Como este programador es programable entre 1 segundo y 100 minutos, no lo he integrado dentro de la insoladora. Así es posible utilizarlo para temporizar cualquier dispositivo que vaya conectado a la red eléctrica.

Temporizador digital terminado

Este temporizador está construido con el micro-controlador AT89S52 y se puede programar sin desmontarlo de la placa de circuito impreso, utilizando el interface ICSP . Si no dispones de un programador, puedes hacerlo con Arduino.

Programador ICSP con ARDUINO

 Firmware

El archivo necesario para programar el micro-controlador AT89S52 de este temporizador digital, puedes descargarlo desde el siguiente enlace:

 J_RPM_v1_TEMP_LUZ.HEX

Esquema

Este circuito se alimenta con una tensión continua de 5V. Podría utilizarse cualquier fuente de alimentación convencional o cargador de un dispositivo móvil. Al final he decidido  incorporar en este montaje una pequeña fuente de alimentación conmutada de 5V, ya que son muy baratas y se pueden integrar muy bien dentro del mismo circuito impreso del temporizador.

Temporizador digital: ESQUEMA

Para el control de salida de tensión he utilizado un relé controlado por un transistor. De esta manera no habrá problemas con el tipo de carga, resistiva o reactiva, ni la potencia a conectar. Sólo habrá que elegir el relé más adecuado a la corriente máxima que necesitemos controlar.

Circuito impreso

El circuito impreso lo puedes realizar siguiendo el proceso que más te convenga, por transferencia desde el papel con la plancha o utilizando una placa de circuito impreso fotosensible. A continuación os dejo la imagen del circuito impreso, tanto en positivo como en negativo, con el tamaño adecuado para imprimir a escala 1:1, utilizando papel o transparencia de tamaño A4.

PCB
PCB para imprimir en A4

Hay que tener cuidado al hacer el contacto y no ponerlo al revés… las letras se tienen que leer mirando la cara del cobre (cara de soldaduras)

Montaje

El montaje de los componentes en el circuito impreso es muy sencillo, son muy pocos componentes y ninguno de ellos es SMD (montaje superficial). Sólo hay que prestar atención al colocar en su posición algunos componentes: condensadores electrolíticos, diodo, transistores, circuito integrado y zumbador.

PCB del temporizador montada

Con el fin de facilitar el montaje y no confundir las conexiones del circuito impreso con el display, os dejo el siguiente esquema de montaje:

Plano de montaje

Instrucciones de funcionamiento

Este temporizador digital es programable entre 1 segundo y 100 minutos, pero siempre arranca con un tiempo prefijado de 5 minutos. Al conectar la alimentación, lo primero que aparecerá es la versión del firmware.

Temporizador digital (Versión)

A continuación aparece la pantalla EDICIÓN con el valor por defecto de 5 minutos.

Modo: EDICIÓN

El cursor parpadea en la posición en la que puede modificarse el valor , mediante la pulsación del botón rotulado con la flecha hacia arriba (ON/OFF).

El botón con la flecha hacia la derecha (SET), desplaza el cursor al siguiente dígito y almacena el valor anterior. Si no se quiere cambiar el tiempo que muestra el display, sólo hay que ir pulsando el botón SET hasta que desaparezca el cursor por la derecha y salga del modo edición.

Modo: FUNCIONAMIENTO

Cuando el temporizador está en modo FUNCIONAMIENTO,  en la línea superior del display se muestra la posición del contacto del relé de forma gráfica. Pulsando el botón ON/OFF se alterna el arranque y parada del tiempo.

Temporizando tiempo

Si se detiene el tiempo antes de finalizar la cuenta -tiempo prefijado a la derecha de la línea inferior del display- se guarda el valor del tiempo contabilizado hasta el momento, pudiendo continuar la cuenta con la siguiente pulsación. El valor de tiempo prefijado se puede modificar en cualquier momento pulsando el botón SET, pero teniendo en cuenta que el temporizador tendrá que estar parado.

El botón SET con el cronómetro en marcha no actúa

 

 

Interruptor temporizado

Construcción de un interruptor temporizado, ajustable entre 1 y 99 minutos. Este circuito permite un gran ahorro eléctrico, si lo utilizamos para desconectar de forma automática los equipos/electrodomésticos en periodos nocturnos. Por ejemplo una caldera eléctrica para el agua caliente, alumbrado permanente de una habitación infantil, equipos de calefacción o aire acondicionado en habitaciones, etc.

Funcionamiento del circuito

Este interruptor temporizado está construido a partir del micro-controlador AT89S52. Se ha utilizado este modelo  de 40 pines, con el fin de simplificar la construcción del circuito y permitir su programación sin necesidad de desmontar el micro-controlador del circuito.

CPU: Interruptor temporizado

Además, así es posible utilizar Arduino como programador ICSP:

Programador ICSP con ARDUINO

Firmware

El archivo necesario para programar el AT89S52, se puede descargar de forma gratuita desde el siguiente enlace:

Firmware: J_RPM_v1_TIEMPO.HEX

Este interruptor temporizado se activa mediante el cierre de un pulsador o interruptor. Al conectar la alimentación se recarga el contador de minutos, y empieza a descontar el tiempo. El tiempo (minutos)  se configura mediante el estado de los 8 interruptores DIP (ver la tabla binaria en el esquema), pero limitando el valor máximo a 99 minutos. El valor del temporizador se muestra en dos dígitos de 7 segmentos (ánodo común), mostrando la actividad mediante el parpadeo del punto decimal de la unidad. Este punto parpadea al ritmo de 1 segundo, indicando el correcto funcionamiento del micro-procesador. Si no se necesitara mostrar el tiempo, no sería necesario montar los dos dígitos de 7 segmentos. Pero en este caso, sería conveniente montar un diodo LED en la salida dP  de las unidades (pin 25), con el fin de mostrar el correcto funcionamiento y activación del temporizador.

Esquema: Interruptor temporizado

Cuando finaliza el tiempo programado, los dos dígitos de 7 segmentos muestran guiones, pero sólo serán visibles si el interruptor de activación se mantiene cerrado (conexión permanente). Si el interruptor o pulsador de activación estuviera abierto, al abrirse el contacto del relé (Relay) se desconectaría la alimentación del equipo conectado… y también la alimentación del propio temporizador.

El consumo en reposo de este interruptor temporizado es nulo

Fuente de alimentación

La alimentación de este circuito es de 5 VDC, pudiendo utilizar un cargador USB que tengamos sin uso, en lugar del circuito que se muestra en el esquema y se ha utilizado en el montaje (transformador, rectificador, filtro y regulador de 5V).

Interior del interruptor temporizado

La potencia máxima que puede controlar este circuito dependerá del tamaño de los contactos del relé y pulsador o interruptor de activación que utilicemos, sin olvidar la sección del cableado.

Termostato de precisión #2

Construcción de un termostato digital, para controlar temperaturas con una precisión de 0,1ºC. Este termostato utiliza el sensor DS18B20, está controlado con el microprocesador AT89S52, y permite regular temperaturas entre -40 y +100ºC. También es posible controlar de forma simultánea los dos circuitos de un climatizador, el de frío y calor. Este termostato podría utilizarse como climatizador en un automóvil, controlar la temperatura de un edificio, la del agua de una piscina, incluso la de una incubadora. En esta segunda parte, se realizan los ajustes del termostato y se comprueba su funcionamiento.

CPU del termostato

La CPU del termostato la he montado en un circuito impreso de tipo universal. Para facilitar el montaje, todos los periféricos utilizan conectores. Se utilizan clemas de conexión para la entrada de alimentación (5 VDC), la conexión del sensor de temperatura DS18B20, los dos pulsadores y las dos salidas de control hacia los relés. Para el display LCD se utiliza un conector de 16 pines. El led de actividad utiliza la conexión de 2 pines macho y la otra conexión de 6 pines macho es para programar el micro controlador AT89S52 sin tener que extraerlo del circuito impreso, conexión ICSP.

CPU del Termostato

Firmware

Antes de conectar el circuito a la alimentación, es necesario programar el micro controlador AT89S52. El archivo hexadecimal (firmware) lo puedes descargar de forma gratuita desde el siguiente enlace:

Termostato de precisión (v1.00)

Si no dispones de un programador, podrías utilizar Arduino:

Programador ICSP con ARDUINO

Ajustes y calibración

El único ajuste de hardware que se necesita hacer es el del contraste del display, y se hace moviendo el ajuste del potenciómetro hasta conseguir un contraste óptimo. Luego se debería fijar la temperatura de trabajo del termostato, utilizando los dos pulsadores del frontal. El termostato permite fijar valores de temperatura entre -39,9 y +99,9ºC, con una precisión de 0,1ºC.  Al menú de configuración se accede pulsando el botón SET, y mediante el otro pulsador se pueden recorrer todos los valores posibles. Para cambiar de posición el cursor y guardar el valor anterior, se pulsa nuevamente el botón SET. A continuación se accede al menú de calibración del sensor de temperatura DS18B20.  Desde este menú es posible modificar la temperatura medida por el sensor con intervalos de 1ºC. Este ajuste permite seleccionar valores offset comprendidos entre -5 y +4ºC.   Para realizar esta calibración, sería conveniente utilizar un termómetro de precisión.

Calibrado del sensor DS18B20

Pruebas de funcionamiento

Para comprobar el correcto funcionamiento del termostato he simulado su conexión en una incubadora, fijando la temperatura de control  en 24,0ºC. El sistema de calefacción (para estas pruebas) consiste en una bombilla de filamento de 40W, conectada a 230 VAC a través del circuito 2 del termostato. El sistema de refrigeración es un pequeño ventilador de 12 VDC, controlado por el circuito 1 del termostato. Dependiendo de la distancia que exista entre los sistemas frío/calor y el termostato, es posible que se generen ciclos de histéresis: sobrepasando levemente la temperatura cuando esté conectada la bombilla, o disminuyendo cuando esté conectado el ventilador. Estos ciclos de conexión/desconexión tendrán un intervalo mínimo de 5 segundos, ya que este es el intervalo de medida y refresco del termostato.

Prueba del termostato

A continuación se prueba el sensor a temperaturas límites, con el fin de comprobar el correcto funcionamiento del circuito. El termostato guarda los valores de temperatura máxima-mínima, y también los puede mostrar en la línea superior del display LCD. Mediante la pulsación del botón verde, se alternan las dos presentaciones posibles en la línea superior del display, la presentación inferior no cambia. Los valores de máxima-mínima se reinician cada vez que se entra en el menú de configuración, o cuando baja la alimentación del pin 40 (VCC) del micro controlador por debajo de 2V. Para evitar la pérdida de los valores de configuración mientras está funcionando el termostato, es necesario mantener conectada la batería de 3,6 V NiMH que se incluye en el circuito. La conexión se realiza mediante un puente de conexión (jumper), o un pequeño interruptor deslizante con acceso desde el exterior.

Temperaturas máxima y mínima

En caso de no utilizar el termostato, es conveniente desconectar la batería del circuito.

Termostato de precisión #1

Construcción de un termostato digital, para controlar temperaturas con una precisión de 0,1ºC. Este termostato utiliza el sensor DS18B20, está controlado con el microprocesador AT89S52, y permite regular temperaturas entre -40 y +100ºC. También es posible controlar de forma simultánea los dos circuitos de un climatizador, el de frío y calor. Este termostato podría utilizarse como climatizador en un automóvil, controlar la temperatura de un edificio, la del agua de una piscina, incluso la de una incubadora. En esta primera parte, se muestra el diseño y construcción del termostato.

Descripción de funcionamiento

Este termostato permite calibrar su sensor de temperatura (DS18B20) en saltos de 1ºC, permitiendo un Offset entre -5 y +4ºC sobre el valor medido. Este valor de calibrado, junto con el valor de temperatura de referencia del termostato, también configurable mediante los pulsadores, son almacenados en la memoria RAM del propio micro controlador (AT89S52). Para evitar la pérdida de dichos valores en caso de perder la alimentación mientras está funcionando, el circuito incorpora una pequeña batería recargable de 3,6V Ni-MH.

Esquema: Termostato de precisión

Salidas de control

El termostato permite controlar los dos circuitos de  un climatizador de forma simultánea, el circuito de frío y el de calor. El micro controlador dispone de 2 salidas con estado lógico ‘0’ y otras 2 con estado lógico ‘1’. De esta forma es posible conectar cualquier driver en sus salidas. En este circuito he utilizado un módulo compuesto por 2 relés de 5V, de disparo con estado lógico ‘0’ y entradas optoacopladas (ver imagen).

2 Relay Module

Power Down Mode

La activación del ‘modo apagado’ (Power Down) del micro controlador permite minimizar al máximo su consumo. La detección de dicha caída de tensión se realiza mediante la lectura del nivel lógico 1/0 en el pin 39 (P0.0) del micro controlador. A pesar de que se podría simplificar el circuito intercalando una resistencia entre dicho pin (P0.0) y la entrada +5V, es mucho más eficaz entregar un nivel lógico en su entrada fijando su umbral de decisión. El circuito detector del umbral de apagado, está fijado por el valor del diodo Zener montado entre la base del transistor BC557 y masa (ver el esquema). En lugar del diodo Zener, puede utilizarse un diodo LED que tenga un umbral de encendido próximo a 3V.

A pesar de que el consumo del micro controlador se reduce bastante, es conveniente conectar la batería únicamente cuando el termostato esté en uso. De otra manera, la batería acabaría por descargarse. La finalidad de la batería es la de mantener los valores de configuración mientras el termostato está funcionando, y no cuando esté almacenado sin uso. En el esquema podemos ver que la desconexión de la batería se realiza mediante la extracción de un puente (jumper) entre el polo negativo de la batería  y masa. Este puente puede sustituirse por un pequeño interruptor deslizante, para poder accionarlo sin la necesidad de tener que abrir la caja.

Circuito impreso

Para la realización de este termostato he utilizado un circuito impreso de tipo universal. Es cierto que el acabado queda mucho mejor si se monta en un circuito impreso hecho a medida. Sin embargo, muchos aficionados a la electrónica son reacios a ‘perder el tiempo’ en fabricar un circuito impreso, y prefieren utilizar placas de tipo universal. Además, la fiabilidad del circuito impreso sólo depende del cuidado que se ponga durante el montaje y soldadura de sus componentes… el aspecto no mejora la fiabilidad.

Circuito impreso universal

Firmware

Termostato de precisión (v1.00)

Caja y frontal

He utilizado una caja de plástico de tipo comercial, de tamaño 130×130 mm y 35 mm de altura. Para darle un mejor acabado, he utilizado un trozo de Polimetilmetacrilato (Plexiglas).

Frontal delTermostato

El mecanizado y serigrafía lo he realizado con la CNC.

 

BINGO de pared #2

Construcción de un Bingo electrónico de grandes dimensiones, para colgarlo en la pared de un salón social. El panel tiene unas dimensiones de 1 metro de ancho por 80 centímetros de alto, y está construido con la tapa de madera de un cajón de embalaje. En esta segunda parte, se finaliza el montaje del Bingo y se realizan pruebas de funcionamiento.

Rotulación

Para rotular los 90 números en el panel he construido una plantilla para centrar los números en cada cuadro, y otra para los números. El primer paso es rotular todos los números en la madera.

Rotular números

Una vez rotulados todos los números, con la ayuda de un pincel de punta fina, especial para la rotulación, se pinta el interior de los números. Yo utilicé esmalte metálico de color verde.

Pintar números

Mecanizado

A continuación se taladran los 90 agujeros para montar los diodos LED. Aunque el diodo es de 10 mm, es conveniente hacer el agujero a 9 mm y ajustar el hueco con la ayuda de una lima, o utilizando una pequeña fresa y un taladro de mano.

Mecanizado LED

Los diodos LED se colocan por la parte trasera del mural,  y se fijan con adhesivo termo fundible.

Pegado LED

Conexiones

Para cablear la matriz, hay que conectar los ánodos de los diodos LED de las 9 líneas (sus resistencias limitadoras), y los cátodos de las 10 columnas. Al final se conecta un cable de cinta plana para los cátodos (10 hilos) y otro para los ánodos (9 hilos). Es importante identificar la primera línea y la primera columna, conectando el hilo que lleva la marca roja en esta posición.

Matriz LED

Por finalizar, se monta un anclaje para la CPU y se fija el display y el pulsador en el mural. El conexionado es muy rápido, porque todas las conexiones se hacen con terminales y no es necesario utilizar el soldador.

Montaje CPU

Funcionamiento

Al conectar el panel aparece un texto en el display, mostrando la versión del firmware, y se iluminan los 90 diodos LED del panel durante unos segundos.

Bingo de pared

En el siguiente video se muestran todos los detalles de montaje y funcionamiento de este Bingo electrónico.

Bingo electrónico

Construcción de un Bingo electrónico, fabricando una matriz con 90 diodos LED de forma artesana (sin circuito impreso). Este montaje es muy adecuado para que lo pueda realizar cualquier aficionado a la electrónica.  El Bingo electrónico está construido a partir del micro-controlador AT89S52.

En la primera parte del video se muestra la fabricación de la matriz, en una carcasa de fibra plástica, y se fresan con una CNC los números en una lámina de plexiglás (PMMA) semitransparente.

En la segunda parte del video se analiza el esquema eléctrico, realizando la construcción de la lógica de control y la comprobación de funcionamiento. También se explica el sistema de multiplexación, midiendo las formas de onda con el osciloscopio. Al final, se realiza la construcción del frontal con serigrafía, y se construye una caja utilizando madera reciclada.

MULTIPLEXACIÓN

En la imagen siguiente se muestra el mapa de memoria del Bingo, necesaria para almacenar y mostrar en la matriz LED los números que van saliendo.

Mapa de memoria

La información de los 90 números del Bingo se almacena en 12 Bytes RAM del micro-controlador (12 Bytes X 8 Bit = 96). El Bit menos significativo  (LSB) del primer Byte contiene el  estado del número 1 del Bingo (LED: On/Off). El Bit más significativo del Byte 11 contiene el estado del número 88; y del Byte 12 de la memoria sólo se utilizan los 2 Bit menos significativos, asignados a los números 89 y 90 del Bingo.

Para mostrar toda la información del Bingo en el panel frontal, es necesario multiplexar en el dominio del tiempo 11 informaciones diferentes: las 9 líneas del panel numérico + 2 para el display de 7 segmentos. Como las líneas van conectadas a los ánodos de los diodos LED, el micro-controlador tiene que habilitar de forma secuencial y cíclica cada una de las 11 líneas de control, generando un impulso positivo en cada instante. Como se puede ver en el mapa de memoria, las 8 primeras líneas van conectadas al puerto 2 del AT89S52, la 9ª línea al P3.6, la 10ª línea al P1.1 y la 11ª al P1.0.

Multiplexado
Frecuencia de refresco

En este oscilograma se muestra la forma de onda de una de las 9 líneas de control del panel numérico. Con esta medida podemos conocer el tiempo que está encendido cada diodo LED (237 uSeg) y su velocidad de encendido = frecuencia de refresco (311 Hz). La frecuencia de refresco tiene que ser superior a la persistencia del ojo humano, procurando siempre que esta velocidad sea lo más alta posible, con el fin de evitar el efecto parpadeo o estroboscópico, al mezclarse dos fuentes de luz de frecuencia diferente.

¿Cómo se genera el número?

La generación del número aleatorio se basa en el modo de funcionamiento del sistema mecánico, mediante la extracción de una bola numerada del bombo. En un Bingo tradicional (mecánico), al principio hay 90 bolas numeradas dentro del bombo, y en cada extracción el número de bolas va disminuyendo de una en una.

En este Bingo electrónico, la generación del número se hace siguiendo estos pasos:

  • El micro-controlador utiliza un contador (Timer) que modifica su valor a una velocidad de 2 millones de valores por segundo aproximadamente (0,5 uSeg).
  • El valor del número máximo de este contador se limita en función a la cantidad de números que faltan por salir en el Bingo. Al principio el número máximo es 90 y va decreciendo a medida que se van extrayendo los números (igual que el número de bolas de un bombo mecánico).
  • En el momento que se pulsa el botón, el micro-controlador toma el valor del número generado por el contador, y este valor lo asigna al ‘hueco libre’ que queda en la tabla de números que faltan por salir.
  • Con ese valor, el micro-controlador busca el ‘hueco libre’ dentro de la tabla de números, empezando desde el número 1 hasta el 90, y luego asigna esta posición de ‘hueco libre’ al número real… ocupando el hueco y mostrando el número real en el display de 7 segmentos

De esta manera, las probabilidades de salir un número determinado son las mismas que en un bombo mecánico (es totalmente aleatorio). Por otra parte, se evita la generación de números ya extraídos.

Circuito de control (CPU)

Esquema BINGO

Siguiendo el esquema es muy fácil montar todos los componentes en una placa de circuito impreso de tipo universal (taladros sin conexiones). Las conexiones se pueden realizar por debajo, creando las pistas del circuito con hilo fino de cobre y estaño. Si se colocan bien los componentes, las conexiones estarán muy próximas y no será necesario realizar puentes para atravesar las pistas. Una vez finalizado el montaje, el micro-controlador AT89S52 se puede programar directamente en la placa, utilizando las conexiones ICSP que se muestran en el esquema.

El firmware de este Bingo se puede descargar de forma gratuita desde el siguiente enlace: J_RPM_v1_BINGO.HEX

Si no dispones de un programador, podrías utilizar Arduino para hacerlo:

Programador ICSP con ARDUINO