Tabla de contenido:

Reloj mecánico con pantalla de siete segmentos: 7 pasos (con imágenes)
Reloj mecánico con pantalla de siete segmentos: 7 pasos (con imágenes)

Video: Reloj mecánico con pantalla de siete segmentos: 7 pasos (con imágenes)

Video: Reloj mecánico con pantalla de siete segmentos: 7 pasos (con imágenes)
Video: Arduino max7219 display 7 segmentos 2024, Noviembre
Anonim
Reloj mecánico con pantalla de siete segmentos
Reloj mecánico con pantalla de siete segmentos
Reloj mecánico con pantalla de siete segmentos
Reloj mecánico con pantalla de siete segmentos

Hace un par de meses construí una pantalla mecánica de 7 segmentos de dos dígitos que convertí en un temporizador de cuenta regresiva. Salió bastante bien y varias personas sugirieron duplicar la pantalla para hacer un reloj. El problema era que ya me estaba quedando sin PWM IO en mi Arduino Mega y no tenía suficiente disponible para el segundo o tercer dígito. Luego me señalaron en la dirección de estos controladores PWM de 16 canales PCA9685 que operan a través de una interfaz I2C. Estos hicieron posible conducir los 28 servos que necesitaba, todos usando los dos pines I2C en un Arduino. Así que me puse a trabajar en la construcción de un reloj que ahora usa un módulo de reloj en tiempo real DS1302 para mantener la hora y dos servocontroladores de 16 canales para controlar los 28 servos que se usan para componer la pantalla, todos impulsados por un Arduino Uno.

Si disfruta de este Instructable, considere votarlo en el Concurso de relojes.

Suministros:

Para construir su reloj, necesitará los siguientes suministros además de algunas herramientas básicas:

  • Arduino Uno - Compre aquí
  • Módulo de reloj DS1302 - Compre aquí
  • 2 x Servocontroladores PCA9685 16Ch - Compre aquí
  • 28 x Micro Servos - Compre aquí
  • Cable plano - Compre aquí
  • Tiras de encabezado de clavija macho - Compre aquí
  • Tiras de encabezado de clavija hembra - Compre aquí
  • MDF de 3 mm - Compre aquí
  • Pintura en aerosol negra - Compre aquí
  • Circuito de eliminación de batería 5V 5A - Compre aquí
  • Fuente de alimentación de 12V - Compre aquí

Para este proyecto, también necesitará algunas piezas impresas en 3D. Si aún no tiene una impresora 3D y le gusta hacer cosas, definitivamente debería considerar comprar una. La Creality Ender 3 Pro utilizada aquí es asequible y produce impresiones de muy buena calidad por su precio.

  • Impresora 3D usada - Compre aquí
  • Filamento - Compre aquí

Paso 1: Imprima en 3D los componentes de plástico

Imprima en 3D los componentes de plástico
Imprima en 3D los componentes de plástico
Imprima en 3D los componentes de plástico
Imprima en 3D los componentes de plástico
Imprima en 3D los componentes de plástico
Imprima en 3D los componentes de plástico

Diseñé las pantallas de 7 segmentos para que fueran lo más simples posible. El servo también es el soporte de soporte para sostener el segmento por encima de él. Hay dos componentes impresos en 3D necesarios para cada segmento, un bloque espaciador para soportar la parte inferior del servo y el segmento de pantalla que se pega directamente al brazo del servo.

Descargue los archivos de impresión 3D - Archivos de impresión 3D del reloj mecánico con pantalla de 7 segmentos

Imprima los servo segmentos y puntos con un PLA de colores brillantes. Usé verde translúcido, pero el rojo, el naranja o el amarillo también deberían funcionar bien. Usé PLA negro para los bloques espaciadores y los soportes de puntos para que no sean visibles cuando los segmentos se colocan en la posición de apagado.

Si no tiene acceso a una impresora 3D, pruebe uno de los servicios de impresión en línea. Hay una serie de servicios asequibles disponibles que imprimirán los componentes y se los entregarán a su puerta en unos pocos días.

