Reloj de Palabras de Precisión: Visualización del Tiempo en Palabras Minuto a Minuto
Componentes y Suministros
- Arduino Nano R3 × 1
La lista completa de componentes se encuentra en el repositorio del proyecto.
Acerca del Proyecto
El reloj de palabras Arduino con resolución de minutos en palabras y visualización lineal de segundos.

También incluye modos para reloj digital, reloj analógico, temperatura y humedad, así como tres juegos: Juego de la Vida, Simón y Tetris.
El reloj puede funcionar de forma independiente o como esclavo de un reloj maestro si se requiere. Sin reloj maestro, la hora se controla mediante el reloj en tiempo real (RTC) compensado por temperatura integrado. Hay opción para control por sensor PIR o radar Doppler para que el reloj se apague automáticamente cuando no hay nadie en la habitación.
El reloj mide 500 mm x 500 mm (19.68" x 19.68"), pesa 12 lb (5.5 kg) y está diseñado para montaje en pared. Dispone de pads táctiles en cada esquina para configurar y controlar el reloj.
Paso 1: Sobre los Relojes de Palabras
Los relojes de palabras indican la hora usando una matriz de palabras, números y letras, y existen desde hace años. Hay varios tipos de diseño que afectan la complejidad de la construcción.

Los más simples usan bloques de palabras para indicar la hora en resolución de 5 minutos (ej. EN PUNTO, 5 PASADOS, 10 PASADOS). Solo usan unos 20 bloques LED individuales, por lo que son los más sencillos de construir. Su principal desventaja es que solo muestran la hora en ese formato fijo.

El nivel medio tiene una matriz de 11x10 LEDs más 4 LEDs adicionales en las esquinas. El reloj controlado por Raspberry Pi de la foto 2 incluso tiene LEDs multicolor y, al tener 110 LEDs individuales, puede mostrar dígitos e imágenes básicas. Estos relojes siguen usando resolución de 5 minutos en palabras, pero a menudo añaden "casi 5 pasados" o "casi 10 para" para aumentar ligeramente la resolución. A menudo, los 4 LEDs en las esquinas indican los 4 minutos que pasan para cubrir el hueco entre la resolución de 5 minutos. Son razonablemente complejos de construir y a menudo usan tiras de LEDs para facilitar el montaje.

Existen versiones comerciales de este tipo. La versión de pared de 450 mm cuesta alrededor de £1000 e incluye paneles frontales intercambiables en muchos colores y materiales, además de versiones de escritorio y relojes de pulsera.

Reloj de palabras de matriz 256 por Wouter Devinck.
Los relojes de palabras con mayor complejidad usan una matriz LED de 16x16, dando 256 LEDs para controlar. Estos tienen resolución de un minuto en palabras, así como mañana, tarde, noche, etc. A menudo indican la temperatura aproximada en palabras como cálido, muy cálido, frío, muy frío, etc. Con 256 LEDs hay una enorme cantidad de modos de visualización diferentes. Son bastante complejos de construir debido al número de conexiones en la matriz. Construir la matriz LED en PCBs con componentes de montaje superficial permite cuerpos de reloj muy delgados y simplifica la construcción de la pantalla, pero por encima de 500x500 mm los PCBs se vuelven caros. La construcción manual de la matriz LED, como en mi reloj, necesita espacio y 500x500 mm es un buen punto de partida ya que puede acomodar los grandes mazos de cableado necesarios. Relojes de pared muy grandes pueden construirse con matrices LED hechas a mano.
Paso 2: Cambios

Este reloj es una mezcla del hardware del reloj de Wouter Devinck y el software del reloj "Catalán" de Pijuana. No he usado PCBs personalizados, solo módulos prefabricados baratos y fáciles de conseguir, y tres pequeños circuitos en placa de pruebas para la alimentación.
Los principales cambios se detallan a continuación:
- No se usan PCBs personalizados, solo módulos prefabricados baratos y fáciles de conseguir.
- El cuerpo principal del reloj está hecho de 2 láminas de MDF de 14 mm en lugar de una sola de 18 mm.
- La lámina trasera es 10 mm más pequeña que la frontal en todos los lados excepto en la superior, por lo que el reloj parece tener solo 14 mm de grosor.
- El reloj de Wouter Devinck tiene solo 20 mm de profundidad incluyendo el vidrio de 2 mm, mientras que el mío tiene 34 mm incluyendo vidrio de 4 mm y sello de polvo de 2 mm en la parte trasera. Debido al retroceso de la lámina trasera de 14 mm y el retroceso de 1.5 mm del panel de vidrio, desde la mayoría de ángulos el reloj parece tener solo 14 mm de profundidad. Esta profundidad extra me ha permitido usar una matriz LED hecha a mano y mazos de cableado en lugar de 4 PCBs grandes. También significa que puedo usar módulos prefabricados fáciles de mantener sin ICs de montaje superficial en las placas MAX7219.
- La pantalla principal se construye directamente sobre los LEDs de visualización sin PCB, por lo que cualquier tamaño de pantalla es posible.
- Se usan módulos de sensor táctil TTP223 en lugar de Azoteq IQS127D montados en las placas principales.
- Las placas controladoras de pantalla para los MAX7219 I/C usan placas de matriz LED modificadas. Estas vienen completas con todos los componentes.
- Se usa un Arduino Nano para controlar el reloj debido a su tamaño reducido.
- Se usa un módulo sensor PIR para apagar la pantalla cuando no hay nadie en la habitación (esto puede desactivarse para mantener la pantalla siempre encendida).
- Se añade un resistor ajustador al circuito, accesible desde la parte inferior del reloj con un destornillador plano pequeño para calibrar el brillo automático de la pantalla.
- Sincronización con mi sistema de reloj maestro cada minuto a los 30 segundos. Si no hay pulso de sincronización, el reloj funciona libremente usando el RTC. Los pulsos de sincronización se muestran en la pantalla principal.
- El software se basa principalmente en la versión "Catalán" de Pijuana, traducida al inglés para la visualización. La pantalla de créditos se modificó para mostrar el número de versión actual, mi nombre y el año de construcción.
- La temperatura en palabras se eliminó de la pantalla y se añadió una visualización lineal de segundos en la fila inferior del reloj de palabras, digital y analógico.
- Cuando el PIR se enciende o apaga, se muestra "PIR ON" o "PIR OFF" durante unos segundos en la pantalla del reloj de palabras.
- Este reloj usa un módulo RTC de precisión DS3231 AT24C32 I2C como el reloj de Wouter Devinck y el "Catalán" de Pijuana. No me gusta usar la batería de ion-litio recargable que viene con el módulo. Uso una batería no recargable y he modificado el módulo para adaptarlo.
- Vidrio flotado de 4 mm con bordes pulidos reemplaza al vidrio de 2 mm. El vidrio se fija a la tabla MDF principal usando tornillos Chicago en lugar de pegamento. Estos también actúan como pads táctiles para controlar el reloj y permiten retirar el vidrio si es necesario.
- Se incorporan dos sellos de polvo, uno en el panel trasero y otro detrás del panel de vidrio frontal extraíble. En modo de configuración, pulsar el botón inferior derecho reinicia los segundos a 0.
Los siguientes cambios en la redacción en inglés se han hecho para que la redacción sea como yo la diría. La forma en que cada individuo dice la hora varía según la región donde viva/fue a la escuela, etc. No hay una forma correcta, solo la que suene mejor para ti.
- Eliminadas las palabras que indican la temperatura en el reloj de palabras. Reemplazadas por estado de sincronización, PIR ON/OFF y visualización lineal de segundos.
- Cambiado "MINUTES" a "MINUTE" a 1 minuto pasado y 1 minuto para la hora.
- Añadido "A" antes de "QUARTER" pasado y "QUARTER" para la hora.
- Añadido el "ELEVEN" faltante del reloj de Wouter Devinck según sus notas.
- Al mediodía, la hora se muestra como "TWELVE OCLOCK IN THE AFTERNOON".
- A medianoche, la hora se muestra como "TWELVE OCLOCK AT NIGHT". Después de medianoche, el reloj siempre dirá "IN THE MORNING".
- "O'CLOCK" ahora no lleva puntuación y se muestra "OCLOCK".
Paso 3: Diseño de la Caja

