Reloj Preciso de 7 Segmentos con Arduino Pro Mini y RTC DS1302
Componentes y suministros
| Arduino Pro Mini 328 5V/16MHz (SparkFun) | ×1 |
| Módulo RTC DS1302 (comprar módulo y desoldar zócalo y cristal) | ×1 |
| Batería CR1220 y zócalo | ×1 |
| Condensador 0.1 µF 1206 SMD | ×1 |
| Condensador 10 µF 1206 SMD cerámico | ×1 |
| Pulsador táctil 12mm con tapa | ×4 |
| Convertidor DC-DC step-down 3A mini | ×1 |
| Display 7 segmentos 4 dígitos 0.28" cátodo común | ×36 |
| MAX7219 DIP | ×18 |
| Zumbador | ×1 |
| Headers macho/hembra mecanizados (tiras de 40, necesitas 8 de cada) | ×1 |
| Conector DC jack 5.5×2.1 mm | ×1 |
Herramientas y máquinas necesarias
- Soldador (genérico)
- Impresora 3D (genérica)
Aplicaciones y servicios online
- Arduino IDE
Sobre este proyecto
Navegando por Hackaday.io encontré un precioso reloj con matriz de displays 7 segmentos de Frugha. Quería construirlo, pero su versión es grande al usar displays de 0.56". Mi diseño usa displays de 0.28", reduciendo el tamaño a una cuarta parte.
El software se reescribió para añadir alarma y pantalla de configuración para hora, fecha y alarma.
Pantalla de configuración
El reloj se controla con 4 botones. SELECT (arriba) muestra la configuración. La selección actual parpadea. Pulsar SELECT de nuevo recorre: Hora, Fecha, Alarma, Melodía, Brillo, Formato fecha y Reloj.
ENTER (2º botón) entra en edición del ítem seleccionado. Si hay varios ajustes, ENTER cicla entre ellos. El activo parpadea. UP/DOWN (botones inferiores) cambian el valor.
Pantalla de fecha
Pulsar ENTER en modo reloj muestra la fecha 5 segundos. En configuración, "Formato fecha" permite elegir DD-MM o MM-DD y fuente (cuadrada/pequeña).
Consideraciones de diseño
Para simplificar el PCB, usé displays de 4 dígitos en lugar de dígitos individuales. Al ser pequeños (0.28"), los MAX7219 van en placa separada. Para simplificar cableado, usé headers mecanizados macho/hembra entre placas. Se incluyen archivos Eagle para fabricación profesional o casera (método tóner).
Placas de columna (6 unidades)
Cada placa sostiene 6 displays de 4 dígitos. Al soldar headers macho, empieza por el central y ve hacia fuera. Usa un palillo para levantar el zócalo y soldar cómodo. Soldador punta fina y estaño 0.5 mm.
Tras montar, pinta los bordes de los displays con pintura mate negra para ocultar bordes blancos si no alinean perfecto. Numera cada módulo con rotulador para saber su posición en la placa madre MAX7219.
Placa madre MAX7219 (18 chips)
No mapeé los segmentos/dígitos del MAX7219 a los pines del display en el PCB; mantuve el layout simple y compensé en software. Recomiendo colocar los zócalos hembra sobre los pines macho de las columnas y soldar el conjunto así: los pines alinean perfecto. Si los quitas, la numeración asegura que vuelvan al sitio.
Placa MPU (microprocesador)
Contiene el resto de componentes. 4 botones y 2 condensadores SMD en la cara trasera; el resto en la frontal. Para bajo perfil, el header FTDI del Pro Mini se suelda directo al PCB. Dos cables bajan de DTR y VCC al PCB.
Caja impresa en 3D
Archivos STL para tapa frontal y trasera. Imprimir con altura de capa 0.2 mm y brim. La frontal necesita soportes que toquen la base. La placa madre con columnas se desliza por delante; si queda suelta, usa cinta de enmascarar como relleno. La placa MPU se pega con cola caliente atrás.
Software
Requiere librería MD_MAX72XX en Arduino IDE. Incluye sketch Hardware_Test_V1 para testear (enciende todos los segmentos). Una vez verificado, sube Clock_V4.ino.
Código principal (Clock_V4.ino)
Reloj con matriz de 7 segmentos basado en Frugha (hackaday.io/project/169632). Modificaciones de John Bradnam: displays 0.28", orden MAX7219 cambiado para PCB simple, hardware Pro Mini + DS1302 + 4 botones, alarma con melodías, brillo ajustable, pantalla configuración, pantalla fecha (5s), formato fecha y fuente configurable. Usa librerías MD_MAX72xx, SPI, TimeLib, DS1302RTC, EEPROM, y archivos locales Button.h/cpp, Tunes.h, Digits.h.
Archivos adicionales
- Digits.h: definiciones de dígitos grandes (6×6), pequeños (5×3) y cuadrados (5×3) en PROGMEM, mapeo de dígitos por dispositivo y tabla ASCII para segmentos.
- Tunes.h: melodías (descarga únicamente).
- Button.h/cpp: librería ligera para botones con antirrebote, repetición automática y callbacks.
- Hardware_Test_V1.zip: test de hardware (descarga únicamente).
Piezas personalizadas y cajas
Archivos STL para carcasa frontal y trasera.
Esquemáticos
Esquemático de cada MAX7219 (repetido 18 veces), placas de columna (6 displays cada una), y archivos PCB en formato Eagle.
Proceso de manufactura
- Reloj POV con Arduino: Construye una pantalla LED de persistencia de visión
- 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
- Construye un Reloj Maestro LED Personalizado con Alarma – Visible desde 12 Metros
- Reloj flip Arduino con matriz LED 8×8: proyecto DIY de reloj en tiempo real
- Control de Matriz LED 8×8 con Arduino Uno: Guía Paso a Paso
- eDOT: Reloj Preciso y Estación Meteorológica Arduino con Control IR Integrado
- Sistema Radar Compacto con Arduino Nano, Sensor HC-SR04 y Pantalla 1.8"
- Reloj Meteorológico Arduino en Tiempo Real: Pantalla OLED para Hora, Fecha y Temperatura
- Shield de Reloj Nixie NCS314 para Arduino UNO/MEGA – Compatibilidad IN‑14/IN‑12
- Construye un reloj despertador fiable con RTC DS1302 y Arduino UNO