Paso 2: Prepare sus tableros de control y cableado

Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado
Prepare sus tableros de control y cableado

Deberá utilizar dos controladores PWM de 16 canales PCA9685 para controlar sus 28 servos de reloj. Separé los servos en dígitos de hora y minuto, con cada par de dígitos impulsado por una placa. Así que tengo una placa que controla los servos para los dígitos de dos horas y la segunda controla los servos para los dígitos de dos minutos.

Para encadenar los dos juntos, necesitará hacer un conector de cable plano de 6 hilos y soldar una segunda tira de encabezado en el otro extremo de la primera placa de control de servo. También deberá cambiar la dirección I2C en la segunda placa para que sea diferente a la primera e identificable de forma única.

También necesitará hacer el arnés de cableado para conectar las tres placas (dos placas de servo y el módulo de reloj) a su Arduino. Necesitará 5V y GND para cada placa, así como las conexiones I2C a sus pines Arduino A4 y A5 (I2C en Arduino Uno), y los pines del módulo de reloj CLK, DAT y RST a los pines 6, 7 y 8 en su Arduino respectivamente.

La energía se suministra al Arduino directamente desde la fuente de alimentación de 12V y a los servos usando el BEC de 5V 5A que luego se conecta a los dos terminales en la parte superior del controlador PWM. Solo necesita conectar un servocontrolador a la alimentación y alimentará la segunda a través de la conexión del cable plano de 6 hilos.

Paso 3: Ensamble los Servos

Ensamblar los servos
Ensamblar los servos
Ensamblar los servos
Ensamblar los servos
Ensamblar los servos
Ensamblar los servos

Una vez que haya impreso sus segmentos, deberá rociar la parte posterior y los lados de negro para que sean menos visibles cuando se giran 90 grados a la posición de apagado.

Luego, debe pegar los segmentos en sus brazos servo con pegamento termofusible. Es útil pegarlos en el servo con el brazo ya en el servo, de esta manera puede verificar que los está pegando en forma recta y nivelada.

También deberá pegar un bloque espaciador en la parte inferior de cada servo.

Ensamble los puntos pegando una pequeña clavija o palito de kebab en la parte posterior de los puntos y luego en los bloques de base. También rocié estos palos de color negro para que sean menos visibles si se ven desde un ángulo.

Paso 4: configuración y prueba

Configuración y prueba
Configuración y prueba
Configuración y prueba
Configuración y prueba

Numeré todos los servos y escribí el número en cada cable para que fuera más fácil seguirlos. Comencé con el segmento superior en el dígito de las unidades y trabajé hasta el segmento medio en el dígito de las decenas. Este es también el orden en el que los conecté a los tableros de servocontrol, recordando que los identificadores en los tableros cuentan de 0 a 13 y no de 1 a 14.

Luego coloqué los segmentos en una mesa con suficiente espacio entre ellos para probarlos, de modo que no se movieran entre uno y otro mientras configuraba los límites de viaje y las direcciones. Si intenta colocarlos muy juntos, es probable que uno o dos intenten moverse en la dirección incorrecta o sobrepasar en algún momento y golpear a otro, lo que puede dañar el segmento, el brazo del servo o dañar los engranajes del servo.

Paso 5: carga del código

Subiendo el código
Subiendo el código
Subiendo el código
Subiendo el código
Subiendo el código
Subiendo el código

El código parece complicado a primera vista, pero en realidad es relativamente simple gracias a las dos bibliotecas utilizadas. También hay mucha repetición porque hay cuatro pantallas diferentes de 7 segmentos que necesitan actualizarse.

Aquí hay una descripción resumida del código, eche un vistazo a la guía completa para obtener una explicación más detallada y un enlace para descargar el código - Reloj mecánico con pantalla de 7 segmentos

Comenzamos importando dos bibliotecas, virtuabotixRTC.h para el módulo de reloj y Adafruit_PWMServoDriver.h para los servocontroladores. La biblioteca Adafruit se puede descargar e instalar directamente a través del administrador de la biblioteca en el IDE.

Luego creamos un objeto para cada tablero de control con la dirección relevante, uno para los dígitos de la hora y otro para los dígitos de los minutos.

