En esta página te enseñaremos a realizar tu propio reloj digital con Arduino usando displays de 7 segmentos como dispositivo de visualización. Hemos decidido incluir en este proyecto un segundero para hacerlo más vistoso pero también podrías omitir esta parte y realizar una versión más compacta.

Nuestro proyecto utilizará 6 displays de cátodo común para visualizar la hora (horas, minutos y segundos) o la fecha (mes, día, año). La fecha y la hora podrá ajustarse utilizando dos botones tipo push. Para llevar el conteo del tiempo incluso con la alimentación desconectada usaremos un módulo RTC DS3231.

Este es un proyecto de nivel intermedio en el que podremos aplicar temas como comunicación I2C, interrupciones, uso de librerías, manejo de fechas y horas, botones, etc. Además requerirá buen manejo del protoboard debido al número de conexiones que deben realizarse entre los displays.

Si deseas algo un poco más sencillo de realizar desde el punto de vista del armado quizá quieras intentar el reloj digital con Arduino y pantalla LCD 20×4 con dígitos grandes.

¿Cómo hacer un reloj digital con Arduino y displays de 7 segmentos?

Para realizar el reloj digital con Arduino y displays de 7 segmentos deberás tener la capacidad de manejar con soltura el protoboard, pues se trata de un proyecto algo demandante en cuanto a su armado.

También puedes considerar armarlo en una placa fenólica perforada para volverlo un poco más robusto si piensas dejarlo armado de forma permanente.

El procedimiento para realizar un reloj digital con Arduino es el siguiente:

  1. Adquirir los materiales necesarios
  2. Armar el circuito electrónico que se muestra en el diagrama a continuación, ya sea en el protoboard o en tarjeta perforada.
  3. Descargar el código que se muestra en esta página y cargarlo en la tarjeta Arduino Nano
  4. Probar el funcionamiento del circuito
  5. Poner a tiempo el reloj

Materiales

Para armar este proyecto se requieren los siguientes materiales que puedes encontrar en nuestra tienda de electrónica en línea:

Diagrama esquemático de reloj digital con Arduino

Como se puede observar en el diagrama esquemático el mayor trabajo está en cablear en paralelo todos los segmentos de los displays, esta es una tarea que requiere bastantes puentes en el protoboard. El resto del circuito es relativamente sencillo, pues estamos haciendo uso de módulos que simplifican el armado.

Hay que prestar atención a la polaridad y tipo de display (deben ser cátodo común), en los transistores también será necesario prestar atención a la polaridad y disposición de las terminales.

Diagrama esquemático para construir un reloj digital con Arduino Nano utilizando displays de 7 segmentos.

Puedes descargar el diagrama esquemático aquí en formato PDF para visualizarlo de forma más cómoda en tu PC.

Uso de pines

Esta es una lista de los pines usados en este proyecto y la función que desempeñan en el programa.

PinFunción
2Interrupción de RTC DS3231
3Botón o pulsador SET
4Botón o pulsador UP
5Segmento A
6Segmento B
7Segmento C
8Segmento D
9Segmento E
10Segmento F
11Segmento G
12Habilitación de cátodo común display 1
13Habilitación de cátodo común display 2
A0Habilitación de cátodo común display 3
A1Habilitación de cátodo común display 4
A2Habilitación de cátodo común display 5
A3Habilitación de cátodo común display 6
A4Señal SDA RTC DS3231
A5Señal SCL RTC DS3231

Código para reloj digital con displays de 7 segmentos

Librerías utilizadas en el programa

Para poder compilar el programa deberás tener instaladas las siguientes librerías en Arduino IDE:

Se pueden obtener directamente desde el gestor de librerías o bien descargándolas e instalándolas manualmente.

Funcionamiento y puesta a tiempo

Una vez que tengamos armado el circuito podemos conectarlo al puerto USB de la computadora y veremos que el conteo de tiempo comienza en los displays.

Para poner a tiempo el reloj digital con Arduino:

  • Mantenemos pulsado el botón SET (pin 3) hasta que comiencen a parpadear los dos primeros dígitos (hora).
  • Con el botón UP (pin 4) aumentamos la hora hasta llegar al número deseado.
  • Oprimimos nuevamente el botón SET para cambiar al ajuste de minutos.
  • Con el botón UP aumentamos los minutos hasta llegar al número deseado.
  • Repetimos los pasos anteriores para ajustar segundos, mes, día y año.
  • Podemos usar el botón SET para cambiar el componente de la fecha que estamos ajustando y el botón UP para modificar (incrementar) el valor.
  • Para salir del modo de ajuste mantenemos pulsado el botón SET por 5 segundos. El reloj comienza a contar el tiempo nuevamente con la nueva hora y fecha que programamos.

Durante el funcionamiento normal del reloj podemos mantener pulsado el botón UP para mostrar la fecha en formato mes / día / año.

Lecturas recomendadas y enlaces externos

Conclusión

  • En este tutorial aprendimos cómo podemos usar la técnica de multiplexado de displays y presentamos una librería de Arduino que hemos realizado con este propósito.
  • Repasamos la lectura y puesta a tiempo del RTC DS3231, también pudimos observar como utilizar el pin de SQW para generar una señal cuadrada que nos sirve para actualizar la hora en los displays.
  • Utilizamos librerías de Arduino que ya teníamos desarrrolladas y vimos su aplicación en un proyecto real.
  • El código nos sirve como ejemplo para manejar interrupciones externas y con el uso de un timer.
1
Escanea el código