Como mi reloj no usa PCBs personalizados de matriz de visualización con componentes de montaje superficial, mi caja debe ser algo más profunda que el diseño de Wouter.
Mi caja tiene 34 mm de profundidad e incluye: sello trasero de polvo 2 mm, tabla MDF trasera 14 mm, tabla frontal de visualización 14 mm y vidrio flotado 4 mm.
La caja de Wouter a la derecha tiene solo 21 mm de profundidad: panel MDF único de 18 mm y vidrio flotado de 2 mm.

En la imagen de arriba, mi reloj a la izquierda y el de Wouter a la derecha. Desde un ángulo lateral extremo se ve claramente que mi caja parece más voluminosa.
Esto se compensa algo porque la tabla trasera es negra en lugar de blanca, haciendo que el ojo se concentre en el borde blanco delgado de 14 mm. Que la tabla trasera sea 10 mm más corta en la parte inferior y en ambos lados refuerza esta ilusión.

Arriba, de nuevo mi reloj a la izquierda y el de Wouter a la derecha. Cuanto más te acercas al frente de los relojes, la tabla trasera más corta de mi reloj desaparece de la vista hasta que solo se ve la delgada tabla frontal de 14 mm. El vidrio de 4 mm también se recorta 1-2 mm más corto que la tabla frontal, ayudando a ocultarlo. Mi voluminosa caja de 34 mm ahora parece tan delgada como la de Wouter.
Paso 4: Controles

Hay módulos de control táctil TTP223 en el reloj: esquina superior izquierda, superior derecha, inferior izquierda e inferior derecha de la pantalla.

Los botones tienen diferentes funciones según el modo del reloj, ver tabla anterior.
Paso 5: Configuración Automática Verano/Invierno
No usada.
Paso 6: Modos de Visualización Relojes y Entorno


La animación 1 muestra los 4 modos de reloj y entorno: reloj de palabras, reloj digital, temperatura y humedad, y reloj analógico.

La animación 2 muestra un modo de inicio que desplaza el número de versión del software, nombre del creador y nombre del reloj.
Paso 7: Modos de Visualización Juegos
Tres juegos clásicos están programados en el reloj. He dejado el código tal cual del reloj Catalán.

Animación 1: Juego de la Vida de Conway. El universo es una cuadrícula ortogonal bidimensional infinita de células cuadradas, cada una en uno de dos estados posibles: viva o muerta. Cada célula interactúa con sus ocho vecinas. En cada paso temporal ocurren transiciones según reglas clásicas.

Animación 2: Simón. Juego de memoria: intenta copiar la secuencia generada por la computadora. Al ingresar tu secuencia, doble toque en la última entrada para terminar tu turno. Cuando fallas, tu puntuación se muestra en pantalla.

Animación 3: Tetris. El clásico juego soviético de rompecabezas de fichas lanzado en junio de 1984. Este juego aún necesita trabajo en los botones para controlar las fichas correctamente.
Paso 8: Prototipado
El reloj puede prototiparse y probarse usando los LEDs de matriz de puntos originales en las placas de visualización MAX7219.
Nota: esta modificación temporal solo es necesaria si quieres probar tu código en las pantallas de matriz de puntos suministradas con los módulos MAX7219.
Esto significa que puedes probar tus modificaciones de software/diseño de palabras en miniatura antes de comprometerte a la versión a tamaño real. El cableado a la matriz de puntos LED tendrá que modificarse para coincidir con las conexiones del software.

La imagen muestra cómo está cableado el módulo antes de la modificación. La modificación es bastante sencilla: primero dobla 90° los siguientes pines de la matriz LED, los superiores hacia arriba y los inferiores hacia abajo: Pines 16, 15, 3, 4, 10 y 11. Inserta la matriz LED en el zócalo de la PCB de visualización; los pines anteriores no estarán conectados. Suelda los siguientes cables de enlace desde la parte trasera del zócalo de la PCB de visualización a los pines de la matriz LED que sobresalen.
- LEDA a Pin 16 de matriz de puntos
- LEDB a Pin 15
- LEDG a Pin 3
- LEDF a Pin 4
- LEDE a Pin 10
- LEDC a Pin 11

Usé un multímetro para comprobar el módulo de visualización. La tabla muestra dónde el número de pin del software difiere de los números de pin del LED en la placa de visualización.

Para probar tus diseños de palabras, imprime una versión en miniatura de tu pantalla de palabras de 62 mm x 62 mm en papel blanco normal.



Nota la orientación de las placas de visualización LED para que coincida con el diseño del software. He mantenido la rotación de la pantalla como el reloj original de Wouter Devinck por si alguien usa su diseño de PCB para mi reloj.

El pequeño pulsador debajo del sensor de temperatura/humedad se usa para probar la sincronización de 30 segundos. Los módulos de botones táctiles están en la esquina inferior izquierda de la protoboard montados de lado. No hay muchos cables en este prototipo ya que la mayor parte del cableado está en las matrices de visualización. En el reloj final, este cableado se hará a mano a los LEDs individuales. Probé muchos diseños de palabras/reloj diferentes en esta placa antes de intentar construir el reloj final.
Paso 9: Prueba de Módulos Modificados

He modificado el sketch del reloj de palabras para permitir probar el módulo MAX7219 después de la modificación del cableado. Este programa solo enciende cada LED por turno desde la esquina superior izquierda a la inferior derecha de la matriz. Solo conecta 5 cables al NANO y al módulo MAX7219 y alimenta el NANO desde su puerto USB. Carga el sketch y déjalo correr.

Solo enchufa cada módulo por turnos para comprobar tu cableado. Descarga el sketch de prueba desde el archivo zip adjunto.
MAX7219_LED_Test.zip
Paso 10: Mapeo de Tiempo a Palabras

La tabla muestra los mapeos de tiempo a palabras. No hay reglas estrictas; solo configura las palabras como dirías la hora. En mi reloj cambié lo siguiente comparado con las palabras del reloj de Wouter:
- "MINUTES" cambiado a "MINUTE" a 1 minuto pasado y 1 minuto para la hora.
- Añadido "A" antes de "QUARTER" pasado y "QUARTER" para la hora.
- Al mediodía: "TWELVE OCLOCK IN THE AFTERNOON".
- A medianoche: "TWELVE OCLOCK AT NIGHT".
- Después de medianoche siempre dirá "IN THE MORNING".
Estos cambios son muy fáciles de implementar en el software del reloj.
Word%2Bto%2BTime%2BTranslations.xlsx
Paso 11: Alimentación

Uso una fuente de alimentación común de 12 voltios para alimentar muchos circuitos diferentes en mi casa. Esta fuente de 12 V se reduce localmente en cada circuito con un módulo de 5 V para alimentar la placa de control y varios módulos.
Mi fuente común tiene 18 circuitos de 12 V con fusibles individuales de 2 A. 9 de estos tienen respaldo de batería. Las placas del reloj también tienen su propio fusible a bordo.

Si solo vas a alimentar este circuito, cualquier fuente regulada de 5 V servirá siempre que pueda suministrar la corriente necesaria.
He diseñado una placa de alimentación en placa de pruebas que usa una fuente de alimentación miniatura MP1584. Esta convierte la salida de 12 V de mi fuente común a 5 V para el reloj.

Hay dos placas de alimentación extra construidas en placa de pruebas. Aparte de una que lleva el zumbador, solo añaden puntos extra de distribución de potencia para el cableado de alimentación del reloj.
Requisitos de Potencia
He medido el consumo del reloj: a bajo brillo usa 30 mA y a brillo máximo 250 mA. Esto variará según cuántos LEDs estén encendidos. En un día soleado brillante, los niveles de brillo indicados en el puerto serie son 10, alrededor de 2/3 de la potencia máxima de los LEDs. El consumo total puede reducirse mucho si el PIR está activado, ya que apaga la pantalla si no se detecta movimiento. Usaría una fuente de al menos 500 mA. La potencia dependerá mucho del tipo de LEDs que uses.
Paso 12: Interconexión de Módulos

La imagen muestra cómo se conectan los módulos. La mayoría se conectan directamente al Arduino Nano. Las placas MAX7219 solo se conectan al NANO a través del módulo 01; los demás módulos están en cadena. Cada matriz LED 8x8 se conecta a un módulo MAX7219. La mayor parte del cableado son las conexiones entre los módulos MAX7219 y las matrices LED. Mantén la distancia entre el NANO y el primer módulo MAX7219 y entre módulos MAX7219 lo más corta posible. Asegúrate de alimentar ambos extremos de la cadena de MAX7219, ya que la mayor parte de la corriente la consume esta parte del circuito.
Paso 13: Orden de Construcción
Orden de construcción asumiendo que todo el prototipado y cambios de software están completados primero.

- Obtener impresión de transferencia de vinilo.
- Cortar vidrio.
- Cortar láminas MDF frontal y trasera.
- Cortar agujeros en lámina frontal para LEDs.
- Pintar láminas MDF.
- Cortar agujeros para sensores en vidrio.
- Pegar transferencia de vinilo en parte trasera del vidrio.
- Cortar agujeros para sensores en tabla frontal MDF.
- Cortar rebajes para módulos sensores en tabla frontal.
- Cortar tabla trasera MDF y hacer 4 agujeros de acceso para sensores.
- Añadir tiras de borde melamina a tablas MDF: blanca a frontal, negra a trasera.
- Atornillar tabla trasera MDF a tabla frontal MDF.
- Hacer placas de pruebas: 1 placa alimentación y 2 placas distribución alimentación.
- Modificar 4 placas MAX7219 y añadir cableado a LEDs.
- Conectar solo en extremo MAX7219 por ahora.
- Montar todos los módulos y placas de pruebas en parte trasera de tabla frontal MDF.
- Construir las 4 matrices LED en tabla frontal MDF y soldar 256 LEDs.
- Cablear todas las líneas de batería y tierra desde placa de alimentación y placas distribución.
- Conectar todas las líneas de alimentación a todos los módulos.
- Conectar todo el cableado a Nano, módulos MAX7219, RTC, sensor temperatura, sensores táctiles y zumbador.
- Conectar todos los mazos de cableado desde placas MAX7219 modificadas a matrices LED según tabla de cableado.
- Conectar módulo PIR remotamente del reloj y conectar conexión PIR.
- Conectar sincronización de 30 segundos a Reloj Maestro (si se requiere).
- Montar panel frontal de vidrio usando tornillos Chicago, fijando sensores táctiles al mismo tiempo.
- Probar.
La tabla 1 muestra los tiempos de construcción muy aproximados y variarán según tu nivel de habilidad y herramientas/espacio de trabajo. Puedes añadir fácilmente otras 40 horas de prototipado y programación.
Paso 14: Construcción – Pegatina de Vinilo

La pegatina de vinilo se diseña en Inkscape, software profesional de gráficos vectoriales gratuito y de código abierto. Descargué el diseño original de Inkscape de Wouter Devinck de su repositorio GitHub y lo modifiqué para mi diseño. Probé muchas versiones en mi prototipo en miniatura antes de enviar el diseño final a imprimir.
¡No olvides pedir la pegatina impresa en reverso!
Usé una empresa llamada Regal Signs & Graphics que suministró mi pegatina en vinilo negro, corte inverso, letras eliminadas y cinta de aplicación por unas £27 IVA incluido. Aunque son locales, pagué un poco más para recibirla en un tubo de cartón seguro. Tuve algunos problemas para conseguir el diseño en el formato correcto para su máquina, pero al final lo envié desde Illustrator en formato EPS y la gente muy servicial de Regal Signs lo escaló al tamaño correcto. Mi archivo Inkscape se puede descargar aquí: VINYL STICKER.
La pegatina vino con las letras ya eliminadas, lo que me ahorró mucho tiempo. Viene con una cinta plástica en el frente (lado vidrio) y papel de aplicación en el reverso. Normalmente quitas la cinta frontal, aplicas la pegatina y luego quitas el papel de aplicación. Decidí dejar el papel de aplicación porque actuaba como difusor para los LEDs. Como lo dejé, recorté el exceso de papel alrededor de la pegatina antes de aplicarla.

La aplicación fue relativamente fácil. Asegúrate de ver algunos videos de YouTube sobre aplicación de pegatinas de vinilo a vidrio antes de intentarlo tú mismo.
Vidrio

El reloj usa vidrio flotado de 4 mm cortado exactamente a 500x500 mm. Como los bordes quedan expuestos, también se han pulido. Todo hecho por mi vidriero local por £20. Se taladraron agujeros de 5 mm en el panel de vidrio usando broca para vidrio de 5 mm. Limpie el vidrio con acetona y aseguré que estuviera libre de polvo. Me puse guantes de plástico para no dejar huellas. Rocíe el vidrio con una mezcla muy diluida de agua y jabón y luego pelé muy lentamente la película plástica de la pegatina para revelar la superficie frontal. Es importante pelar la película lentamente y en un ángulo muy agudo para que las letras permanezcan conectadas al papel de transferencia. Una vez expuesta completamente, aplícala sobre el vidrio húmedo. La mezcla de agua/jabón permite mover la pegatina a la posición correcta. Luego usa una tarjeta de crédito y trabaja desde el centro hacia afuera para eliminar burbujas. Deja secar toda la noche y luego, desde el reverso de la pegatina, recorta el vinilo sobre los 4 agujeros de montaje en el vidrio.
Brett11_print_ready.svg
Paso 15: Construcción Tableros Principales Parte 1
Tableros Principales

El tablero principal del reloj está compuesto por 2 láminas de MDF de 14 mm. La lámina trasera es 10 mm más pequeña que la superior en todos los lados excepto en el superior. La superior tiene bordes blancos mientras que la trasera tiene bordes negros. Cuando se ve en la pared, el reloj parecerá tener 14 mm de profundidad.

En el reloj original de Wouter Devinck y la versión "Catalán" de Pijuana se usa una sola lámina de MDF de 18 mm con el reverso fresado para hacer espacio para la PCB y componentes. Usar 2 láminas de MDF significa que el tablero trasero se puede cortar simplemente con una sierra de calar en lugar del fresado lento y polvoriento. La lámina superior es de 503x503 mm para dar un solape de 1.5 mm alrededor del vidrio, protegiéndolo de golpes.

El tablero trasero se recorta con sierra de calar y permite 14 mm de espacio para componentes. Las PCBs más profundas incluyendo componentes son los módulos MAX7219 que tienen 10 mm de profundidad. Al terminar, el tablero trasero se pega o atornilla al frontal.
Construcción Tablero Frontal
El tablero frontal sostiene los 256 LEDs que brillan a través de agujeros de 6.5 mm y agujeros avellanados de 18 mm más anchos para iluminar letras y números individuales en la pantalla.

El tablero se marca para mostrar la posición de taladrado en el centro de cada carácter de visualización. Con una pantalla de 500 mm medí mi lámina de vinilo y los caracteres están a 25 mm de distancia comenzando a 62.5 mm de los bordes. Dibujé estas líneas en el MDF, las intersecciones son los puntos de taladrado.

Usé el borde superior como punto de referencia, medí y marqué cada fila desde este punto. Se repitió para las columnas verticales usando el borde izquierdo como referencia.

Las intersecciones de la cuadrícula serán el punto central para los agujeros de montaje de LED de 6 mm y los agujeros avellanados de 18 mm.


Usando un punzón automático (o un clavo/tornillo si no tienes uno), punzoné los 256 puntos de intersección de la cuadrícula. Luego, con una broca adecuada para tus LEDs (6 mm en mi caso) y usando los puntos punzonados como guía, taladré los 256 agujeros de montaje de LED. La siguiente tarea es taladrar los 256 agujeros avellanados de 18 mm usando una broca avellanadora de 20 mm.

Para mantener los agujeros avellanados a profundidad y anchura uniformes, construí un jig de avellanado con un trozo de madera sobrante. Se taladra un agujero en la madera para que encaje el bisel plateado giratorio del portabrocas. Con una pieza de prueba de MDF, la broca avellanadora se mueve dentro y fuera del portabrocas hasta que se hace un agujero avellanado del diámetro correcto al taladrar a través del agujero hasta el portabrocas en el trozo de madera. Una vez encontrada la distancia correcta, se aprieta el portabrocas y se taladra la tabla principal 256 veces centrando el agujero en la madera sobre los agujeros de 6 mm existentes y taladrando hasta que el bisel del portabrocas golpee el agujero en el jig.

Tablero frontal completado con 256 agujeros avellanados y 6 mm para LEDs. Luego se lija, sella con imprimación para MDF y se pinta de blanco para que los agujeros avellanados reflejen la luz de los LEDs.

Se pinta un borde negro alrededor del borde exterior para ocultar la tabla ya que el vidrio es 1 mm más corto en todo el contorno. Este retroceso también ayuda a que el vidrio desaparezca de la vista en el reloj final. Se taladran cuatro agujeros de 5 mm en las esquinas para los tornillos Chicago. Estos tornillos sostienen el vidrio, los sensores táctiles y proporcionan un pad sensible al tacto sobre el vidrio. Los tornillos tienen ejes de 3 mm y tendrán un poco de cinta de goma alrededor para proteger el vidrio.

Voltea la tabla y taladra un rebaje con broca Forstner para alojar los cuatro sensores táctiles. Este agujero estará descentrado del taladrado en el paso anterior.
Soportes de Pared
El reloj se fija a la pared mediante dos soportes metálicos para colgar cuadros.

Estos están embutidos en el marco para que el punto más alto del soporte quede a nivel del marco. Dos tornillos avellanados No6 de 2" se asientan en estos soportes y sostienen el reloj a la pared con un poco de tensión para que el sello de polvo se comprima.
Paso 16: Montaje de Sensores Táctiles

Los módulos de sensor táctil se fijan al panel frontal usando los tornillos Chicago. Los tornillos Chicago actúan como sensores táctiles. Se taladra un agujero de 5 mm a través del pad del sensor en el módulo para permitir el paso del tornillo Chicago.

El pad del sensor está aislado por el panel MDF y una arandela de plástico.

El pad táctil del módulo sensor tiene un agujero de montaje de 5 mm taladrado a través del sensor.

Sensores táctiles en rebajes detrás del panel trasero. Agujeros taladrados en panel trasero permiten acceso a los tornillos Chicago que sostienen los sensores/vidrio frontal.

Panel frontal del reloj con cuatro tapas de tornillos Chicago actuando como placas táctiles.
Paso 17: Componentes Electrónicos y Módulos

Conexiones de pines ATmega328 por si quieres prototipar el circuito en un Arduino Uno. Nota: pin BST 07 no se usa. Los números de etiqueta de pin se refieren a números de Arduino IDE.

LEDs

