Este proyecto presenta un reloj digital construido con un Arduino Nano ESP32 y una matriz de 8×32 LED gobernada por un controlador MAX7219. El objetivo es un reloj compacto, con dígitos claramente visibles, brillo moderado y actualizaciones de hora precisas por Wi-Fi. El sistema también admite configuración manual por Bluetooth de baja energía y se alimenta por USB-C.

Reloj de matriz LED con Arduino Nano ESP32
Reloj de matriz LED con Arduino Nano ESP32

¿Qué componentes lleva el reloj?

El corazón del sistema es el Arduino Nano ESP32, elegido por su Wi-Fi y Bluetooth integrados, su memoria interna, el puerto USB-C y el tamaño reducido. La pantalla usa cuatro módulos de matriz LED de 8×8, administrados por el MAX7219 y alimentados a 5 voltios. Como el microcontrolador trabaja a 3,3 voltios, el circuito incluye un desplazador de nivel bidireccional para adaptar correctamente la comunicación.

El proyecto también integra una fotorresistencia LDR para el ajuste automático de brillo. Además hay tres pulsadores y un LED para fijar la hora a mano cuando no hay Wi-Fi disponible. El armado incluye una placa de circuito impreso dedicada, una carcasa impresa en 3D, tornillos, separadores, un adaptador USB-C en ángulo recto y un panel frontal de plexiglás rojo.

¿Cómo se configura la red y la hora?

Los parámetros de Wi-Fi y la zona horaria se configuran entrando en modo de configuración y conectándose al reloj por Bluetooth. El sistema acepta cadenas de texto para fijar el nombre de la red, la contraseña y la zona horaria. Esos datos se guardan después en la memoria EEPROM interna. Si el parámetro de red queda vacío, se omite la sincronización por NTP sobre Wi-Fi y la hora debe fijarse a mano con los botones dedicados de hora y minutos.

Cuando hay una red disponible, el reloj sincroniza la hora al encender en unos 30 segundos y después se actualiza cada hora. El código también maneja la corrección de horario de verano para la zona de Europa Central. El estado de los dos puntos del reloj indica si hubo una sincronización reciente o si la hora puede estar inexacta o fijada manualmente.

Software y consumo eléctrico

El desarrollo se hizo con el editor web de Arduino. Algunas partes del código requirieron adaptaciones específicas, en particular para el manejo de la EEPROM y la comunicación con la pantalla MAX7219. La biblioteca LedControl no funcionó directamente sobre el Nano ESP32, así que se implementó un sistema de transmisión serial síncrona usando tres pines digitales, con el código incorporado en el propio programa.

El brillo va de 0 a 15, pero el proyecto recomienda mantenerse en el nivel 5 o por debajo para dejar el consumo dentro del límite típico de alimentación por USB. Estas son las corrientes aproximadas reportadas con los 256 LED encendidos:

Nivel de brilloCorriente aproximada
075 miliamperios
2245 miliamperios
6525 miliamperios
10725 miliamperios

La progresión no es lineal y ese es el dato práctico: pasar del nivel 2 al 6 más que duplica el consumo, y el nivel 10 se acerca a los 750 miliamperios, un valor que ya presiona el límite de un puerto USB corriente. La tipografía numérica queda además completamente personalizable editando las matrices definidas en el código.

Qué mirar antes de replicarlo en Chile

Dos ajustes son obligatorios para usarlo en el país. El primero es la zona horaria: el código trae la corrección de horario de verano de Europa Central, que no coincide con el calendario chileno, así que ese bloque hay que reescribirlo o desactivarlo y fijar el desplazamiento correspondiente a mano.

El segundo es la alimentación. Con el brillo en el nivel recomendado el reloj se queda holgadamente bajo los 500 miliamperios, pero si se sube al máximo conviene un cargador que entregue al menos 1 amperio y no un puerto USB de computador.

En cuanto a las piezas, los módulos de matriz de 8×8 con MAX7219 y la fotorresistencia LDR son componentes de catálogo común en la electrónica local. El Arduino Nano ESP32 es la pieza más cara del conjunto, y aquí importa que la elección se justifica por tener Wi-Fi y Bluetooth en el mismo encapsulado: sin sincronización por red, un reloj con módulo de tiempo real dedicado saldría bastante más barato.