Reloj que muestra la hora en forma de operaciones aritméticas (sumas y restas) para desarrollar el cálculo mental. También se puede poner en modo de funcionamiento normal.

Imagen infográfica.

Se controla por Bluetooth para cambiar de hora, funcionalidad y brillo de los leds. Posee un pulsador lateral que cambia la función de normal a aritmética. Muestra la información con dos pantallas matrices 8 módulos de 8×8 leds. Es alimentado con corriente continua de 35 a 5 Voltios.

Materiales necesarios

  • 1 Arduino nano
  • 2 Matrices leds rojos MAX7219
  • 1 Módulo reductor DC-DC, LM2596 (opcional dependiendo de la fuente).
  • 1 Módulo Bluetooth HC-05
  • 1 Módulo reloj en tiempo real DS3231
  • 1 Pulsador metálico 16mm
  • 1 Conector de entrada CC 8mm

Matriz MAX7219

Compuesta de 4 módulos controlados por el chip MAX7219 que maneja cada matriz de 8×8, esto implica utilizar 16 señales digitales y refrescar la imagen de una forma constante.

Vamos a utilizar dos de estos paneles en el proyecto por lo que tendremos que unir los 5 hilos desde la salida de uno de ellos a la entrada del otro. Luego conectaremos en la entrada del primero los pines al Arduino. Usaremos D13 para CLK, D11 conectado a CL y D10 irá conectado al pin DIN (ver esquema eléctrico de conexiones).

Para alimentar los módulos recordar que no pueden ser alimentados por la salida de Arduino 5V, pues el consumo del display es muy superior a la entrega del micro-controlador. Teniendo en cuenta esto, deben conectarse directamente a la salida de corriente del LM2596.

Convertidor Voltaje DC-DC Step-Down 3A LM2596

El convertidor de voltaje DC-DC Step-Down 3A LM2596 tiene como función entregar un voltaje de salida constante inferior al voltaje de entrada frente a variaciones del voltaje de entrada o de carga. Soporta corrientes de salida de hasta 3A, voltaje de entrada entre 4.5V a 40V y voltaje de salida entre 1.23V a 37V. El voltaje de salida se selecciona mediante un potenciómetro multivuelta.

Es importante ajustar la salida para que entregue unos 5V de lo contrario podríamos dañar toda la electrónica.

Bluetooth HC-05

Se usará para cambiar la hora y algunas funciones desde el móvil. Lo conectaremos directamente al Serial de Arduino D0 y D1

Se puede usar también SoftwareSerial para emplear otros pines, pero he decidido usar los directos. Esto hará que para enviar el código de programación del Arduino tenga que hacerse sin que el módulo esté conectado pues de lo contrario no conseguiremos programarlo. Una vez enviado el código debemos volver a conectarlo físicamente.

Los datos que recibirá el BT serán lo siguientes:

Si se recibe un «9» por el Serial el reloj interpretará que debe cambiar su función a expresiones aritméticas.

Si recibe un «8» entenderá que debe mostrar la hora de forma tradicional.

Cuando reciba un «6» encabezando una cadena, buscará el siguiente entero de la cadena que estará comprendido entre 0 y 15 para cambiar el brillo. de la forma «6,15».

Y para el cambio de hora se realizará cuando reciba una cadena de caracteres que empiece por «7» de la forma «7, x, y«. Donde x será el entero de la hora e y será el entero de los minutos.

Modulo re reloj D3231

Alimenta su memoria interna con una pila de 3V así en cualquier momento está en hora. Se comunica por el bus I2C por lo que resulta sencilla su implantación. Usaremos los pines A4 y A5 para SDA y SCL respectivamente. lo alimentaremos a 5 voltios. Los demás pines quedarán al aire.

Este módulo cuenta con un medidor de temperatura pero de baja precisión ±3ºC, y el tiempo de adquisición puede durar hasta 1 segundo. En la versión inicial se implementó su uso en el reloj, pero en la versión actual se desecha por motivos de fiabilidad y consumo. (Nótese que en el apartado del código de programación se menciona).

Pulsador

En un lateral encontramos un pulsador de 16mm de diámetro conectado a tierra y D2 en Pull-up (sin resistencias, directamente a los pines). Servirá para cambiar del modo de mostrar la hora.

En el modo aritmético se muestra una operación aleatoria cada minuto. Puede ser una suma o una resta y la elección de los operadores que intervienen también es aleatoria. Esto hace que las operaciones raramente se repitan.

Se muestran el modo aritmético y el modo normal de funcionamiento para las 7 y 55 minutos.

Conector CC para trasformador

Diámetro de 8mm está ubicado en la parte derecha con la etiqueta 35-5V.

Lo soldaremos a la entrada del LM2596 respetando la polaridad.

Esquema eléctrico y conexiones

La imagen real de las conexiones en la carcasa frontal.

Imagen real del proyecto acabado

Piezas de la caja

Constará de 2 tapas externas y 4 sujeciones internas en forma ce C para las pantallas leds.

Las pequeñas piezas en forma de «C» deben ir atornilladas a las pantallas led con tornillos 3M. Luego estas 4 piezas se anclarán sobre la carcasa frontal. 

Consejo: una vez atornillada toda la electrónica y antes de cerrar la caja, te recomiendo que la equilibres con algún contrapeso pues el centro de masas puede hacer que al colocarlo en la pared tenga tendencia hacia algún lado.

Medidas en mm

Librerías

Las librerías empleadas en el proyecto son:

La mayoría de las librerías empleadas se pueden descargar desde el IDE de Arduino, pero en el repositorio faltan algunas. Aquí puedes descargar las más específicas.

Código de programación

El código de programación fue realizado para un modelo anterior que contenía un módulo de matrices leds adicional que mostraba los grados centígrados del ambiente facilitados por el reloj DS3231 que aporta esa posibilidad. Se realizó un reloj con los 3 módulos operacionales con los inconvenientes del gran consumo de de energía para alimentar los paneles leds adicionales y de la poca precisión del sensor de temperatura del reloj que al estar demasiado cerca de los leds absorbía calor de los mismos dando lecturas con variaciones desviadas de la realidad dependiendo del brillo de los leds.

Por ello se decidió prescindir del dato de la temperatura y de uno de los módulos matriciales. En el código se ha mantenido la programación original pues no afecta al modelo actual aunque si se le añadiera este módulo opcional funcionaría como el original.

Modelo anterior desarrollado y modificado por el nuevo. Las anotaciones no aportan información necesaria.

Android

Para controlar el reloj desde un dispositivo Android con bluetooth hemos creado este pequeña aplicación que es bastante básica. En la que podemos controlar el comportamiento del reloj como cuando se pulsa el pulsador del mismo, ajustar la hora y alterar la intensidad del brillo de los leds de la pantalla.

Está realizada con MIT App Inventor 2 que es una aplicación online para desarrollar aplicaciones APK que se pueden instalar en móviles y tabletas Android.

Captura de la aplicación Android

La forma de programación es por bloques y gráfica. Aquí tienes una parte del código que puedes descargar más abajo.

Aquí puedes descargar la aplicación.