Asegúrate de comprar tus LEDs de una buena fuente. Estos LEDs estarán encendidos muchas horas al día. He tenido problemas con LEDs que fallaban tras pocas semanas de uso.
Mis Especificaciones de LEDs
- LEDs blancos de 5 mm con tope plano, ofreciendo color puro y consistente con salida ultrabrillante de ángulo amplio.
- Color: Blanco
- Cantidad: 256
- Tipo de lente: Tope plano redondo
- Brillo: 13000 mcd
- Voltaje directo: 3.2 V - 3.8 V
- Corriente directa: 20 mA (típico), 30 mA (máx)
- Ángulo de visión: 120 grados
Sensor de Temperatura y Humedad DHT22

El DHT22 es un sensor digital básico y de bajo costo de temperatura y humedad. Usa un sensor de humedad capacitivo y un termistor para medir el aire circundante y envía una señal digital en el pin de datos. Solo se pueden obtener nuevos datos cada 2 segundos, por lo que las lecturas pueden tener hasta 2 segundos de antigüedad. Conecta el primer pin a la izquierda a 3-5 V, el segundo a tu pin de entrada de datos y el más a la derecha a tierra. Para evitar medir la temperatura dentro de la caja del reloj, la ventilación superior e izquierda del DHT22 se cubren con cinta. Esto también evita que el polvo entre en la caja.

El DHT22 se monta con su lado derecho abierto ajustado contra la cubierta trasera inferior. Se taladran dos pequeños agujeros en el borde inferior de la tabla MDF trasera para permitir la circulación de aire del ambiente alrededor del sensor.
Arduino NANO

El Arduino Nano puede alimentarse vía conexión USB Mini-B, fuente externa no regulada de 6-20 V (pin 30), o fuente externa regulada de 5 V (pin 27). La fuente se selecciona automáticamente al voltaje más alto. Memoria: ATmega328 tiene 32 KB (2 KB usados para bootloader), 2 KB SRAM, 1 KB EEPROM. Entrada/Salida: 14 pines digitales, cada uno puede usarse como entrada/salida, operan a 5 V, máx 40 mA por pin. Funciones especializadas: Serial (0 RX, 1 TX), Interrupciones externas (2, 3), PWM (3, 5, 6, 9, 10, 11), SPI (10 SS, 11 MOSI, 12 MISO, 13 SCK), LED integrado (13). 8 entradas analógicas (10 bits). I2C: 4 (SDA), 5 (SCL). Otros pines: AREF, Reset. Comunicación: UART TTL serial en pines 0/1, FTDI FT232RL en placa para USB, librería SoftwareSerial para serial en cualquier pin digital, soporte I2C y SPI.
Módulo Sensor Táctil TTP223

El módulo sensor táctil se atornilla al panel frontal usando los tornillos de montaje del vidrio. El tornillo pasa por un agujero de 5 mm taladrado en el centro del sensor. Nota: el tornillo de montaje se toca para activar el sensor pero está aislado del sensor mediante arandelas de plástico. Se usan cuatro módulos, uno en cada esquina del vidrio.

Nota: los LEDs no son necesarios y se quitan de los módulos (solo rómpelos) para ahorrar energía.
Módulo RTC de Precisión DS3231 AT24C32 I2C
Mi reloj usa un módulo RTC DS3231 AT24C32 I2C. El módulo viene con una batería de ion-litio recargable (ver diagrama). Uso una batería no recargable, así que he quitado la resistencia R5 del módulo.



Módulo de Visualización MAX7219


Limitación de Corriente LED MAX7219
La corriente máxima a través de los LEDs se establece mediante una única resistencia R1 en el módulo. El valor se encuentra en la tabla siguiente.

El módulo viene con una resistencia de 10K preinstalada, pero se puede quitar y poner una resistencia que coincida con la corriente de tus LEDs. Mis LEDs tienen voltaje directo 3.2-3.8 V @ 20 mA. Pueden manejar 30 mA máx, pero para larga vida 20 mA es mejor. He usado resistencias de 22KΩ que limitan la corriente a unos 20 mA en niveles máximos de luz. Ver ajuste de niveles de brillo automático.
Pantalla de Matriz de Puntos LED 1088AS

Vista del borde inferior pines 1 a 8 de izquierda a derecha. Se usa para prototipado y no es necesaria en el proyecto final.
LDR

Un LDR se usa para detectar niveles de luz ambiental. El LDR es de ~500 Ω en luz brillante y ~10 MΩ en oscuridad.

El LDR se posiciona debajo del reloj en el panel MDF trasero.

Junto al LDR hay un agujero para acceder al resistor ajustador para calibrar el control de brillo de LEDs.
Lista de Componentes

Paso 18: Sellos de Polvo
Para evitar la entrada de polvo se instalan dos sellos.

En la tabla MDF trasera se coloca un sello de gomaespuma suave de 2 mm. Cuando el reloj se cuelga en sus ganchos, el sello está bajo presión y sella la parte trasera del reloj a la pared. El sello es autoadhesivo y se coloca con un hueco de 5 mm al borde de la tabla MDF trasera.


En la parte superior del tablero frontal, para evitar que el polvo entre bajo el vidrio, se coloca una tira de goma autoamalgamante a 5 mm del borde. Para evitar que el vidrio se agriete al apretar los tornillos Chicago, se colocan 4 cuadrados pequeños de goma alrededor de los agujeros en el vidrio. Perforé los agujeros para los tornillos Chicago en la goma con un punzón de cuero.
Paso 19: Esquemático
Conexiones Nano

Conexiones al Arduino Nano. Descarga el archivo a tamaño completo desde la sección de hardware.
Conexiones MAX7219

Los 4 módulos MAX7219 y las matrices LED conectadas.

Nota: las matrices de visualización LED están rotadas 90 grados en sentido antihorario entre sí, empezando desde la matriz 01. La entrada de la matriz 01 se cablea al Arduino CLK, DIN y LOAD; la salida se lleva a la entrada de la matriz 02, etc.
Paso 20: Cableado – Construcción de las Matrices LED
Ubicación de Módulos

Las ubicaciones de los módulos se muestran arriba. Los cuatro sensores están en los rebajes del tablero principal detrás del tablero trasero. Se cortan agujeros en el tablero trasero para permitir acceso para colocar los tornillos Chicago/pads de sensores. Los cuatro módulos de visualización MAX7219 se sueldan juntos y se montan en la parte superior central del tablero. Esto mantiene los enlaces de datos entre placas lo más cortos posible. El Arduino Nano se monta a la izquierda de los módulos MAX7219 y el RTC a la derecha. El portabatería del RTC en la base del módulo está embutido en el tablero principal. La placa de pruebas con el módulo de alimentación está en la parte inferior. Hay dos placas de distribución de alimentación montadas en la parte superior. El cable principal de alimentación 5V 2A se lleva a ambas placas y la energía se distribuye a las demás placas desde estos puntos. La alimentación de las placas MAX7219 se toma de la placa izquierda y se encadena a través de cada placa, saliendo por la cuarta para asegurar que reciben 0V y 5V por ambos extremos.