Luego tenemos cuatro matrices para almacenar las posiciones de encendido y apagado de cada servo. Deberá realizar ajustes en estos números en los próximos pasos para asegurarse de que sus servos estén en posición vertical cuando estén encendidos, girados 90 grados cuando estén apagados y no se sobrecarguen.

Una matriz de dígitos almacena las posiciones de cada segmento para cada dígito que se mostrará.

Luego configuramos el módulo de reloj y creamos variables para almacenar los dígitos individuales actuales y pasados.

En la función de configuración, iniciamos y configuramos las tarjetas de control PWM, así como también actualizamos la hora del reloj si es necesario. Luego ejecutamos un ciclo para configurar la pantalla en 8 8: 8 8 para que sepamos la posición inicial de todos los servos. Esto también se usa para configurar los servos de modo que todos estén orientados hacia arriba correctamente.

En el bucle principal obtenemos la hora actualizada del módulo de reloj, la dividimos en los cuatro dígitos y luego verificamos si la hora ha cambiado desde la última verificación. Si la hora ha cambiado, actualizamos la pantalla y luego actualizamos los dígitos anteriores.

En la función de visualización de actualización, primero movemos los segmentos intermedios. Esto se hace primero porque se requiere cierta lógica para mover los dos segmentos superiores adyacentes al segmento medio fuera del camino un poco antes de mover el segmento medio, de lo contrario chocará con ellos. Una vez que se mueven los segmentos intermedios, los segmentos restantes se mueven a las posiciones correctas.

Paso 6: Montaje del reloj en la placa trasera

Montaje del reloj en el tablero trasero
Montaje del reloj en el tablero trasero
Montaje del reloj en el tablero trasero
Montaje del reloj en el tablero trasero
Montaje del reloj en el tablero trasero
Montaje del reloj en el tablero trasero

Una vez que terminé con la prueba, ensamblé los servos en la placa posterior usando el diseño anterior como guía.

El área blanca es el tamaño total de la placa, el gris más claro es el área que rodea cada dígito donde se mueven los segmentos de servo y el contorno en el área gris oscuro es la línea central de los 6 segmentos externos de cada dígito.

Corté el tablero, marqué el diseño y luego pegué los dígitos en su lugar para formar la esfera del reloj.

Luego perforé agujeros cerca de cada servo y pasé los cables a la parte posterior de la placa para que fueran menos visibles.

Monté la electrónica en la parte posterior del reloj con cinta adhesiva de doble cara.

Paso 7: Configuración y operación final

Configuración y operación final
Configuración y operación final
Configuración y operación final
Configuración y operación final
Configuración y operación final
Configuración y operación final
Configuración y operación final
Configuración y operación final

Una vez que los servos estuvieron listos, quité todos los brazos del servo para los ajustes finales en las posiciones de los segmentos. Debe encender el Arduino en este estado para que se muestre 8 8: 8 8 y luego desconecte la alimentación, esto vuelve a centrar todos sus servos para que pueda volver a colocar los brazos del servo con los segmentos orientados lo más cerca posible de la vertical. como sea posible.

Luego, deberá encender secuencialmente su Arduino y hacer ajustes en las posiciones de encendido y apagado de su segmento en sus cuatro matrices para que los servos estén perfectamente verticales cuando estén encendidos y giren 90 grados cuando estén apagados sin viajar demasiado. Este paso lleva bastante tiempo y requiere un poco de paciencia, ¡pero el resultado final bien vale la pena!

El reloj se puede dejar encendido utilizando la fuente de alimentación de 12 V y 5 V BEC conectado a él. Si se corta la energía, la batería del módulo RTC mantendrá la hora de modo que cuando se restablezca la energía, el reloj se restablezca automáticamente a la hora correcta.

Si disfrutó de este Instructable, vote por él en el concurso Clock y hágame saber cualquier mejora o sugerencia que pueda tener en la sección de comentarios a continuación.

Concurso de relojes
Concurso de relojes
Concurso de relojes
Concurso de relojes

Segundo premio en el concurso de relojes

Recomendado: