Tabla de contenido:
- Paso 1: Paso 1: Esquemas
- Paso 2: Paso 2: Prototipo de placa de pruebas
- Paso 3: Paso 3: Construcción final
- Paso 4: Paso 4: Crear un conector para la pantalla y darle patas
- Paso 5: Paso 5: Verificación del cableado de la placa de circuito y preparación para la calibración
- Paso 6: Paso 6: Calibración del circuito
- Paso 7: Paso 7: el programa Arduino
- Paso 8: Paso 8: Oferta de PCBWay
Video: Reloj Arduino de 60 Hz: 8 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Este reloj digital basado en Arduino está sincronizado por la línea de alimentación de 60Hz. Tiene una pantalla de ánodo común de 4 dígitos y 7 segmentos simple y económica que muestra horas y minutos. Utiliza un detector cruzado para detectar cuando la onda sinusoidal entrante de 60 Hz cruza el punto de voltaje cero y deriva una onda cuadrada de 60 Hz.
En períodos cortos de tiempo, la frecuencia de la onda sinusoidal entrante de la línea eléctrica puede variar muy levemente debido a la carga, pero durante períodos prolongados tiene un promedio de 60 Hz con mucha precisión. Podemos aprovechar esto para derivar una fuente de tiempo para sincronizar nuestro reloj.
Paso 1: Paso 1: Esquemas
Hay dos versiones del circuito dependiendo de si desea utilizar un transformador con una toma central o uno sin ella, en ambos casos el funcionamiento del circuito es casi idéntico. Para esta construcción utilicé un adaptador de pared (sin grifo central) que emite 12 V CA. Usaré este diseño (Diagrama de circuito del reloj digital 1) para la descripción del circuito. Tenga en cuenta que es importante utilizar un adaptador de pared que tenga una salida de 12 V CA, no de 12 V CC para que podamos aprovechar la onda sinusoidal de CA para sincronizar. Probablemente también podría usar un transformador que dé salida a 9 V CA, elimine el R19 y haga que funcione también, pero es muy común que haya 12 V disponible. Así es como funciona el circuito:
120 V CA a 60 Hz se convierte en 12 V CA mediante el transformador TR1. Este se alimenta al diodo D4 y se rectifica de modo que solo el voltaje + ve sea alimentado y suavizado a aproximadamente CC con ondulación por el condensador C3. El voltaje en C3 se alimenta al regulador de voltaje 7805 (U6) a través de la resistencia R19. R19 se usa para reducir el voltaje en C3, que en mi caso se midió a aproximadamente 15 VCC. Esto puede ser regulado por el 7805 pero con este nivel de entrada el 7805 debe caer aproximadamente 10VDC y como resultado se calienta bastante. Al usar R19 para reducir el voltaje a aproximadamente 10 VCC, evitamos que U6 se caliente demasiado. Entonces, esta no es una técnica de conversión de energía eficiente, pero funciona para nuestros propósitos. NOTA: utilice al menos una resistencia de 1/2 W o más aquí. El circuito consume aproximadamente 55 ma, por lo que la disipación de potencia en R19 es de aproximadamente 1 / 3W según P = I ** 2 * R o P = 55ma x 55ma x 120 ohms = 0.363W. El siguiente U6 emite 5 V CC puros con C4 y C5 en la salida para filtrar cualquier ruido en la línea de alimentación de 5 V. Este 5V DC alimenta todos los circuitos integrados de la placa. De TR1 también tomamos una muestra de la señal de CA sin filtrar y la alimentamos al potenciómetro RV1 que se usa para ajustar el nivel alimentado al detector de cruce. R18 y R17 forman un divisor de voltaje para reducir aún más el nivel de voltaje de CA que ingresa. Recuerde que esto está entrando a 12V CA y debemos reducirlo a menos de 5 V para que funcione con nuestro detector cruzado que es solo alimentado por 5VDC. R15 y R16 proporcionan limitación de corriente, mientras que D1 y D2 están destinados a evitar la saturación del amplificador operacional U5. En la configuración que se muestra, la salida de U5 en el pin 1 alternará entre + 5V y 0V cada vez que la onda sinusoidal entrante cambie de positiva a negativa. Esto genera una onda cuadrada de 60 Hz que se alimenta al microcontrolador, U4. El programa cargado en U4 luego usa esta onda cuadrada de 60Hz para incrementar el reloj cada minuto y hora. Cómo se hace esto se discutirá en la sección sobre el programa de software y en los comentarios del software. U7, el registro de desplazamiento 74HC595 se usa porque tenemos un número limitado de pines digitales en el microprocesador, por lo que se usa para expandir el número de salidas. Usamos 4 pines digitales en el microprocesador, pero podemos controlar 7 segmentos en la pantalla a través del 74HC595. Esto se logra desplazando patrones predeterminados de bits, almacenados en el microcontrolador, y que representan cada dígito a visualizar, en el registro de desplazamiento. La pantalla que se usa aquí es un ánodo común, por lo que debemos invertir los niveles de señal que salen del 74HC595 para encender un segmento. Cuando un segmento debe encenderse, la señal que sale del pin de salida 74HC595 estará en + 5V, pero necesitamos que el pin que alimenta en la pantalla esté a 0V para encender ese segmento de pantalla. Entonces, para hacer esto, necesitamos inversores hexagonales U2 y U3. Desafortunadamente, un IC inversor solo puede manejar 6 inversiones, por lo que necesitamos dos de ellas, aunque en el segundo solo usamos una de las 6 puertas. Desperdicio por desgracia. Quizás se pregunte por qué no utilizar una pantalla de tipo cátodo común aquí y eliminar U2 y U3. Bueno, la respuesta es que puedes, resulta que tengo un tipo de ánodo común en mi suministro de piezas. Si tiene o desea usar una pantalla de tipo cátodo común, simplemente elimine U2 y U3 y vuelva a cablear Q1 - Q4 para que los colectores de transistores estén conectados a los pines de la pantalla y los emisores de transistores estén conectados a tierra. Q1 - Q4 controla cuál de las cuatro pantallas de 7 segmentos está activa. Esto es controlado por el microcontrolador, a través de los pines conectados a la base de los transistores Q1 - Q4. Los botones de incremento y ajuste se usarán para configurar manualmente la hora correcta del reloj cuando se trata de usar el reloj. Cuando se presiona el botón Set una vez, se puede usar el botón Increment para recorrer las horas que se muestran en la pantalla. Cuando se presiona el botón Set nuevamente, el botón de incremento se puede usar para recorrer los minutos que se muestran en la pantalla. Cuando se presiona el botón Set por tercera vez, se ajusta la hora. R13 y R14 tiran de los pines del microcontrolador asociados con estos botones cuando no están en uso. Tenga en cuenta que aquí hemos quitado U4 (Atmega328p) de la placa prototipo Arduino UNO típica y la hemos puesto en la placa prototipo con el resto de nuestro circuito. Para hacer esto, debemos, como mínimo, proporcionar el cristal X1 y los condensadores C1 y C2 para proporcionar una fuente de reloj para el microcontrolador, el pin de conexión 1, el pin de reinicio, alto y proporcionar una potencia de 5 VCC.
Paso 2: Paso 2: Prototipo de placa de pruebas
Independientemente de si está construyendo el circuito exactamente como se muestra en el diagrama del circuito o tal vez usando un transformador, tipo de pantalla u otros componentes ligeramente diferentes, primero debe colocar el circuito en una placa para asegurarse de que funciona y que comprende cómo funciona.
En las imágenes se puede ver que la placa de pruebas requirió un par de placas, así como una placa Arduino Uno. Entonces, para programar el microcontrolador o experimentar o realizar cambios en el software, inicialmente necesitará el microcontrolador IC en una placa UNO para que pueda conectar un cable USB y su computadora para cargar el programa o realizar cambios de software. Una vez que tenga el reloj funcionando en la placa y tenga programado su microcontrolador, puede desenchufarlo y enchufarlo en el enchufe de su reloj permanente de construcción final en la placa prototipo. Asegúrese de seguir las precauciones antiestáticas cuando haga esto. Utilice una muñequera antiestática mientras manipula el microprocesador.
Paso 3: Paso 3: Construcción final
El circuito está construido sobre una pieza de placa prototipo y cableado punto a punto usando alambre envolvente de alambre # 30 AWG. Proporciona un resultado resistente y fiable. Debido a que el transformador que tengo tiene un enchufe macho de 5 mm en el extremo del cable, monté el receptáculo hembra correspondiente en la parte posterior de la placa cortando, doblando y perforando un trozo de tira de aluminio plana de 1/2 de ancho para hacer un diseño personalizado. soporte y luego atornillarlo a la placa con pequeñas tuercas y tornillos 4-40. Podrías simplemente cortar el conector y soldar los cables de alimentación restantes a la placa y ahorrarte unos 20 minutos de trabajo, pero no quería que el transformador estuviera conectado permanentemente al tablero.
Paso 4: Paso 4: Crear un conector para la pantalla y darle patas
Debido a que la pantalla tiene 16 pines, 8 de cada lado, con un espaciado de pines que es más ancho que un conector IC estándar de 16 pines, necesitamos ajustar el tamaño del conector para que se ajuste a la pantalla. Puede hacer esto simplemente usando un par de alicates para cortar el plástico que conecta los dos lados del zócalo, separarlos y soldarlos por separado a la placa con un espaciado que coincida con el espaciado de los pines en la pantalla. Es ventajoso hacer esto para no tener que soldar directamente a los pines de la pantalla y exponer la pantalla a un calor excesivo. Puede ver el enchufe en el que hice esto en la parte superior de la placa en la imagen de arriba.
Para que la pantalla se coloque correctamente, atornillé dos pernos de 1 en los dos orificios de las esquinas inferiores de la placa prototipo, como se muestra en las fotos, para hacer un soporte simple. Esto fue bastante interesante, así que si haces esto, es posible que quiere poner algo pesado en la parte posterior de los pernos para estabilizarlo.
Paso 5: Paso 5: Verificación del cableado de la placa de circuito y preparación para la calibración
Una vez que la placa de circuito está conectada, pero antes de conectar los circuitos integrados o la pantalla o encenderla, es una buena idea verificar las conexiones de la placa con un DVM. Puede configurar la mayoría de los DVM para que suenen cuando haya continuidad. Configure su DVM en este modo y luego, siguiendo su diagrama de circuito, verifique tantas conexiones de circuito como sea posible. Compruebe si hay un circuito abierto, o cerca de él, entre los puntos de + 5V y tierra. Compruebe visualmente que todos los componentes estén conectados a los pines correctos.
A continuación, conecte su transformador al circuito y enciéndalo. Compruebe que tiene exactamente 5 V CC en el riel de alimentación de 5 V con un visor o DVM antes de conectar cualquier circuito integrado o la pantalla. A continuación, conecte SÓLO el Op-Amp U5 IC en preparación para el siguiente paso. Aquí verificaremos que nuestro circuito cruzado esté generando una onda cuadrada y ajustaremos el potenciómetro RV1 para una señal limpia de 60 Hz.
Paso 6: Paso 6: Calibración del circuito
La única calibración que se debe realizar es ajustar el potenciómetro RV1 al nivel correcto de señal que alimenta el detector de cruce. Hay dos maneras de hacer esto:
1. Coloque una sonda del osciloscopio en la patilla 1 de U5 y asegúrese de conectar el cable de tierra de la sonda del osciloscopio a la tierra del circuito. A continuación, ajuste RV1 hasta que tenga una onda cuadrada limpia como se muestra en la imagen de arriba. Si ajusta RV1 demasiado hacia un lado o hacia el otro, no tendrá onda cuadrada o tendrá una onda cuadrada distorsionada. Asegúrese de que la frecuencia de la onda cuadrada sea de 60 Hz. Si tiene un osciloscopio moderno, probablemente le dirá la frecuencia. Si tiene un telescopio antiguo como yo, asegúrese de que el período de onda cuadrada sea de aproximadamente 16.66 ms o 1/60 segundos. 2. Usando un contador de frecuencia o DVM en el modo de frecuencia, mida la frecuencia en el pin 1 de U5 y ajuste RV1 exactamente a 60 Hz. Una vez realizada esta calibración, apague el circuito y conecte todos los circuitos integrados y la pantalla para completar la construcción del circuito.
Paso 7: Paso 7: el programa Arduino
El programa está completamente comentado para que pueda descubrir los detalles de cada paso. Debido a la complejidad del programa, es difícil describir cada paso, pero a un nivel muy alto así es como funciona:
El microprocesador recibe la onda cuadrada entrante de 60 Hz y cuenta 60 ciclos e incrementa la cuenta de segundos después de cada 60 ciclos. Una vez que la cuenta de segundos llega a 60 segundos, o 3600 ciclos, la cuenta de minutos se incrementa y la cuenta de segundos se pone a cero. Una vez que el recuento de minutos llega a 60 minutos, el recuento de horas se incrementa y el recuento de minutos se restablece a cero. el recuento de horas se restablece a 1 después de 13 horas, por lo que este es un reloj de 12 horas. Si desea un reloj de 24 horas, simplemente cambie el programa para restablecer las horas a cero después de 24 horas. Este es un proyecto experimental, así que intenté usar un bucle Do-While para suprimir el rebote del interruptor en los botones Establecer e Incrementar. Funciona razonablemente bien. Cuando se presiona el botón Set una vez, el botón Increment se puede usar para recorrer las horas que se muestran en la pantalla. Cuando se presiona el botón Set nuevamente, el botón de incremento se puede usar para recorrer los minutos que se muestran en la pantalla. Cuando se presiona el botón Set por tercera vez, se ajusta la hora y el reloj comienza a funcionar. Los patrones de 0 y 1 que se utilizan para mostrar cada número en las pantallas de 7 segmentos se almacenan en la matriz denominada Seven_Seg. Dependiendo de la hora actual del reloj, estos patrones se envían al 74HC595 IC y se envían a la pantalla. Cuál de los 4 dígitos de la pantalla se enciende en cualquier momento para recibir estos datos es controlado por el microprocesador a través de la pantalla Dig 1, 2, 3, 4 pines. Cuando se enciende el circuito, el programa primero ejecuta una rutina de prueba llamada Test_Clock que envía los dígitos correctos para iluminar cada pantalla con un conteo de 0 a 9. Entonces, si ve esto cuando enciende, sabe que ha construido todo correctamente.
Paso 8: Paso 8: Oferta de PCBWay
Con esto concluye este post, pero el patrocinador de este proyecto es PCBWay quien, en ese momento, está celebrando su 5º aniversario. Compruébelo en https://www.pcbway.com/anniversary5sales.html y no olvide que su servicio de ensamblaje ahora es tan bajo como $ 30.
Recomendado:
Cómo hacer un reloj analógico y un reloj digital con una tira de LED usando Arduino: 3 pasos
Cómo hacer un reloj analógico y un reloj digital con una tira de LED usando Arduino: Hoy haremos un reloj analógico & Reloj digital con Led Strip y módulo MAX7219 Dot con Arduino, corregirá la hora con la zona horaria local. El reloj analógico puede usar una tira de LED más larga, por lo que se puede colgar en la pared para convertirse en una obra de arte
Reloj de jubilación / Cuenta ascendente / Reloj Dn: 4 pasos (con imágenes)
Reloj de jubilación / Count Up / Dn Clock: Tenía algunas de estas pantallas de matriz de puntos LED de 8x8 en el cajón y estaba pensando qué hacer con ellas. Inspirado por otros instructables, tuve la idea de construir una pantalla de cuenta regresiva / ascendente para contar regresivamente hasta una fecha / hora futura y si el tiempo objetivo p
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: 10 pasos (con imágenes)
Reloj despertador inteligente: un reloj despertador inteligente hecho con Raspberry Pi: ¿Alguna vez has querido un reloj inteligente? Si es así, ¡esta es la solución para usted! Hice Smart Alarm Clock, este es un reloj que puede cambiar la hora de la alarma de acuerdo con el sitio web. Cuando suene la alarma, habrá un sonido (zumbador) y 2 luces
Reloj de red ESP8266 sin ningún RTC - Reloj Nodemcu NTP Sin RTC - PROYECTO RELOJ DE INTERNET: 4 Pasos
Reloj de red ESP8266 sin ningún RTC | Reloj Nodemcu NTP Sin RTC | PROYECTO DE RELOJ DE INTERNET: En el proyecto se realizará un proyecto de reloj sin RTC, se tomará tiempo de Internet usando wifi y lo mostrará en la pantalla st7735
Hacer un reloj con M5stick C usando Arduino IDE - Reloj de tiempo real RTC con M5stack M5stick-C: 4 pasos
Hacer un reloj con M5stick C usando Arduino IDE | Reloj en tiempo real RTC con M5stack M5stick-C: Hola chicos, en este instructables aprenderemos cómo hacer un reloj con la placa de desarrollo m5stick-C de m5stack usando Arduino IDE. Entonces m5stick mostrará la fecha, hora y amp; semana del mes en la pantalla