Tabla de contenido:
- Paso 1: el diagrama del circuito
- Paso 2: Tablero de pruebas de su circuito
- Paso 3: Construcción del circuito en Protoboard
- Paso 4: crear un conector para la pantalla y darle patas
- Paso 5: Verificación del cableado de la placa de circuito y preparación para la calibración
- Paso 6: Calibración del circuito
- Paso 7: el programa Arduino
- Paso 8: Lista de piezas
Video: Reloj digital Arduino sincronizado por la línea de alimentación de 60 Hz: 8 pasos (con imágenes)
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: el diagrama del circuito
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: Tablero de pruebas de su circuito
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: Construcción del circuito en Protoboard
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: 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: 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: 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: 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: Lista de piezas
1 - Transformador de 120 VCA a 12 VCA aproximadamente 100 mA o más 1 - Placa prototipo de aproximadamente 3,5 "x 3,5" 1 - Pantalla de 4 dígitos de 7 segmentos YSD-439K2B-35 o equivalente (Sparkfun) 2 - Botones pulsadores pequeños para montaje en PCB NO (cualquiera) 4 - 2N3904 Transistores NPN8 - Resistencias de 330 ohmios2 - 74LS04 Inversores hexagonales1 - 74HC595 Registro de desplazamiento de 8 bits de serie a paralelo 1 - LM358 OP-AMP (Comparador) 1 - Microcontrolador ATMEGA328P (Creatron) 4 - Resistencias de 4.7K7 - Resistencias de 10K1 - 1N4007 o 1N4001 diodo2 - 1N414 diodos1 - 120 ohmios, 1/2 W o 1 W resistor1 - Potenciómetro de 10K montado en PCB1 - Condensador de 470uF 25V1 - Regulador de voltaje del paquete 7805 TO2201 - Condensador de 10uF 10V2 - Condensadores de 0.1 uF 10V1 - Cristal de 16MHz (Sparkfun) 2 - Condensadores de 22pF1 - Toma de corriente hembra (Opcional para colocar un enchufe macho, si lo hay, en su transformador de pared) 2 tomas de circuito integrado de 16 pines 2- tomas de circuito integrado de 14 pines 1- conector de circuito integrado de 8 pines 1- conector de circuito integrado de 28 pines 2- 1 "de largo aprox. Pernos # 4-40 de 4 "de largo y tuercas a juego1 - pieza de tira de aluminio plana de 1/2" de ancho cortado a medida y perforado a medida
Alambre de envoltura de alambre n. ° 30 AWG alambre n. ° 22 AWG Soldadora
Recomendado:
Una fuente de alimentación de banco de Sleak desde la fuente de alimentación de la PC: 8 pasos (con imágenes)
Una fuente de alimentación de banco de Sleak desde la fuente de alimentación de la PC: Actualización: la razón por la que no he tenido que usar una resistencia para detener el apagado automático de la fuente de alimentación es que (creo que …) el led en el interruptor que usé consume suficiente corriente para evitar el PSU apagándose, así que necesitaba una fuente de alimentación de sobremesa y decidí hacer una
Reloj de palabra sincronizado con NTP: 6 pasos (con imágenes)
Reloj de palabra sincronizado con NTP: sincronice su reloj con un servidor de hora NTP para que puedan comprobar la hora correcta si ha habido un apagón si no está en casa :-)
Reloj de animación LED SMART conectado a la web con panel de control basado en la web, servidor de tiempo sincronizado: 11 pasos (con imágenes)
Reloj de animación LED SMART conectado a la web con panel de control basado en la web, servidor de tiempo sincronizado: la historia de este reloj se remonta a hace mucho tiempo: más de 30 años. Mi padre fue pionero en esta idea cuando yo tenía solo 10 años, mucho antes de la revolución del LED, cuando los LED eran 1/1000 del brillo de su brillo cegador actual. Una verdad
Fuente de alimentación Bluetooth digital con alimentación USB C: 8 pasos (con imágenes)
Fuente de alimentación digital USB C alimentada por Bluetooth: ¿Alguna vez ha querido una fuente de alimentación que pueda usar mientras viaja, incluso sin una toma de corriente cerca? ¿Y no sería genial si también fuera muy preciso, digital y controlable a través de tu PC y tu teléfono? En este instructivo, te mostraré cómo construir exactamente
Cómo hacer una fuente de alimentación de banco ajustable con una fuente de alimentación de PC antigua: 6 pasos (con imágenes)
Cómo hacer una fuente de alimentación de banco ajustable con una fuente de alimentación de PC vieja: Tengo una fuente de alimentación de PC vieja por ahí, así que he decidido hacer una fuente de alimentación de banco ajustable con ella. Necesitamos un rango diferente de voltajes para alimentar o Verifique diferentes circuitos eléctricos o proyectos. Por lo tanto, siempre es bueno tener un