Las ubicaciones de los LEDs se muestran. Las matrices LED contienen cada una 64 LEDs y están etiquetadas 1 a 4. Corresponden a los 4 módulos MAX7219 montados arriba numerados 1 a 4 de izquierda a derecha. Nota: esto es la parte trasera del reloj, por lo que los números estarán invertidos.

Las matrices LED se construyen con 2 tipos de barras de bus por módulo: una barra de bus de cátodo a 10 mm de altura y una barra de bus de ánodo a 2 mm de altura. Hay 8 barras de bus de cátodo y 8 de ánodo por módulo. Cada módulo tiene 16 clavijas de panel de 15 mm martilladas en la tabla en la posición mostrada para soportar la barra de bus de cátodo de 10 mm de altura.

Las clavijas de 15 mm se martillan 5 mm (usé una barra metálica de 10 mm como calibre) dejando 10 mm como soporte de la barra de bus de cátodo. Como se muestra, las clavijas corresponden con las partes gruesas de la tabla, no con el rebaje para los LEDs en el frontal. Nota: el rebaje del LED está en el frontal y no se ve desde la parte trasera.

Alambre de cobre de 0.9 mm se suelda a cada par de clavijas para formar la barra de bus de cátodo. Nota la rotación de cada módulo y que los módulos están en reversa al ser la parte trasera de la tabla donde se conectan los LEDs.

Las barras de bus de ánodo se muestran abajo en rojo y están soportadas en cada ánodo del LED a unos 2 mm de la tabla MDF. No se requieren clavijas.

Ambas ubicaciones de barras de bus cátodo y ánodo se muestran. Cada LED se conecta a un ánodo y cátodo de la matriz.
Paso 21: Cableado de los LEDs
LEDs

Diagrama mostrando disposición de barras bus con clavijas de panel soportando la barra de bus de cátodo. Este módulo tiene barras de bus de cátodo horizontales y de ánodo verticales.

Sección cercana del cableado del módulo. Las barras de bus de cátodo corren verticalmente y las de ánodo horizontalmente en este módulo. Las barras de bus de ánodo y cátodo tienen una separación vertical de 8 mm.

Los LEDs se conectan a las matrices y módulos MAX7219 desde la parte trasera. Las posiciones de los LEDs estarán invertidas y rotadas 90° relativas al siguiente módulo. Esto hace que sea muy complicado conectar los LEDs y barras de bus correctos desde la parte trasera. La tabla siguiente muestra las posiciones de los LEDs en cuadros azules con la posición de la matriz de barras de bus en negro alrededor del exterior como aparecen desde la parte trasera del tablero frontal MDF.

Los LEDs se doblan en un jig para mantener la posición en la pantalla constante y acelerar la construcción. Cada LED tiene cuatro dobleces, dos en cada pata: 1024 en total. La pata del cátodo se dobla 90° desde el ánodo.

Las cuadrículas de matriz se cablean a los pines correspondientes en los módulos MAX7219 según la tabla de disposición.

Hay 16 cables a cada módulo.

Tabla 1: Código de color de cableado de matriz LED del módulo. Cada módulo tiene 16 cables conectándolo a las matrices LED. Usé cable de 50 pares 0.5 mm, así que los últimos 14 pares de colores se duplican. En el módulo 4 me salí de orden y omití el Gris/Violeta al inicio, así que lo puse al final.
Paso 22: Cableado – Modificación de Módulos MAX7219

Antes de conectar cables a los módulos MAX7219, necesitan ser modificados.

Se sueldan dos juegos de 8 conectores de pines a 90° al borde inferior del conector de matriz LED existente.

Módulo MAX7219 modificado con conectores de pines a 90° soldados en la parte inferior de los conectores de matriz LED antiguos. Los cables se llevan desde estos puntos a la matriz LED en el tablero principal MDF según la tabla de código de color de cableado de matriz LED del paso anterior.

Vista lateral mostrando los pines soldados al lado de los pines del conector de matriz LED antiguo justo encima del PCB. Nota: si tu módulo MAX7219 no tiene componentes de montaje superficial, los conectores de pines a 90° pueden necesitar recortarse para que no interfieran con R1, C1 o C2.
Limitación de Corriente LED MAX7219
La corriente máxima a través de los LEDs se establece mediante una única resistencia R1 en el módulo. El valor se encuentra en la tabla siguiente.

El módulo viene con una resistencia de 10K preinstalada pero se puede quitar y poner una resistencia que coincida con la corriente de tus LEDs. Mis LEDs: voltaje directo 3.2-3.8 V @ 20 mA, máx 30 mA. Para larga vida 20 mA es mejor. Usé resistencias de 22KΩ que limitan la corriente a unos 20 mA en niveles máximos de luz. Nota: esto establece la corriente máxima; el brillo real se controla por LDR/software/resistor ajustador y suele ser mucho menor.
Configuración de Niveles de Brillo Automático
El reloj detecta automáticamente la luz ambiental y ajusta los LEDs en consecuencia. Al instalar por primera vez, el reloj necesita calibrarse a los niveles máximos de luz en su ubicación real. Conecta un móvil, portátil/tablet mediante cable adecuado al puerto USB mini del reloj y abre una app para monitorizar el puerto serie. Uso Slick USB 2 Serial Terminal en mi S7 vía cable OTG y USB a mini USB.


El reloj se reiniciará y tras la pantalla inicial verás los siguientes datos actualizándose en pantalla. No te preocupes por lightReading o constrained lightReading+hyster, solo light reading y bright. Con el reloj en posición y la luz ambiental en su máximo, inserta cuidadosamente un destornillador plano de joyero en el agujero de acceso justo a la derecha del sensor de luz. Gira lentamente hasta que light reading = 600 (o tu nivel en brightness.cpp) y bright = 15. Tu reloj irá ahora a brillo máximo cuando la luz ambiental sea máxima. Si giras demasiado, light reading superará 600 pero bright no aumentará. Si quieres el reloj más tenue en todo el rango, ajusta light reading a un nivel menor de 600 en luz ambiental máxima. Nota: cuando bright=15 se entrega la corriente máxima a los LEDs. La corriente máxima la establece R1 (RSET) en el módulo MAX7219 y debe elegirse para tu tipo de LED.
Paso 23: Cableado Puerto Mini USB

