Plata Coloidal, PCB y Firmware

Actualización del firmware del generador de Plata Coloidal y diseño de su PCB. En la nueva versión del firmware (v1.3), el generador sigue midiendo la conductividad del agua al principio para calcular el tiempo de la electrolisis, pero cada 5 minutos realiza una nueva medida para corregir de forma automática el tiempo restante, en función del nuevo valor TDS que haya medido. Este reajuste también se puede hacer en modo manual en cualquier momento, mediante el pulsador. Aprovechando que este generador mide la conductividad del agua, ahora incluye una tabla con los valores TDS del agua y puede mostrar su valor en el display.

Generador de Plata Coloidal con Arduino

Para ensamblar los componentes  electrónicos del Generador de Plata Colidal que monté hace unas semanas, utilicé 2 PCBs de tipo universal. Realicé todas las conexiones por debajo, estañando hilos y siguiendo el esquema del montaje.  Como entiendo que esto muy laborioso para gente que no acostumbra a utilizar el soldador, he diseñado un PCB con el fin de facilitar su construcción y mejorar su acabado final. Y de paso, también le he dedicado un poco más de tiempo al firmware para mejorar sus prestaciones.

PCBs del Generador de Plata Coloidal

Nuevo firmware (v1.3)

En la versión anterior (v1.2), el generador realizaba una medida de la conductividad del agua al iniciar el proceso, con el fin de ajustar el tiempo total de la electrolisis en función de las PPM de la Plata Coloidal que queramos obtener.

Esquema del diseño: Generador de Plata Coloidal

Como pudimos comprobar en artículo anterior, la conductividad del agua aumentaba con la temperatura. Además, el valor TDS del agua también iba subiendo durante la electrolisis. Así la conductividad del agua irá subiendo durante la electrolisis, pero al mismo tiempo también irá bajando si hemos calentado el agua al empezar, hasta alcanzar la temperatura ambiente.

Aunque no es tan importante conseguir la medida exacta de las PPM en la Plata Coloidal, es muy sencillo corregir este problema. En la nueva versión del firmware (v1.3), el generador sigue midiendo la conductividad del agua al principio para calcular el tiempo de la electrolisis, pero cada 5 minutos realiza una nueva medida para corregir de forma automática  el tiempo restante, en función del nuevo valor TDS que haya medido. Este reajuste también se puede hacer en modo manual en cualquier momento, mediante el pulsador. Esto sería útil si se interrumpiera el proceso de la electrolisis, con el fin de remover el contenido o limpiar los electrodos, porque en estos casos suele variar ligeramente la conductividad del agua.

Aprovechando que este generador mide la conductividad del agua, he añadido en el firmware una tabla  con los valores TDS para poder mostrarlos en el display. Así no sería necesario comprar un medidor TDS, y podremos comprobar siempre la calidad del agua que vayamos a utilizar. Hay que tener en cuenta que esta medida TDS sólo es válida si se respetan todas las características de este montaje: el tipo de electrodos, separación entre ellos y su circuito limitador de corriente.

El rango de medidas TDS que permite mostrar este generador no es muy amplio, porque su circuito limitador de corriente interfiere en la medida comprimiendo su escala. De todas formas tiene una buena resolución con valores bajos del TDS,  entre 0 y 16ppm.

Ahora también, durante el proceso de la electrolisis, cada 30 segundos el generador mide el valor TDS del agua y lo muestra en la línea superior del display. Esta medida se alterna con el valor PPM actual de la Plata Coloidal.

Fuente de alimentación

Durante el montaje del primer generador me encontré con un problema en la alimentación, porque al conectar el relé que alimenta el circuito Step-Up se producía un pico de consumo, y en algunas ocasiones se bloqueaba o reiniciaba el micro controlador. Este problema se solucionó cuando monté 2 condensadores de 1000uF en la línea de alimentación de 5V. Lo extraño, es que se sigue apreciando una pequeña fluctuación en la iluminación del display cuando se conecta el relé.

Para salir de dudas, antes de elegir la fuente de alimentación a montar en el nuevo PCB, hice algunas medidas de consumo con el osciloscopio.

Medida de consumos con dos fuentes de alimentación conmutadas

Para obtener una gráfica de corriente al alimentar el relé y el circuito Step-Up a la vez, puse una resistencia de 0,8  Ohmios en serie con la alimentación de 5V.

Las puntas del osciloscopio del canal 1 las puse en la salida de la fuente de alimentación que estaba midiendo, con el fin de comprobar el comportamiento de cada fuente, con carga y sin carga. Y las puntas del canal 2 del osciloscopio las puse en paralelo con la resistencia de 0,8 ohmios.

Para obtener el valor de la corriente, sólo hay que dividir la tensión que muestre el osciloscopio entre el valor de la resistencia.

Si observamos las gráficas de corriente:

  • Con la fuente antigua se produce un pico de corriente de 1,67A de muy corta duración, pero suficiente para que la fuente de alimentación pudiese cortar su salida, ya que esta fuente es de 700mA. Después consume 288mA durante 81mS, el tiempo que tarda el módulo Step-Up en cargar sus condensadores y estabilizar la tensión de salida. El consumo en funcionamiento del relé y el módulo Step-Up, alimentados con la fuente de 5V es de 116mA.
  • Con la fuente pequeña, que es la versión moderna y también de 700mA según el fabricante, la gráfica de corriente es muy parecida. El pico de arranque es de 1,1A (también de muy corta duración) baja a 250mA y se mantiene durante 97mS, tiempo muy parecido al de la otra fuente, luego baja la corriente a 118 mA. que sería la corriente de funcionamiento con la fuente cargada.

Si comparamos ahora lo que ha sucedido con la tensión en ambas fuentes al conectar la carga:

  • Con la fuente antigua la tensión cae desde 5,1V hasta 4,49V y con la nueva desde 4,9V hasta 3,7V. Cuando se estabiliza el consumo, la caída de tensión de la fuente antigua es de 50mV, y si lo dividimos por el consumo de 116mA -> Ri =  0,43 Ohm.
  • Con la fuente nueva, la caída de tensión es de 120mV, y si lo dividimos por el consumo de 118mA -> Ri = 1 Ohm.

Lo que también se aprecia, es que la nueva versión de la fuente filtra mucho más las frecuencias transitorias que se montan sobre la tensión continua, pero a cambio su tensión de salida es menos estable.   

