En esta entrada os enseñaremos cómo podéis hacer un reloj digital con Arduino, de una manera muy sencilla, barata y rápida.
Para hacer un reloj digital como este necesitaremos los siguientes componentes:
- Arduino UNO. Podéis usar cualquier Arduino que tenga al menos 13 entradas digitales.
- Un display de 7 segmentos y 4 dígitos.
- Una placa de pruebas (o protoboard) para montar el circuito.
- 6 resistencias de 220 ohmios o similar valor.
- Una pila para alimentar el Arduino. Para este ejemplo nosotros hemos usado una pila de 9V.
- Un par de pulsadores. Los cuales usaremos para poner el reloj en hora.
- Cables.
El display que hemos elegido es un display de 7 segmentos con 4 dígitos. La ventaja de este tipo de display es que con 12 pines, podemos representar 4 dígitos, mientras que con un display de 7 segmentos de 1 dígito, necesitaríamos 10 pines por cada dígito, lo cual requeriría de 40 pines en Arduino, además de hacer el circuito mucho más tedioso.
El significado de cada pin de este display, se puede ver en la siguiente ilustración:
Los pines 12 (D1), 9 (D2), 8 (D3) y 6 (D4), sirven para indicar qué dígito queremos que se ilumine en cada momento, mientras que los demás pines, representan cada uno de los 7 segmentos de los que se compone cada dígito (ver figura 2).
Por ejemplo, si queremos pintar un 1 en el dígito que está más a la derecha, deberíamos «activar» el pin 6 (D4) para indicar que queremos iluminar el dígito 4 (el de más a la derecha) y los segmentos B y C, es decir, los pines 7 y 4. Por contra, si queremos mostrar un 7 en el dígito de más a la izquierda, los pines a activar serían 12 (D1), 11 (A), 7 (B) y 4 (C).
Quizá esto os pueda resultar algo confuso. No os preocupéis. No necesitáis entenderlo para montar el reloj digital, ya que al final de esta entrada podéis encontrar el código para descargarlo y cargarlo en vuestro Arduino.
El circuito final sería el siguiente:
A pesar de parecer bastante tedioso, es fácil de montar, solo tenéis que tener un poco de paciencia y seguir cada cable uno a uno.
Como podéis observar, al circuito le hemos añadido un par de botones o pulsadores. Estos se usarán para poner el reloj en hora cuando iniciamos el programa en nuestro Arduino.
El botón de la izquierda, sirve para cambiar la hora, mientras que el de la derecha para cambiar los minutos.
Resumiendo, los pasos a seguir para montar nuestro reloj son:
- Montar el circuito de la figura 3.
- Descargar el código de https://github.com/KBugeados/reloj-digital-arduino/blob/master/reloj.cpp
- Cargar el programa en nuestro Arduino. NOTA IMPORTANTE: A la hora de cargar el programa en nuestro Arduino, necesitaremos tener desconectado el pin 1 (ya que este pin se utiliza normalmente para mandar información por el puerto Serial). Si no, la carga del programa dará error.
- Una vez cargado, volver a conectar el pin 1. Y pulsar el botón de reset del Arduino, para comenzar el programa.
- Poner la hora usando los botones que montamos en nuestro circuito.
- Opcional: Añadir una pila de 9V para alimentar el circuito.
Esperemos que os haya resultado útil.
En caso de que tengáis alguna duda a la hora de montar el circuito o sugerencia, podéis dejarnos un comentario y os responderemos lo antes posible.
Hola muy buen tuto amigo, pero tengo una consulta, en mi caso solo dispongo de un display de 7 segmentos de 4 digitos pero con 14 pines, nose que tanto afectaria las conexiones, o nose si me puedes dar una solucion con displays de 1 digito.
Hola Sergio,
En primer lugar nos alegra que te haya gustado el tutorial.
Respecto a tu duda. No hay problema por tener un display de 7 segmentos y 14 pines, funciona exactamente igual. La única diferencia, es que tu display tiene 2 pines extra, que se usan para iluminar los dos puntos (:) que se usan para separar las horas de los minutos. Esos dos pines extra son el pin que está más a la derecha arriba (lo llamaremos pin COM), y el pin que está más a la derecha abajo (lo llamaremos pin DD).
El pin COM, lo tendrás que conectar a tierra (GND), y el pin DD a la alimentación, mientras que el resto de pines, los podrás conectar igual que en el diagrama que mostramos en nuestro tutorial.
Échale un ojo a esta imagen, donde te indico cuáles son los pines COM y DD que tiene tu display y no tiene el nuestro.
https://ibb.co/f2pcGrN
Esperemos esto resuelva tus dudas.
¡Muchas gracias por leernos!
Hola Buen dia, muy bien elaborado el tuto, pero tengo un problema, yo utilice un display 3461BS-1 de 4 digitos, y representa ningun numero, como si se hubiesen confundido las conexiones de cada Pin, pero revise y pues todo esta en orden, me podria ayudar porfavor.
Hola Luis Alberto,
Nos alegra que le haya gustado el tutorial.
Para poder ayudarle mejor, ¿nos podrías enviar una fotografía de su circuito montado? Nos la puede enviar a la dirección de correo hola@bugeados.com
Posiblemente se trate de alguna conexión incorrecta, y con una foto podremos revisarlo.
Agradecerle su visita.
Un saludo.
como poner un dysplay de 7 segmentos y 4 digitos en tinkercad
Hola Antonio,
Desafortunadamente a día de hoy Tinkercad no tiene el display de 7 segmentos entre sus componentes a usar. Esperemos que en un futuro lo añadan.
Un saludo.
Men gracias, me ayudo mucho pues nesecito hacer este proyecto para graduarme, pero no se como descargar la programacion del arduino, me ayuda plis..
Hola Pablo,
Nos alegra que te haya resultado útil nuestro tutorial.
Para descargar el código de Arduino, puedes copiarlo de este link: https://raw.githubusercontent.com/Keroelv/reloj-digital-arduino/master/reloj.cpp
Espero eso resuelva tu duda.
Un saludo.
Amigo, depronto tienes la programacion pero en archivo?
Puede ser en word plis
Ok muchas gracias
Hola, queria preguntarte si funcionaría un display de 24 pines que ya lo tengo y me gustaría reutilizarlo. De ser así como quedaría el código. Usaría un arduino nano. Son mis primeros pasos con arduino y te agradezco toda tu ayuda. Gracias, un saludo.
Hola Pedro,
Yo te recomiendo que por el bajo precio que tienen los display de 7 segmentos, compres uno de 12 pines como el que usamos nosotros, ya que si no, tendrás el doble de cables en tu circuito, lo cual te resultará muy tedioso de montar sin cometer errores y el código cambiaría por completo.
Además, el Arduino Nano que mencionas, no tiene las suficientes entradas digitales para trabajar con 24 pines, por lo que necesitarías usar un Arduino Mega, el cual es bastante más caro.
¡Gracias por comentar!
hola,buenas noches, tengo un error al cargar el programa a mi placa, ya e desconectado el pin uno y me marca un error al subirlo a mi placa
Cordial saludo.
Muchas gracias por compartir sus conocimientos una consulta por favor tengo problema con la libreria no acepta la que indica el programa como la busco .Gracias.
hola, me gusto el tuto, pero tengo un pequeño problema, el display que yo compre es un 5461BBW y no muestra los números, me podrían ayudar
somos dos, con este display no funcionara.
HOLA, me sube el programa pero no responde los botones de queda contando del 1 al 9
Una pregunta para hacer ese proyecto de cuánto me saldría el presupuesto de todo eso
Buenos días amigo!
Si tuviera hecho el display con leds
12 leds por segmento
Y quisiera saber seg,min, horas
Me serviría el mismo código?
Hola buenas
Arme el proyecto y funciona de 10 pero por algunos minutos porque se resetea solo y vuelve a 0000. Revise todos los cables y los contactos y esta todo bien, tenes idea que puede llegar a ser?
Gracias, saludos.
buenas tardes,
al pasar al la placa la informacion me da error en »minutes_R»