Para permitir ajuste/comprobación de niveles de luz y programación del reloj, un zócalo Mini USB se recorta en el lado derecho de la lámina MDF trasera. Usé un cable de extensión Mini USB macho-hembra de 25 cm con ángulo recto de 90° y pelé la funda aislante y el apantallamiento para exponer los cables. Esto permite que el cable doble alrededor de ángulos agudos y espacios reducidos del recinto.
Paso 24: Apagado de Pantalla Controlado por PIR
Esto es opcional ya que un módulo de radar Doppler puede instalarse dentro del reloj en su lugar. Ver siguiente sección.
El PIR, cuando está activado en el menú del reloj de palabras (abajo izquierda PIR On, abajo derecha PIR Off), enciende la pantalla cuando se detecta movimiento en la habitación. Cuando no se detecta movimiento, la pantalla se apaga tras un tiempo determinado. Cuando el PIR está activado, la pantalla muestra "PIR ON" y cuando está desactivado (pantalla siempre encendida) muestra "PIR OFF". Nota: cuando el PIR no está activado, la pantalla está siempre encendida.
El módulo PIR se instala remotamente del reloj en una caja de interruptor de luz cromada modificada. La caja se empotra en una pared de yeso y también contiene un interruptor para apagar el reloj. El módulo es muy pequeño y puede montarse en un recinto diminuto si no quieres que se vea. No funciona detrás de vidrio, así que si quieres montarlo en el reloj, se necesitaría un agujero en el vidrio. Es muy fácil con una sierra de corona grande.

Se usa una placa de interruptor cromada en blanco y caja trasera para alojar el interruptor de alimentación y el módulo PIR. Se taladran dos agujeros en la placa para el interruptor y la lente del PIR. Los agujeros se marcan con punzón, se taladran guía y luego se abren lo justo para que quepa una fresa escalonada. El agujero para el difusor del PIR se corta justo lo suficiente para que la lente entre con ajuste por fricción.


El positivo de 12 V se termina en el interruptor con el 0V en el tornillo de tierra. 12 V se alimenta de vuelta al reloj a la placa de pruebas PSU desde el otro lado del interruptor y de nuevo el tornillo de tierra. 5 V se alimentan desde la placa PSU del reloj para alimentar el módulo PIR. Los 5 V y el cable del sensor PIR al reloj terminan en conectores de cabecera PCB. Estos se enchufan en los pines de cabecera del módulo PIR. El cable de sincronización termina en pines de cabecera y se conecta al cable de sincronización de 30 segundos del Reloj Maestro mediante un solo zócalo de cabecera.

El PIR tiene 2 resistencias ajustadoras para sensibilidad y tiempo que el PIR y la pantalla permanecen activados.
Control Encendido/Apagado PIR: El PIR se enciende y apaga en modo reloj de palabras tocando el sensor inferior izquierdo para encender o el derecho para apagar. Nota: cuando el PIR está en off, la pantalla permanece encendida permanentemente. Al cambiar el ajuste PIR, la palabra "PIR ON" o "PIR OFF" se muestra durante 5 segundos. Al encender inicialmente, el default es PIR off; si activas PIR On inmediatamente, la pantalla se apagará porque el PIR tarda un minuto en inicializarse antes de detectar movimiento. Fotos 6 y 7: "PIR ON" o "PIR OFF" se muestran 5 segundos al cambiar el ajuste.
Paso 25: Opción de Control por Radar Doppler
Opcionalmente se puede añadir un módulo de radar Doppler en lugar del PIR anterior.