Teniendo en cuenta que el transformador de la fuente de alimentación nueva es más pequeño que el de la antigua, no parece muy lógico que ambas fuentes sean de 3,5W.

Test con el nuevo PCB

Durante las pruebas iniciales que hice en este nuevo montaje, se volvió a repetir el mismo problema que tuve en el montaje anterior. Al cerrarse relé, en algunas ocasiones se reiniciaba el ATMega328P. Como lo único que cambia con respecto al montaje anterior es el PCB, lo primero que hice es revisar las vías de alimentación y sus desacoplos.

Red +5V en el PCB

En el diseño de este PCB coloqué los dos condensadores de 1000uF separados en dos zonas, uno a la salida de la fuente de alimentación y el otro en las proximidades del relé, porque son los dos puntos de mayor consumo de todo el circuito.  Así la poca resistencia de la línea de positivo que une ambos condensadores, junto con ellos, forman un filtro PI. A continuación del segundo condensador de 1000uF está la vía que alimenta el display, el transistor de control del relé, el circuito Reset y la alimentación del ATMega328P.

El condensador de desacoplo de 100nF del ATMega328P lo puse al final de la red de +5V del PCB, para suprimir cualquier posible inducción entre el segundo condensador electrolítico y el final de la red de +5V. Lo único que cambia con respecto al montaje anterior, es que los dos condensadores electrolíticos de 1000uF están muy cerca del ATMega328P, y además sus conexiones las hice con hilo y estaño, y su sección es mucho mayor que la vía de este circuito impreso.

Medida VCC en ATmega328P

Aunque ya había hecho las pruebas del comportamiento de la fuente de alimentación, me faltaba por comprobar qué sucede con la tensión que le llega al ATMega328P en el PCB, con los dos condensadores de 1000uF conectados y todo funcionando.

Pico de consumo

Al medir con el osciloscopio me encontré con algo que no esperaba. El pico de consumo tan alto que se produce al alimentar el circuito Step-Up, descarga los condensadores y provoca que la tensión baje hasta 2,93V durante 27,4mS., hasta que se recupera la fuente y se vuelven a cargar los condensadores. Como el umbral de indecisión del microcontrolador está en el 50% de su tensión de alimentación, 2,93V están muy próximos al punto donde actúa el circuito reset del ATMega328P.

En estos casos el problema se debería resolver donde se produce, y se debería sustituir la fuente de alimentación por otra que soportara mejor los picos de consumo. Este es el problema de la fuentes de alimentación conmutadas, que se protegen y provocan cortes a su salida.

Como el pico de caída de tensión cambiaría muy poco aunque se aumentase la capacidad de los condensadores electrolíticos, colocando un condensador de 10uF entre los pines 7 y 8 del ATMega328P, se evita que entre cualquier pico transitorio y se reinicie, porque al estar alimentado con 5V no debería reiniciarse hasta que bajara su tensión a 2,5V.

Piezas 3D

La base de la caja ahora está hecha con una sola pieza, porque la serigrafía inferior apenas se daña con los soportes de impresión 3D, y así se simplifica el montaje.

Con el fin de facilitar la inserción y ajuste de los soportes de los electrodos en la base de la caja, he diseñado otra pieza 3D. Es una guía para alinear correctamente los electrodos, y mantener su inclinación de 5º durante el montaje.  Después también servirá para proteger los electrodos cuando no se use el generador, y no será necesario desmontar siempre los electrodos  después de cada uso.

Pieza guía 3D para los electrodos del generador

El diseño de las piezas 3D que necesitas para fabricar la caja y el soporte de este montaje, las puedes descargar de forma gratuita desde el siguiente link:

https://www.thingiverse.com/thing:6403044

¿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. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

 

PCBs del Generador de Plata Coloidal

Los dos PCBs que he utilizado en este montaje, los puedes conseguir a través de los siguientes enlaces:

Colloidal Silver Generator

Adapter for 2×16 LCD

Generador de Plata Coloidal con Arduino

Construcción de un generador de Plata Coloidal con Arduino. El generador está programado para producir 200mL de plata coloidal, con concentraciones a elegir entre 10 y 100 ppm. La plata coloidal está compuesta por nanopartículas de plata de alta pureza, que se mantienen suspendidas en agua purificada. Las nanopartículas de plata miden entre 5 y 100nm, y tienen una carga eléctrica positiva debido al proceso de electrolisis que se utiliza en su producción. La plata coloidal se podría considerar como un antibiótico casero, quizás por su falta de interés comercial de las empresas farmacéuticas.

Generador de Plata Coloidal

Plata Coloidal

El uso de plata en sus diversas formas ha sido frecuente desde la antigüedad, para tratar infecciones y todo tipo de enfermedades. Aunque su popularidad decreció a partir de los años ’40, cuando aparecieron los antibióticos.

La plata coloidal se podría considerar como un antibiótico casero, quizás por su falta de interés comercial de las empresas farmacéuticas. Actualmente la plata coloidal se utiliza y se acepta como segura para uso externo, pero existen serios recelos por parte de la comunidad científica acerca de su seguridad por vía oral.

La comunidad científica siempre aplica el principio de la precaución: No se puede autorizar el uso  de la plata coloidal por vía oral hasta que se demuestre que sus resultados son seguros. Sin embargo, aplicando el conocimiento de nuestros antepasados podríamos considerar que: La plata coloidal por vía oral es segura mientras no se demuestre lo contrario.

El principal problema que tiene la ingesta de la plata coloidal, es que es muy difícil comprobar su calidad y cantidad de plata (ppm) que contiene el producto, y siempre hay que fiarse del vendedor. Actualmente es muy fácil comprar plata coloidal por Internet, porque se ha puesto de moda y hay mucha gente que se dedica a fabricarla. Para comprobar las ‘ppm’ que contiene la plata coloidal no sirve un medidor TDS. Los medidores TDS miden la conductividad del agua para calcular y mostrar el valor de los sólidos disueltos que contiene.

Medidor TDS

