J_RPM: Información técnica, asociada al canal de YouTube
Categoría: Reloj LED: FC-209 y SERIE
Reloj LED: FC-209 y SERIE, videos relacionados con el kit FC-209 (Reloj LED con esfera rotante) y el Reloj con control SERIE. Montaje, adaptaciones y diferentes versiones del firmware.
Desarrollo de un nuevo firmware para el kit EC1204B, reloj LED con esfera rotante. Con esta actualización es posible controlar todas las funciones del reloj a distancia, utilizando un interface serie RS-232, USB o Bluetooth.
Configuración manual del reloj
El reloj FC-209 se puede configurar en modo manual, utilizando los 3 pulsadores que lleva en su parte trasera. A continuación se muestra el diagrama de configuración, válido para este kit (FC-209) como para el reloj de pared, mediante el uso de sus 3 pulsadores.
Tipos de interface serie
Con esta última actualización del firmware (5.1), es posible controlar y programar el reloj a distancia. Lo único que se necesita es conectar un interface serie con el reloj, ya sea por cable (RS-232/USB) o inalámbrico (Bluetooth). En la siguiente imagen se muestran las conexiones necesarias, para conectar un interface RS-232 con el reloj.
En la siguiente imagen se muestran las conexiones entre el reloj y el interface serie, utilizando uno de tipo USB y otro Bluetooth.
Interface serie Bluetooth
Antes de conectar un interface de tipo Bluetooth con el reloj, es necesario configurar como mínimo su velocidad. El sistema Bluetooth permite la comunicación inalámbrica entre dispositivos, transmitiendo la información a la máxima velocidad que le permita el sistema. El terminal BT receptor dispone de un buffer en el que almacena los datos recibidos, y los entrega al equipo remoto con la velocidad (bps) a la que haya sido programado. En este caso, el reloj espera recibir los datos a 4800 bps (4800,N,8,1)
Configuración remota del reloj
A través del interface serie y mediante una aplicación instalada en un PC o dispositivo móvil, es posible configurar y controlar el reloj en modo remoto. Los datos que espera recibir el reloj son siempre caracteres de texto, facilitando así el uso de cualquier software ‘Terminal’ y tecleando las cadenas de texto en su editor.
En caso de recibir información serie, el reloj enviará una respuesta indicando si ha recibido información correcta o ha detectado algún error. Pero siempre hay que tener la precaución de enviar los valores correctos, porque el reloj no analiza los datos que recibe, solamente comprueba los caracteres de control de inicio (color rojo) y los comandos (color verde y negro) que le indican lo que debe hacer con la información que recibe y guarda en memoria (color azul).
Actualizar el firmware del reloj
Para programar el micro-controlador de este kit de reloj, podemos utilizar un interface serie (ISP: In-system programming / ICSP : In-Circuit Serial Programming) . En la imagen siguiente podemos ver el conexionado que se debería utilizar entre el programador TL866A y el reloj.
Lo ideal sería utilizar un programador que tuviera dicho interface, o desmontar el chip y programarlo fuera. En caso de que no dispongas de un programador, podrías hacerlo por ICSP con ARDUINO.
El archivo que necesitas para programar este reloj (firmware), lo puedes descargar de forma gratuita desde el siguiente enlace:
PCBWay es un fabricante de circuitos impresos para electrónica, especializado en la fabricación de prototipos de calidad profesional a un precio muy reducido. Por ejemplo, ahora puedes encargar 10 circuitos impresos de 10×10 cms, a doble cara y con serigrafía, por tan sólo 5 dólares.
Reparación y programación del firmware en una CPU de tipo SMD. Comprobación del estado de las soldaduras del microprocesador, con la ayuda de un microscopio.
Microscopio para electrónica
Con el paso del tiempo, todos los dispositivos electrónicos han ido adoptando la tecnología SMD, pudiendo así integrar más funciones en espacios pequeños y reduciendo notablemente sus costes de fabricación. Al mismo tiempo, las herramientas de trabajo para electrónica han ido evolucionando, siendo necesario el uso de lupas de aumento, cuando se necesita inspeccionar el estado de las soldaduras de los componentes SMD en el circuito impreso. La alternativa a la lupa, es utilizar un microscopio que consiga mantener un buen foco y calidad de la imagen, dejando la distancia suficiente entre la óptica y el PCB para poder realizar trabajos de soldadura.
Un fallo muy común en cualquier dispositivo electrónico, es una soldadura fría o una pista del circuito impreso abierta. A pesar de que esta CPU nunca ha funcionado, ya que se trata de un montaje nuevo, siempre es aconsejable comprobar que todos sus componentes electrónicos sean del valor adecuado, y que todas las soldaduras estén bien hechas.
La mejor forma de comprobar si una soldadura está bien hecha o no, es mover el componente electrónico mientras se observa el punto de soldadura. Cuan se trata de componentes de tipo SMD, es necesario utilizar un alfiler o punzón bien afilado para mover los terminales y comprobar que no se muevan.
En el siguiente video se muestra todo el proceso a seguir, para comprobar y programar la CPU de un reloj digital con tecnología SMD.
Programación de un reloj LED, para que pueda mostrar la hora en cualquier formato (12h-24h). Esta modificación se realiza en un ‘Reloj-Fecha-Cronómetro-Temperatura‘ con 4 dígitos de 7 segmentos LED, de control serie. El controlador de este reloj está construido a partir del microprocesaror AT89S52, con encapsulado de 44 pines (SMD).
Sistema horario
El sistema horario de 24 horas es una convención de medición del tiempo, en la que el día se contabiliza de medianoche a medianoche. Con formato de 24 horas, las horas se empiezan a contar a partir de la medianoche, y se presenta con los números comprendidos entre el 0 y 23.
El sistema de 24 horas es el más utilizado en la actualidad, y el sistema de 12 horas se utiliza principalmente para la comunicación oral, porque es más intuitivo. A pesar de que el sistema de 24 horas es el más usado en comunicaciones escritas, en algunos países lo denominan como horario militar o astronómico, y prefieren realizar la presentación de la hora utilizando el sistema tradicional de 12 horas.
Esta actualización se realiza en el Reloj SMD que mostré anteriormente:
Cuando se programa el firmware de un reloj, es importante saber si el display de presentación es multiplexado o no, así como el valor de tiempo mínimo a mostrar.
Cuando el display es multiplexado, el microprocesador tiene que enviar la información con una cadencia mucho más rápida, siempre superior a la persistencia del ojo humano. Si se quiere evitar el efecto de parpadeo, la frecuencia de refresco del display debería ser como mínimo de 50 Hz.
La cadencia de lectura de la información horaria debe ser igual o superior al valor del tiempo mínimo que se quiera mostrar en el display. Si el reloj muestra décimas de segundos, el microprocesador tendría que leer la información del chip RTC con una cadencia mínima de 1/10 segundos, cada 100 mSeg.
Funcionamiento del reloj
A pesar de que el Reloj SMD no es multiplexado, porque la presentación se realiza enviando los datos en serie (registro de desplazamiento), lo he programado con una frecuencia de refresco muy alta.
Esto lo hice así, porque utilicé la estructura de programa del reloj de esfera rotante FC-209, el cuál si era multiplexado.
Antes de presentar la hora en el display por primera vez, el microprocesador tiene que leer la información del chip RTC (DS1302). Y si el reloj muestra segundos, la lectura se debería hacer que como mínimo una vez por segundo.
Aprovechando las prestaciones y velocidad del microprocesador que he utilizado, decidí insertar la rutina de lectura del chip DS1302 (RTC) dentro de la rutina de refresco del display. Como se puede ver en la gráfica anterior, la lectura se está haciendo con una cadencia de 926 veces por segundo.
Actualización del firmware
La nueva actualización del Reloj SMD, la puedes descargar de forma gratuita desde el siguiente enlace:
Con esta actualización es posible configurar el sistema de presentación horaria en el display, pudiendo elegir el sistema de 12/24 horas. Para incorporar esta función, he utilizado el método más sencillo de hacerlo: Internamente todo funciona en modo 24 horas, y dependiendo del modo en el que se deba mostrar la hora, el programa pasará o no a través de las rutinas de conversión a formato de 12 horas. Y esto lo hará sólo antes de enviar la hora al display, porque los menús de configuración siempre mostrarán la hora utilizando el formato de 24 horas. Así no será necesario modificar los menús de configuración, ni cambiar el sistema horario del chip DS1302 (RTC). A continuación os muestro el código que he añadido en esta actualización.
Funcionamiento de la subrutina: ValAB
Menús de configuración
Los menús de configuración de esta versión (v2), no cambian con respecto a la versión anterior (v1). En esta versión aparece un nuevo menú, y es para configurar el sistema de presentación horaria (12/24) del reloj.
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.
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.
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.
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.
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.
¿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íahacer una colaboración con ellos. Lo primero que hice es visitar su página Web, y me pareció muy interesante su manera de trabajar.
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.
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).
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).
ESQUEMAS
Módulo RTC: DS1302
Las comunicaciones entre el micro-controlador y el chip de reloj DS1302 se realizan mediante 3 hilos:
Reloj (SCLK)
Entrada/Salida de datos (I/O)
Habilitación (CE)
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.
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.
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:
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.
CONFIGURACIÓN
Para cambiar los datos de fecha, hora, cronómetro y el resto de parámetros de configuración, se utilizan dos pulsadores:
MODE
PLUS
Para modificar los datos del reloj, seguir el siguiente diagrama de configuración:
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)
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):
Hora / (*) Alterno: Hora y Temperatura
Temperatura
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.
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:
Horario estándar, el que corresponde con el huso horario (Horario de invierno).
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.
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.
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):