El radar Doppler, cuando está activado en el menú del reloj de palabras (abajo izquierda PIR On, abajo derecha PIR Off), enciende la pantalla cuando se detecta movimiento. Se comprueba movimiento cada cuarto de hora. Cuando no se detecta movimiento, la pantalla se apaga hasta que se detecta movimiento de nuevo. Cuando el PIR está activado, la pantalla muestra "PIR ON" y cuando desactivado (pantalla siempre encendida) muestra "PIR OFF". Nota: cuando el PIR no está activado, la pantalla está siempre encendida. A diferencia de los módulos PIR, el radar Doppler puede ver a través de vidrio y plástico y se fija dentro de la caja del reloj detrás del vidrio y la pegatina de PVC. El módulo tiene un alcance de unos 5 m (16' 5").


Panel frontal mostrando agujero hacia el sensor de microondas del radar Doppler. El módulo queda oculto detrás de la pegatina PVC y el vidrio.

Paso 26: Control Encendido/Apagado PIR/Radar Doppler
El PIR se enciende y apaga en modo reloj de palabras tocando el sensor inferior izquierdo para encender o el derecho para apagar. Nota: cuando el PIR está en off, la pantalla permanece encendida permanentemente.


Al cambiar el ajuste PIR, la palabra "PIR ON" o "PIR OFF" se muestra durante 5 segundos. Al encender inicialmente, el default es PIR off; si activas PIR On inmediatamente, la pantalla se apagará porque el PIR tarda un minuto en inicializarse antes de detectar movimiento.
Paso 27: Configuración de Niveles de Brillo Automático
El reloj detecta automáticamente la luz ambiental y ajusta los LEDs. Al instalar por primera vez, necesita calibrarse a los niveles máximos de luz en su ubicación. Conecta un móvil, portátil/tablet mediante cable adecuado al puerto USB mini del reloj y abre una app para monitorizar el puerto serie. Uso Slick USB 2 Serial Terminal en mi S7 vía cable OTG y USB a mini USB.


El reloj se reiniciará y tras la pantalla inicial verás los datos actualizándose. No te preocupes por lightReading o constrained lightReading+hyster, solo light reading y bright. Con el reloj en posición y luz ambiental máxima, inserta cuidadosamente un destornillador plano de joyero en el agujero de acceso a la derecha del sensor de luz. Gira lentamente hasta que light reading = 600 (o tu nivel en brightness.cpp) y bright = 15. Tu reloj irá a brillo máximo cuando la luz ambiental sea máxima. Si giras demasiado, light reading superará 600 pero bright no aumentará. Si quieres el reloj más tenue en todo el rango, ajusta light reading a un nivel menor de 600 en luz ambiental máxima. Nota: cuando bright=15 se entrega la corriente máxima a los LEDs. La corriente máxima la establece R1 (RSET) en el módulo MAX7219 y debe elegirse para tu tipo de LED.
Paso 28: Configuración del Reloj
El reloj se configura en modo reloj digital tocando el sensor inferior izquierdo.

Los dígitos de hora parpadearán dos veces por segundo indicando modo de configuración de hora. En este modo los sensores funcionan así:
- Superior derecho: incrementa dígitos de hora o minutos
- Superior izquierdo: decrementa dígitos de hora o minutos
- Inferior izquierda 1ª pulsación: entra en modo configuración seleccionando dígitos de hora
- Inferior izquierda 2ª pulsación: selecciona dígitos de minutos para cambiar
- Inferior izquierda 3ª pulsación: sale del modo configuración y establece la hora
- Inferior derecho: reinicia segundos a 00
Paso 29: Sincronización
Si has conectado un cable de sincronización de reloj maestro de 30 segundos, el reloj saltará adelante o atrás a 30 segundos cuando esté fuera del modo configuración. Si no tienes reloj maestro, el reloj recurrirá al RTC compensado por temperatura a bordo, que es un reloj de cuarzo muy preciso. Solo reinicia los segundos aproximadamente sincronizados (dentro de 10 segundos) y espera a que el reloj se sincronice una vez fuera del modo configuración.

El bucle animado muestra el reloj de palabras adelantado varios segundos. Se recibe un pulso de sincronización del reloj maestro cada 30 segundos en el minuto y medio minuto, sincronizando el reloj a 30 segundos. El reloj ignorará el pulso de sincronización a 0 segundos. La sincronización solo ocurre cuando el reloj está a 20 segundos pasado y 20 segundos para un minuto. En operación normal, el pulso corrige el reloj a fracción de segundo, verás la palabra "SYNC" aparecer sin corrección visible de los segundos. Nota: el pulso se recibe cada 30 segundos pero el reloj ignora los pulsos a 0 segundos.
Paso 30: Software y Realización de Cambios
El software se puede descargar desde la pestaña de software y contiene los siguientes módulos:
Archivos de Programa Módulos
- Brett_wordclock_v4_3.ino – Programa principal, última actualización incluye código acortado ahorrando 10% en tamaño. Gracias a srdevil por el código actualizado para la visualización de segundos.
- brightness.cpp/.h – Ajuste automático de brillo
- character.cpp/.h – Definiciones de caracteres (dígitos)
- credits.cpp/.h – Créditos finales
- display.cpp/.h – Funciones de visualización y LED
- life.cpp/.h – Juego de la Vida
- serial.cpp/.h – Menú de configuración puerto serie
- simon.cpp/.h – Juego Simón
- temphum.cpp/.h – Visualización temperatura y humedad
- tetris.cpp/.h – Juego Tetris
- time.cpp/.h – Reloj de palabras, reloj digital
- timeanalog.cpp/.h – Reloj analógico
- touchbuttons.cpp/.h – Botones táctiles, cambio de modo
Librerías de terceros:
- Chronodot.cpp/.h – Librería Chronodot (para DS3231)
- DHT.cpp/.h – Librería sensor temperatura (para DHT22)
- LedControl.cpp/.h – Librería LedControl (para MAX7219)
- stc.cpp/.h/platform.h – Librería Simple Tetris Clone
- pitches.h – Frecuencias de notas de la web de Arduino
Cuando quieras hacer cambios en mi código, puedes compararlo con el "Código Catalán" para entender qué cambios necesitas. He añadido //Brett en mi código para resaltar mis cambios.
Cambiar el código. Si como yo no eres muy bueno programando, juega con el código para entender cómo funciona. Guardo una versión diferente cada vez que hago incluso un pequeño cambio; así si la lío puedo volver a una versión anterior. Si mantienes mi visualización lineal de segundos, actualiza el número de versión en la pantalla para saber qué versión estás probando. Esto se hace en credits.h alrededor de la línea 47.
Explicar todo el código llevaría demasiado, pero aquí una guía breve de cómo cambiar las palabras y cuándo se muestran.
LAS PALABRAS se definen en time.h

En la línea 52 tenemos: const byte w_the[3] PROGMEM = { 0, 0, 3 }; La palabra "THE" se describe en esta línea con la ubicación del LED en llaves "{ 0, 0, 3 }". Esta es la coordenada de los LEDs que encenderemos al llamar "w_the". La numeración de la matriz LED empieza en la esquina superior izquierda desde 0, así que "{ 0, 0, 3 }" es el primer LED horizontal y vertical, el 3 significa que 3 LEDs horizontales incluyendo este se encenderán. Como las letras THE están en esta posición, se muestra la palabra "THE". Similarmente, la palabra "TIME" se encendería iluminando los cuatro LEDs en { 0, 4, 4 } (fila 0, 5º LED horizontal, encender 4 LEDs, recordando contar desde 0). Bajando por la página se muestra la posición de todas las palabras.
Controlar cuándo se encienden las palabras

Esto ocurre en el módulo time.cpp. Aquí solo haces una lista de reglas para decir al reloj qué palabras encender a ciertas horas. La imagen muestra parte del código desde la línea 695. A medianoche queremos que el reloj diga "THE TIME IS TWELVE OCLOCK AT NIGHT". Medianoche es 00:00. "THE TIME IS" siempre se muestra desde la línea 687. Así que añadimos reglas: si minutos son 0, entonces si horas son 0 muestra la palabra para horas "TWELVE" y la palabra "OCLOCK", la palabra "AT" y la palabra "NIGHT". Siguiendo el código se cubren todas las combinaciones de tiempo posibles.
Cambio de Código Reloj Analógico – Aumento en Definición de Tiempo Uno de los comentarios de srdevil fue algunos cambios de código. No he tenido tiempo de probarlos pero los incluyo por si quieres probarlos. "Si la hora es 18:00, apunta arriba (pata larga) y abajo (pata corta). Pero cuando es 18:59, sigue apuntando totalmente abajo (pata corta) así que parece 17:59 en un reloj normal. Mi hermano cambió el código para que si es >HH:15 el puntero pequeño ya se mueva al siguiente número. También aumentamos la resolución en la parte entre >HH:15 - ... Código en la sección de comentarios o en https://home.btconnect.com/brettoliver1/Word_Clock/Word_Clock.htm#analogeclock
Código
- Brett_wordclock_v4_5.zip
Brett_wordclock_v4_5.zip Arduino
No preview (download only).
GitHub
https://github.com/wouterdevinck/wordclock
GitHub
https://github.com/svcabre/wordclock
Mi Reloj de Palabras en GITHUB
Esquemáticos y código: https://github.com/brettoliver/wordclock
Piezas Personalizadas y Recintos
Diseño de pegatina de vinilo en Inkscape (gratis para descargar) cambiar según necesidad.
brett11_print_ready_6bbpMTDyFa.svg
Esquemáticos
Esquemático mostrando conexiones tablero principal
Módulo de visualización 7 segmentos MAX7219 01 conexiones LED
Módulo de visualización 7 segmentos MAX7219 02 conexiones LED
Módulo de visualización 7 segmentos MAX7219 03 conexiones LED
Módulo de visualización 7 segmentos MAX7219 04 conexiones LED
Proceso de manufactura
- Reloj de cuco: historia, artesanía y evolución moderna
- Medición de Sensores Analógicos en Raspberry Pi con un Solo Pin GPIO
- Construye un reloj Numitron retro con Arduino: Simple, fiable y eficiente energéticamente
- Reloj de Palabras DIY con Arduino: Construye una Pantalla Elegante en Tiempo Real
- Construye un reloj en tiempo real con Arduino para horarios de oración islámica
- Monitor de Temperatura y Reloj en Tiempo Real con Arduino Due y Pantalla TFT 3.2"
- Reloj de Palabras en Italiano con Arduino Nano, NeoPixel, LCD y RTC
- Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO
- Impresión 3D de silicona: La próxima frontera en fabricación aditiva
- Elimine Cuellos de Botella en Producción: 5 Herramientas Comprobadas para Eficiencia Manufacturera
- Python timeit(): medición de tiempo de ejecución con ejemplos prácticos