La plata coloidal está compuesta por nanopartículas de plata de alta pureza, que se mantienen suspendidas en agua purificada. Las nanopartículas de plata miden entre 5 y 100nm, y tienen una carga eléctrica positiva debido al proceso de electrolisis que se utiliza en su producción. Los iones de plata se mantienen separados entre sí, debido a su repulsión al disponer de la misma polaridad, y su concentración apenas altera la conductividad del agua. Los iones de plata no están disueltos en el agua, permanecen flotando sin entrar en contacto entre ellos.

Iones de Plata Coloidal

Dependiendo de la concentración de plata en el agua, el color de la plata coloidal varía. Empezando por un color amarillento pálido con bajas concentraciones de plata, pasando por el color ámbar hasta el rojo cereza para concentraciones muy altas.

Para estar seguros de que la plata coloidal es de buena calidad, la forma más sencilla es fabricarla uno mismo. Lo más importante es utilizar electrodos de plata de alta pureza y agua de calidad. Normalmente se aconseja utilizar agua bidestilada para fabricar la plata coloidal, pero el proceso de fabricación es muy largo debido a su baja conductividad. Algunos aconsejan mezclar sales con el agua bidestilada para acelerar el proceso de la electrolisis, pero con esto se empeora notablemente la calidad del producto final.

Ósmosis Inversa de 5 Etapas

La mejor opción sería utilizar agua potable de calidad, después de pasar por un filtro de ósmosis inversa. No es aconsejable utilizar directamente el agua del grifo, porque su valor TDS siempre estará por encima de 10ppm. y además podría contener metales. Cuanto mayor sea la concentración de sales en el agua (ppm), más rápida será la producción de plata coloidal, pero podría llegar a ser perjudicial en lugar de beneficiosa. Lo ideal es utilizar agua purificada con un valor TDS < 10ppm.

Calidad del agua & Ósmosis Inversa

Fabricar Plata Coloidal

Cuando se fabrica un generador de Plata Coloidal, hay que tener en cuenta la corriente que circula entre los electrodos,  para ajustar con precisión el tiempo del proceso de la electrolisis. Como la corriente varía en función de la conductividad del agua que utilicemos (TDS), es conveniente que nuestro generador realice todo el proceso con una corriente constante. Como es lógico, el tiempo total de la producción varía en función de los mL de agua que utilicemos y de la concentración de plata que queramos obtener. Si no se hacen estos cálculos y se ajustan en el generador que fabriquemos, no sabremos las partes por millón (ppm) de plata coloidal que contiene el producto final.

Plata Coloidal por electrolisis

Así la calidad de la plata coloidal cambiará en función de la calidad del agua y la pureza de la plata que utilicemos, pero la concentración de plata en el agua (ppm) siempre la podremos controlar.

Calibrar el generador

Para calibrar un generador de plata coloidal, sería necesario disponer de una pequeña báscula de precisión. Yo utilicé una báscula digital electrónica muy barata, se puede conseguir por Internet por menos de 5€. Esta báscula puede pesar hasta 200 gramos con una resolución de 10mg.

El calibrado del generador consiste en pesar los electrodos de plata antes de empezar, y realizar varios procesos utilizando el mismo tiempo a una corriente constante. La precisión del calibrado será mejor si los cálculos se hacen después de fabricar mucha cantidad de Plata Coloidal. Yo lo hice repitiendo 10 veces el mismo proceso con 200mL de agua purificada, circulando una corriente constante de 2mA durante 70 minutos en cada proceso.

Peso de los electrodos de plata

Después de esto, desmonté los electrodos y los volví a pesar. El único electrodo que se consume es el que se conecta al positivo de la fuente de alimentación, el ánodo. Para conocer las partes por millón de Plata Coloidal de los 2 litros de agua, sabiendo la cantidad de plata que se ha utilizado en la electrolisis, sólo hay que hacer un cálculo matemático. En mi caso se perdieron exactamente 100mg de plata en 2 litros de agua (2Kg).

Después podemos asociar el tiempo de cada proceso con una ppm, para que nuestro generador calcule y ajuste los tiempos de forma automática en función de las ppm que queramos obtener en el futuro.

70 minutos / 50 ppm = 1,4 minutos/ppm

Por último, para que el generador pueda ajustar correctamente los tiempos de la electrolisis con agua de bajo valor TDS, sin la necesidad de tener que calentarla para alcanzar los 2mA del ajuste que tomé como referencia, al iniciar el proceso el generador mide la conductividad del agua y reajusta de forma automática el tiempo de la electrolisis. Para que no se eternice el proceso de la producción, al arrancar se comprueba que la corriente de la electrolisis sea >1mA, y la corriente máxima se limita a 2,25 mA. De la limitación de corriente máxima se encarga el regulador 78L05, no se programa por software.

Si el valor de corriente que muestra el display fuese >2,2mA, sería porque la conductividad del agua es muy alta, y sería conveniente medir el valor TDS del agua antes de iniciar el proceso. El circuito limitador de corriente máxima de este generador (78L05) empieza a actuar cuando el TDS del agua supera aproximadamente las 10ppm .

Esquema de montaje

Este generador incluye una fuente alimentación conmutada de 5V, para conectarlo directamente a la red eléctrica. La tensión de 5V alimenta el microcontrolador, el display y también el módulo conversor DC/DC  que permite elevar la tensión hasta 45V. En este caso se ajusta a 35V, con el fin de no superar la tensión máxima de funcionamiento del regulador 78L05, encargado de limitar la corriente máxima de la electrolisis.

Esquema: Generador de Plata Coloidal

El microcontrolador es un ATmega328P, y podría utilizarse un Arduino UNO,  pero así queda todo más reducido. La temporización de la electrolisis la controla el ATmega328P, en función de la conductividad del agua que mide al inicio, y la concentración de plata que elijamos. Con el pulsador se pueden seleccionar concentraciones entre 10 y 100ppm antes de iniciar el proceso.

A través del pin 5 del ATmega328P, D3 en Arduino, se controla el relé que conecta y desconecta la tensión de 35 voltios a los electrodos. Añadí 2 condensadores de 1000uF en la fuente de 5V, para evitar que el microcontrolador se bloquease con los picos de consumo del relé cuando se activa. La tensión de la electrolisis se corta a la entrada del módulo conversor DC-DC (5V), porque no tiene sentido que el módulo permanezca alimentado cuando no se utiliza.

La tensión de 35V se conecta al electrodo de plata que hace de ánodo, este electrodo es el único que pierde plata durante la electrolisis. Así el circuito queda interrumpido hasta que no se llene de agua el envase y circule la corriente a través de ella hacia el segundo electrodo, el cátodo.

Dependiendo de la conductividad del agua -el valor TDS- la corriente será mayor o menor. El circuito se cierra a través del LED indicador de corriente, el regulador 78L05 que limita la corriente de la electrolisis y la resistencia de 1K que hace de ‘shunt’. Esta resistencia de 1k medirá una tensión entre sus extremos cuando circule corriente, y la tensión subirá en función de la corriente que circule entre los electrodos de plata, porque es un circuito serie. En paralelo con la resistencia ‘shunt’ hay un condensador de 100nF, para evitar falsas medidas por inducción.

El pin 28 del ATmega328P, A5 en Arduino, mide la tensión y la traduce en corriente. Para que la medida de corriente sea precisa, es necesario ajustar el valor de una variable en el software antes de programar  el chip.

Display LCD 2×16

El display muestra el estado de funcionamiento del generador y sus valores:

Display del Generador de Plata Coloidal

  • La concentración de plata coloidal actual durante el proceso
  • El valor ppm objetivo
  • La corriente que circula entre los electrodos
  • Y el tiempo restante que falta para finalizar

Si se sacan del agua los electrodos durante el proceso de la electrolisis, por ejemplo para remover el contenido, la temporización se detiene hasta que se vuelvan a introducir los electrodos en el agua. Este umbral de detección se configura en el software. Puse un valor de 50 en la medida del ADC, para fijarlo a una corriente de 250uA aproximadamente. En la parte inferior izquierda del display se muestra de forma gráfica el proceso de la electrolisis, animado cuando se detecta que está funcionando, y fijo si la corriente de la electrolisis no supera el umbral mínimo que hayamos fijado.

Conservación de la Plata Coloidal

La plata coloidal se podría conservar hasta 1 año, siempre que se haga en condiciones óptimas:

  • La plata coloidal debe almacenarse en botellas de cristal tintado y cerradas, evitar las botellas de plástico.
  • Hay que guardarla en un lugar oscuro y alejada de radiaciones electromagnéticas. Lejos de las tomas de enchufe, electrodomésticos, teléfonos móviles, etc.
  • Se almacena a temperatura ambiente, no en la nevera, y no debe entrar en contacto con elementos metálicos, como las cucharillas.
  • Antes de cada uso es conveniente agitar la botella, para mantener su homogeneidad.

Color

El color de la plata coloidal no es el mejor indicador de su concentración, porque varía dependiendo de muchos factores. Principalmente por la intensidad y temperatura de color de la luz que se utilice. También depende de la temperatura del agua durante la electrolisis.

PPM

Las partes por millón (ppm) de la plata coloidal no se puede medir con un medidor TDS. Hice plata coloidal de 50ppm utilizando agua filtrada con un valor TDS de 3ppm. Después del procesado el valor TDS subió a 14ppm, ligeramente superior, pero este incremento del TDS no sirve para saber la concentración de plata que contiene.

Transparencia del agua

Para comparar la transparencia del agua, se puede utilizar un puntero láser. Al atravesar la luz del láser desde un lateral hacia el otro,  desde el frente se verá con mayor intensidad o menor el haz de luz del láser, en función de las partículas y sales disueltas en el agua.

Transparencia del agua con un puntero láser

Piezas 3D

Piezas 3D para el Generador de Plata Coloidal

El diseño de las piezas 3D que necesitas para fabricar la caja y el soporte de este montaje, las puedes descargar de forma gratuita desde el siguiente link:

https://www.thingiverse.com/thing:6403044

¿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. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

I2C & UART con Analizador Lógico

En la actualidad es mucho más sencillo y barato que antes, fabricar dispositivos electrónicos. La mayoría de los equipos que se fabrican ahora son de tecnología digital, y si requieren algún ajuste, casi siempre se realiza mediante un software…  los ajustes internos han desaparecido.

La tecnología digital ha permitido también abaratar los costes de desarrollo y producción, hasta el punto que ahora cualquier aficionado a la electrónica pueda disponer de algunos equipos de medida que antes sólo estaban al alcance de los fabricantes.

Ahora es posible disponer de un analizador lógico de 8 canales por menos de 10€, aprovechando como interface gráfico un PC. El uso de un PC en los equipos de medida permite de forma muy sencilla actualizar sus prestaciones, sólo hay que actualizar el software de control en el PC.

Analizador Lógico USB LA1002 de 8 canales 24 MHz

Este analizador lógico permite grabar las secuencias digitales que transmiten los equipos en tiempo real, pudiendo analizar posteriormente los protocolos que utilizan, medir la velocidad de las comunicaciones, comparar señales, etc. Con un analizador lógico se reducen notablemente los tiempos dedicados al desarrollo, y al mismo tiempo sirve para entender mejor los protocolos utilizados en las comunicaciones digitales.

Analizador Lógico USB LA1002

Hace unos meses monté un receptor de radio controlado por Arduino. Este receptor de radio es totalmente digital. Todos sus ajustes y control se realizan mediante el bus de comunicaciones I2C. Para comprender mejor el funcionamiento de un analizador lógico, voy a utilizar este receptor de radio como ejemplo, y voy a grabar las comunicaciones I2C entre el módulo receptor de radio y Arduino, y al mismo tiempo las señales RX/TX de la UART de Arduino.

Receptor de radio FM-RDS conectado al Analizador Lógico

Bus I2C

Hace unos años publiqué un video dedicado al Bus I2C. En este caso sólo voy a hacer un resumen.

Bus I2C

El bus I2C es un protocolo de comunicaciones bidireccional compuesto por 3 hilos, Datos, Reloj y masa (GND). Al ser esta una señal síncrona, controlada por los impulsos del reloj, la velocidad es variable y sólo en casos especiales se superan los 100 KHz.

Ambas líneas permanecen conectadas a nivel alto, mediante resistencias Pull-Up, y son los dispositivos los encargados de cargar las líneas para generar los impulsos. El dispositivo que hace de máster es el encargado de generar la señal de sincronismo (Clock). El dispositivo que envíe los datos, ya sea máster o esclavo, es el encargado de generar la señal de datos.

Los cambios de nivel en el hilo de datos siempre suceden cuando el nivel del hilo del Clock está a nivel bajo. Cuando esto no se cumple, es porque se está generando el bit de Start o el de Stop. Las comunicaciones I2C siempre comienzan con un bit Start, y finalizan con un bit Stop. Cuando el hilo del Clock está en nivel alto y cambia de estado el hilo de datos: si cambia de 1 a 0, es un bit Start y si cambia de 0 a 1 es un bit Stop.

Bus I2C, direccionamiento y datos

La información se transmite en formato de 8 bits, salvo la dirección que se compone de 7 bit, utilizando el octavo bit como indicación del dispositivo máster,  para indicar al esclavo o receptor, si va a transmitir datos a continuación o espera recibirlos de él. En ambos casos, el dispositivo máster genera la señal de reloj y el primer Byte con la dirección.

Con el fin de mantener la comunicación activa, el dispositivo que hace de receptor carga la línea de datos cuando recibe un Byte correctamente, generando así el bit ACK a nivel bajo.

Si el dispositivo transmisor detecta un nivel bajo al finalizar el envío de cualquier Byte, puede continuar con el siguiente, y si  recibe el bit ACK a nivel alto, podría reenviar de nuevo la información o finalizar la comunicación generando un bit Stop.

Software: PulseView

El software PulseView es el complemento necesario para controlar el analizador lógico USB LA1002 de 8 canales, y se puede descargar desde el siguiente link: https://sigrok.org/wiki/PulseView

Software PulseView

UART y RS232

Las  comunicaciones de una UART también es de 3 hilos y bidireccional, pero a diferencia del I2C, la comunicación de la UART es asíncrona. La UART utiliza un hilo para transmitir, otro para recibir y el tercero es el hilo de referncia o GND. Al no disponer de una señal de sincronismo (clock), en el dispositivo receptor es necesario configurar la velocidad y formato de las comunicaciones que utiliza el dispositivo transmisor.

Bit: START/STOP

Para que el dispositivo receptor pueda sincronizar el inicio de cada Byte que recibe, el dispositivo transmisor inserta un bit de inicio y otro de fin, son los bit de Start y Stop. El bit de Stop se puede considerar como un tiempo de inactividad, o pausa entre Bytes. Así el tamaño del bit de Stop puede ser del tamaño de 1 bit de datos, de 1,5 o 2… y no se puede omitir.

Este tiempo de inactividad del bit Stop, aparte de marcar el fin de cada Byte, lo utiliza el terminal receptor para convertir los datos serie de cada Byte en paralelo y almacenarlos en la memoria buffer de la UART. Lo procesadores antiguos, cuando recibían datos a una velocidad alta disponían de muy poco tiempo para realizar todo el proceso de almacenar los datos. Aumentando el intervalo de tiempo entre Bytes (bit Stop), era posible aumentar la velocidad de las comunicaciones serie.

Bit: DATOS

El número de bits de datos de una UART es variable, entre 4 y 8 bits. Lo normal es utilizar el formato estándar de 8 bit, equivalente a 1 Byte. Los formatos inferiores permitían aumentar la velocidad de las comunicaciones en los procesadores antiguos. Por ejemplo, con 7 bits se pueden codificar los primeros 127 caracteres de la tabla ASCII.

El bus I2C envía los datos en serie empezando por el bit más significativo, bit MSB. La UART lo hace al revés, enviando primero el bit menos significativo, bit LSB. Al final del último bit de cada Byte, es posible enviar un bit de paridad.

Bit: PARIDAD

El bit de paridad se puede omitir, a diferencia de los bit Start y Stop que son imprescindibles. El bit de paridad protege ligeramente la integridad de los datos que se reciben, pudiendo omitir los Bytes erróneos. El valor del bit de paridad es necesario definirlo en las comunicaciones:

  • (N)one = sin bit de paridad
  • (E)ven = paridad PAR … bit de complemento para que el número de unos sea par
  • (O)dd = paridad IMPAR … bit de complemento para que el número de unos sea impar
  • (M)ark = siempre 1*
  • (S)pace = siempre 0*

(*) Permite diferenciar los Bytes de direccionamiento y datos en las comunicaciones RS485 y RS422, cuando se conectan varios dispositivos receptores en paralelo de diferente dirección.

Envío serie: RS232

UART y el interface RS232
En este ejemplo un PC transmite el número 5 del teclado por la UART y su interface serie RS232. Cuando el procesador no envía datos el nivel lógico a la salida de la UART es alto (inactividad) , y cuando se transmite un 0 el nivel lógico es bajo.

El interface serie RS232 convierte la señal continua pulsante en otra alterna de mayor nivel, protegiendo así las comunicaciones de posibles inducciones en los cableados. Es importante destacar que el interface serie invierte los niveles lógicos de la UART.

Esta UART está configurada para transmitir a una velocidad de 4800 bps, sin bit de paridad, 8 bit de datos y 1 bit de Stop. En total se envían 10 bits, y se necesita un tiempo ligeramente superior a 2 mSeg. para transmitir un Byte.

Gestión I2C del módulo SI4703 desde Arduino

Si abrimos las librerías del módulo receptor de radio SI4703, podemos ver que en los registros del 0x0A hasta el 0x0F se almacena el nivel de campo recibido, la frecuencia sintonizada y los 64 Bytes de datos del último grupo RDS recibido. Los datos del RDS se guardan en los 4 últimos registros, ordenados y etiquetados con la  letra de cada bloque.

Gestión I2C desde Arduino

Observando la rutina de lectura, comprobamos que siempre envía por I2C los 32 Bytes de los 16 registros, pero empezando por el 0x0A. Así el primer valor leído será el nivel de campo, a continuación la frecuencia sintonizada y el RDS, dejando para el final los registros desde el 0x00 hasta el  0x09. En total se envían por el bus I2C  33 Bytes:  1 Byte de dirección mas los 32 Bytes de los 16 registros.

Decodificación de los datos recibidos por I2C

Datos RDS decodificados de los datos I2C

En la imagen anterior vemos los datos del Bus I2C que Arduino ha leído del módulo receptor de radio (SI4703). He coloreado los paquetes, cambiado el color cada 32 Bytes de datos. Como vimos antes, los primeros 2 Bytes son los del registro 0x0A. El Byte menos siginificativo de los dos es el nivel de campo recibido: 0x33 (hexadecimal) y si los convertidos a decimal serían 51dBuV.

El registro siguiente, el 0x0B, es la frecuencia sintonizada: 0x0023 = 35 decimal. Ahora le sumamos 875 (910) y luego lo dividimos entre 10 para obtener la frecuencia en MHz = 91,0.

A continuación tenemos los 8 Bytes con los datos RDS del último grupo recibido. Si copiamos los 8 Bytes del RDS y comprobamos que tipo de grupo es, podemos decodificar toda la información que contiene.

Por este grupo estamos recibiendo el bit TA, M/S, 1 bit del DI, las 2 primeras letras del PS, 2 frecuencias alternativas, y además el resto de información genérica de todos los grupos RDS: PI, TP y PTY.

Si nos fijamos con más detalle en la captura de datos recibidos por el bus I2C, vemos que cada grupo RDS se está repitiendo 20 veces. Esto es debido a la alta velocidad de lectura del bus I2C, en relación a la velocidad del RDS.

¿Necesitas fabricar un PCB?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

Ahora también puedes encargar trabajos 3D, mecanizados con CNC y fabricación de cajas metálicas o de plástico inyectado.

https://www.pcbway.es/

 

Reloj Pac-Man con ESP32 & UTF-8

Actualización del firmware (v1.44) para el Reloj-Texto construido con 4 matrices LED, y controlado con el microprocesador ESP32. Con esta actualización, el display podrá mostrar los caracteres latinos de uso más frecuente: áéíóúü ÁÉÍÓÚÜ cÇ ñÑ. También se incluyen los avisos con voz sintetizada, y efectos gráficos Pac-Man.

Reloj-Texto con dos alarmas y 2 husos horarios

UNICODE & UTF-8

La conexión entre diferentes redes de ordenadores provocó la necesidad de crear un estándar que contemplara el juego de caracteres gráficos de cualquier lengua, incluyendo ideogramas, caracteres árabes, chinos, etc.

Caracteres UNICODE

El año 1991 se anunció públicamente la creación de Internet, y ese mismo año el Consorcio Unicode y la ISO desarrollaron ambos un estándar para codificar los caracteres:  Unicode – ISO / IEC 10646. Ambos estándares se pueden considerar equivalentes, si tenemos en cuenta que el repertorio, los nombres de caracteres y los puntos de código del estándar ‘Unicode Versión 2.0’, coinciden exactamente con los de ISO / IEC 10646-1: que fue publicado en 1993.

Actualmente, la codificación dominante es UTF-8, que es una codificación de ancho variable diseñada para la compatibilidad con versiones anteriores de ASCII, y para evitar las complicaciones con las marcas de orden de bytes que existen con UTF-16 y UTF-32 . Además, el 93% de todas las páginas web están codificadas en UTF-8 y el Grupo de trabajo de ingeniería de Internet (IETF) requiere que todos los protocolos de Internet identifiquen las codificación UTF-8. También el Consorcio de correo de Internet (IMC), recomienda que todos los programas de correo electrónico puedan mostrar y crear correo utilizando UTF-8.

Codificación UTF-8

Los primeros 127 caracteres de cualquier tabla de caracteres de procedencia anglosajona o latina, son comunes y su origen es la tabla de caracteres ASCII. Este conjunto de caracteres se pueden codificar dentro de una matriz binaria de 7 bit., y son los caracteres que por defecto muestra cualquier display.

Caracteres ASCII de 7 bits

Si queremos mostrar los caracteres específicos de cualquier lengua, por ejemplo las letras acentuadas, tendremos que ampliar de tamaño la matriz del display que almacena los caracteres en memoria, y asociar una posición específica a cada uno de los caracteres dentro de esa matriz.  De esta forma, la tabla de caracteres que almacena el display no se corresponderá con el código del carácter que recibamos a través del interface Web. Así el procesador del display tendrá que comprobar el código del carácter que recibe, y si es superior al 127,  reposicionar el código para apuntar al gráfico que tenemos asociado a ese código entrante, dentro de la matriz gráfica del display. El tamaño de la matriz gráfica del display suele ser de 8 bit, y con esto es posible almacenar 127 caracteres extra, que podrían ser letras acentuadas, logotipos o cualquier dibujo.

Integración UTF-8 en el display

Si pretendemos que los caracteres de este reloj se puedan programar a través de un interface Web, es necesario utilizar una codificación de caracteres estándar, y la más versátil es la codificación UTF-8 de 2 Bytes.

Este reloj utiliza 3 tipos de fuentes gráficas, dos de ellas limitadas a los 10 números, utilizadas para mostrar los dígitos de la hora en formato estrecho y ancho, y la otra es la que almacena los caracteres ASCII, desde el espacio cuyo código es 32 en decimal, hasta el 126 que es la tilde de la letra eñe, más conocida como virgulilla ~. A continuación, y a partir del código 127, es donde se almacenan los caracteres extra.

Hay muchas formas de almacenar las fuentes gráficas en un display, pero la forma más eficiente es asociar un Byte a los 8 pixeles que tiene cada columna de la matriz LED. Así es más rápida la gestión que tiene que hacer el procesador para desplazar los textos por el display.

La fuente de textos y gráficos de este display es de ancho variable, entre 2 y 5 pixel de ancho por 8 pixel de altura. Así se limita el ancho a las letras que no lo necesiten, por ejemplo el espacio, y se pueden mostrar más caracteres en el display.  Para localizar los caracteres en la matriz, todos ellos ocupan 6 Bytes. El primer Byte indica el ancho del carácter, que se corresponde al número de Bytes que tiene que leer el procesador para formar la letra en el display.

Para facilitar la interpretación visual de los gráficos, los 5 Bytes de cada carácter se suelen escribir en formato binario, pero también se podría escribir en formato hexadecimal o decimal si se quisiera reducir el tamaño del archivo en el editor.

En el gráfico siguiente. vemos el esquema de codificación de caracteres UNICODE, junto con UTF-16 y UTF-8.

Cuando se asigna un código a un carácter, se dice que dicho carácter está codificado. El espacio para códigos tiene 1.114.112 posiciones posibles (0x10FFFF). En el grafico anterior vemos el espacio de códigos dividido en tramos, con el fin de mostrar los diferentes esquemas de codificación UTF. Los puntos de código se representan utilizando notación hexadecimal agregando el prefijo U+.

Actualmente los sistemas operativos limitan la tabla UNICODE a los primeros 65.536 caracteres (0xFFFF), y el valor hexadecimal se muestra añadiendo ceros a la izquierda si es necesario, hasta completar los 4 dígitos hexadecimales.

Es conveniente aclarar, que los sistemas operativos disponen de diferentes tablas de caracteres, algunas de ellas son privadas, y no se deberían utilizar en un documento público con acceso a Internet, ya que no son un estándar.

Internamente en un PC se podría crear un documento utilizando cualquier fuente de caracteres, con el fin de mostrar algún gráfico en especial. El problema es si ese mismo documento se abriese utilizando una fuente de caracteres diferente; porque algunos caracteres ya no serían los mismos.

Si queremos codificar caracteres en UTF-8, limitando su longitud máxima a dos Bytes por carácter, sólo podremos codificar los primeros 2.048 caracteres UNICODE, y recibiremos caracteres de 11 bits. Así cuando recibamos un Byte en UTF-8 que comience con 110, sabremos que se trata de un carácter doble, y los 5 bits siguientes de ese Byte serán los 5 bits más significativos del carácter UNICODE que estamos recibiendo, sin olvidar que este carácter  tiene una longitud de 11 bits. A continuación recibiremos el segundo Byte, el cuál empezará con los bits 10, y a continuación recibiremos los 6 bits menos significativos del carácter UNICODE.

Decodificación UTF-8

  1. Cuando el bit más significativo de un Byte en UNICODE comience con un 0, la longitud del código UTF-8 no cambia, manteniendo el mismo valor UNICODE, y respetando así su compatibilidad con la tabla ASCII.
  2. Si se recibe un Byte en UTF-8 que empieza con los bits 110, su longitud será de 2 Bytes, y el segundo Byte empezará siempre por 10.
  3. Si se recibe un Byte en UTF-8 que empieza con los bits 1110, su longitud será de 3 Bytes, y los dos Bytes siguientes al primero empezarán con 10.
  4. Si se recibe un Byte en UTF-8 que empieza con los bits 11110, su longitud será de 4 Bytes y los 3 Bytes siguientes al primero empezarán con 10.

Esquema de montaje

Para que este display Reloj-Texto funcione, sólo hay conectar 5 hilos entre un lateral del display LED y el módulo ESP32. El sonido de la alarma y el audio sintetizado sale por el pin GPIO26 del módulo ESP32, y hay que conectarlo a un amplificador de audio con su altavoz.

Firmware (v1.44)

El archivo que necesitas para programar el ESP32, lo puedes descargar de forma gratuita desde el repositorio GitHubClock-Text_ESP32

Interface Web y ajustes

Este reloj se controla a través de cualquier dispositivo móvil, siempre que esté conectado a la misma red WiFi. El reloj dispone de 2 interfaces Web diferentes, pudiendo elegir su modo de funcionamiento. El reloj funciona de forma muy parecida en ambos modos, presentando la hora de acuerdo al formato que se haya configurado, y cada 30 segundos mostrando un rotación de texto.

  • Cuando el display está configurado en modo RELOJ: el texto será el día de la semana y la fecha; pero sólo en caso de que estuviese habilitada su presentación, porque en caso contrario el reloj siempre mostrará la hora.

Interface RELOJ: se puede modificar el huso horario al cuál se debe sincronizar el reloj, realizar los ajustes de formato y presentación de la hora, y modificar el brillo del display.

  • Cuando el display está funcionando  en modo MENSAJE: cada 30 segundos intercalará una rotación del texto que tenga programado.

Interface MENSAJE: se puede ajustar la velocidad de desplazamiento del texto, modificar el contenido del mensaje, y fijar la hora y repeticiones de sus dos alarmas.

Ambos interfaces disponen de un botón para cambiar su modo de funcionamiento, teniendo en cuenta que el reloj primero se reiniciará, sincronizando de nuevo la fecha y hora con el servidor NTP que le corresponda al uso horario ajustado. Al reiniciar el reloj, el punto de acceso WiFi al que se conecta,  podría asignar una dirección IP diferente a la anterior. También se han incorporado dos botones nuevos, uno para mostrar la hora con voz, muy interesante para personas invidentes, y el otro para forzar el borrado del display en cualquier momento, mediante la aparición de Pac-Man.

Con esta nueva versión (v1.44), es posible escribir textos utilizando letras acentuadas y la letra Ñ, tanto en mayúsculas como en minúsculas. Además, si el reloj está configurado con el huso horario de España y el formato de presentación de la hora es el Europeo, los textos del día de la semana y fecha, aparecerán traducidos al Español.

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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. Una de las empresas más grandes del sector es PCBWay.

PCB de prototipo gratis y con plazo de entrega rápido: https://www.pcbway.es/

Logo: PCBWay

 

 

 

En hora con DCF77

Desde hace años, los sistemas de sincronización horaria han ido evolucionando. No hace mucho tiempo, todos los relojes de uso doméstico había que ponerlos en hora de forma manual cada cierto tiempo. Cada vez que se hacía un cambio oficial de la hora, teníamos que ajustar de forma manual la hora del PC, el reloj de todos electrodomésticos,  los equipos de audio y grabación de video, el reloj del automóvil, etc. Actualmente con Internet, esto ha cambiado mucho. Todos los equipos que disponen de una conexión a Internet, tienen la posibilidad de mantener con gran precisión la información de fecha y hora, y ajustar los cambios de hora de forma automática. Sin embargo, desde hace muchos años existen sistemas de sincronización horaria, incluso anteriores a la aparición del GPS. Uno de los sistemas más utilizados en Europa, es el DCF77.

¿Qué es DCF77?

DCF77 es una estación de radio situada en Alemania, que transmite en onda larga (LW). Comenzó a funcionar como una estación de frecuencia estándar el 1 de enero de 1959, y a partir de junio de 1973 se incorporó en la transmisión la información de la fecha y la hora.

Cobertura DCF77

El transmisor DCF77 está controlado por Physikalisch-Technische Bundesanstalt (PTB), el laboratorio nacional de física de Alemania, y transmite en funcionamiento continuo (24 horas).

Transmisor DCF77

El transmisor es operado por Media Broadcast GmbH (anteriormente una subsidiaria de Deutsche Telekom AG ), en nombre del laboratorio nacional de física PTB.

Physikalisch-Technische Bundesanstalt (PTB)

La frecuencia portadora de la señal DCF77 es de 77,5 kHz (aproximadamente 3.868,3 m. de longitud de onda) y se genera a partir de relojes atómicos locales que están vinculados con los relojes maestros alemanes en el el laboratorio nacional de física de Alemania en Braunschweig. La señal horaria del DCF77 se utiliza para la difusión del tiempo legal nacional en Alemania.

Reloj atómico CS2

La transmisión DCF77 marca segundos al reducir la potencia de la portadora durante un intervalo que comienza cada segundo. La duración de la reducción se varía para transmitir un bit de código por segundo, codificando toda la información de fecha y hora a lo largo de cada minuto.

Modulación de amplitud

La señal DCF77 utiliza la codificación de cambio de amplitud para transmitir información de tiempo, codificada digitalmente al reducir la amplitud de la portadora hasta un 15% de lo normal (−16,5 dB) durante 0,1 o 0,2 segundos al comienzo de cada segundo. Una reducción de 0,1 segundos indica un 0 binario; y una reducción de 0,2 segundos indica un 1 binario. Como un caso especial, el último segundo de cada minuto se marca sin reducción de la potencia portadora. La portadora DCF77 está sincronizada de modo que el cruce por cero ascendente se produce al inicio de cada segundo. Todos los cambios de modulación también ocurren al aumentar los cruces por cero.

Modulación en amplitud DCF77

Hasta el año 2006 también hubo una identificación de la estación con el código Morse, que se enviaba durante los minutos 19, 39 y 59 de cada hora. Finalmente se suspendió, ya que la estación es fácilmente identificable por su señal característica. Se generaba un tono de 250 Hz mediante la onda cuadrada que modula la portadora entre el 100% y el 85% de potencia, y el distintivo de llamada era «DCF77«.

Modulación de fase

Además de la modulación en amplitud, durante 792,78 mSeg. y a partir de 200 mSeg., cada bit de código de tiempo se transmite utilizando un espectro ensanchado de secuencia directa. El bit se mezcla con una secuencia de chips pseudoaleatorios de 512 bits, y se codifica en la portadora utilizando el cambio de fase de ±13°. La secuencia de chips contiene cantidades iguales de cada fase, por lo que la fase promedio permanece sin cambios. Cada chip abarca 120 ciclos de la portadora, por lo que la duración exacta es de los ciclos 15.500 a 76.940 de 77.500. Los últimos 560 ciclos (7,22 mSeg) de cada segundo no están modulados en fase.

Modulación en amplitud y fase del transmisor DCF77

Dentro de la modulación de fase, el bit 59 se transmite como un bit 0 ordinario, y los primeros 10 bits (segundos 0–9) se transmiten como 1 binario.

Cuando se compara con la modulación de amplitud, la modulación de fase hace un mejor uso del espectro de frecuencia disponible y da como resultado una distribución de tiempo de baja frecuencia más precisa con menos sensibilidad a las interferencias. Sin embargo, muchos receptores DCF77 no utilizan la modulación de fase. La razón de esto es la disponibilidad mundial de las señales (referencia horaria precisa) transmitidas por los sistemas de navegación global por satélite como el Sistema de Posicionamiento Global (GPS) y GLONASS .

Interpretación del código de tiempo

El tiempo se representa en decimal codificado en binario. Representa el tiempo civil, incluidos los ajustes de horario de verano. El tiempo transmitido es el correspondiente al minuto siguiente. Por ejemplo, a las 23:59 del próximo 31 de Diciembre de 2019, se transmitiría la información de las 00:00 del 1 de Enero de 2020.

Codificador DCF77

La modulación de fase generalmente codifica los mismos datos que la modulación de amplitud, pero difiere para los bits 59 a 14, inclusive. El bit 59 (sin modulación de amplitud) se modula en fase como un bit 0. Los bits 0–9 se modulan en fase como 1 bits, y los bits 10–14 se modulan en fase como 0 bits. La información de protección civil y la información meteorológica no se incluye en los datos modulados en fase.

Dos indicadores advierten que los cambios ocurrirán al final de la hora actual: un cambio de zonas horarias y una inserción de segundo intercalar (esta operación se realiza para ajustar los relojes con el calendario solar). Estas indicaciones están presentes durante toda la hora anterior al evento. Esto incluye el último minuto antes del evento, durante el cual los otros bits del código de tiempo (incluidos los bits indicadores del huso horario) codifican la hora del primer minuto después del evento. Los bits de zona horaria pueden considerarse una representación codificada en binario del desplazamiento UTC . El conjunto Z1 indica UTC+2 , mientras que Z2 indica UTC+1. En el caso de un segundo intercalar, se inserta un bit 0 durante el segundo 59, y el bit faltante especial se transmite durante el segundo salto, segundo 60.

Los primeros 20 segundos son indicaciones especiales. Los minutos se codifican en los segundos 21–28, las horas durante los segundos 29–34 y la fecha en los segundos 36–58. Aunque el código de tiempo solo incluye dos dígitos del año, es posible deducir dos bits de siglo utilizando el día de la semana. Aún así existe ambigüedad cada 400 años, ya que en el calendario gregoriano se repiten semanas cada 400 años, pero esto sería suficiente para determinar qué años de los que terminan en 00, son años bisiestos.

Sincronización de redes con DCF77

DCF77 se creó para cubrir la necesidad que existía de disponer de un sistema de sincronización vía radio, con gran cobertura y la precisión de un reloj atómico. La señal DCF77 se utiliza para sincronizar sistemas de seguimiento a satélites, telescopios, redes transmitiendo en isofrecuencia (SFN), etc.

Red de transmisores en isofrecuencia

¿Necesitas fabricar un circuito impreso?

Actualmente hay muchas empresas que se dedican a fabricar circuitos impresos (PCB), 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. Una de las empresas más grandes del sector es PCBWay.

Logo: PCBWay

https://www.pcbway.es/

Ahora el servicio de montaje en PCBWay por $ 30, con envío GRATUITO mundial:
https://www.pcbway.es/quotesmt.aspx

Transmisor experimental DCF77