Índice:
- Etapa 1: O Diagrama de Circuito
- Etapa 2: controle o seu circuito
- Etapa 3: construção do circuito no protoboard
- Etapa 4: criando um soquete para o monitor e dando-lhe pernas
- Etapa 5: Verificar a fiação da placa de circuito e preparar para calibrar
- Etapa 6: Calibração do circuito
- Etapa 7: o programa Arduino
- Etapa 8: Lista de peças
Vídeo: Relógio digital Arduino sincronizado pela linha de energia de 60 Hz: 8 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este relógio digital baseado em Arduino é sincronizado pela linha de energia de 60Hz. Ele tem um display de ânodo comum de 4 dígitos e 7 segmentos simples e barato que mostra horas e minutos. Ele usa um detector cruzado para detectar quando a onda senoidal de 60 Hz que chega cruza o ponto de tensão zero e deriva uma onda quadrada de 60 Hz.
Em curtos períodos de tempo, a frequência da onda senoidal de entrada da linha de alimentação pode variar muito ligeiramente devido à carga, mas em longos períodos de tempo ela atinge a média de 60 Hz com muita precisão. Podemos aproveitar isso para derivar uma fonte de tempo para sincronizar nosso relógio.
Etapa 1: O Diagrama de Circuito
Existem duas versões do circuito, dependendo se você deseja usar um transformador com uma derivação central ou um sem; em ambos os casos, a operação do circuito é quase idêntica. Para esta construção, usei um adaptador de parede (sem torneira central) que produz 12 V CA. Vou usar este projeto (Digital Clock1 Circuit Diagram) para a descrição do circuito. Observe que é importante usar um adaptador de parede que produza 12 V CA, não 12 V CC, para que possamos acessar a onda senoidal CA para cronometrar. Você provavelmente também poderia usar um transformador que produza 9 V CA, remova o R19 e faça com que ele funcione também, mas 12 V está muito comumente disponível. É assim que o circuito funciona:
120 Vca a 60 Hz é convertido em 12 Vca pelo transformador TR1. Isso é alimentado ao diodo D4 e retificado de forma que apenas + ve tensão seja alimentada e suavizada para aproximadamente CC com ondulação, pelo capacitor C3. A tensão em C3 é fornecida ao regulador de tensão 7805 (U6) por meio do resistor R19. R19 é usado para reduzir a tensão em C3, que no meu caso foi medida em aproximadamente 15 VCC. Isso pode ser regulado pelo 7805, mas com esse nível de entrada, o 7805 deve cair aproximadamente 10 VCC e, como resultado, fica bastante quente. Ao usar o R19 para diminuir a tensão para cerca de 10 VCC, evitamos que o U6 aqueça muito. Portanto, esta não é uma técnica de conversão de energia eficiente, mas funciona para nossos propósitos. NOTA: use pelo menos um resistor de 1 / 2W ou mais aqui. O circuito consome cerca de 55 ma, então a dissipação de energia em R19 é de cerca de 1 / 3W com base em P = I ** 2 * R ou P = 55ma x 55ma x 120 ohms = 0,363 W. O Next U6 produz 5V DC puro com C4 e C5 na saída para filtrar qualquer ruído na linha de alimentação de 5V. Este 5V DC alimenta todos os ICs da placa.
Do TR1, também pegamos uma amostra do sinal AC não filtrado e o alimentamos no potenciômetro RV1, que é usado para ajustar o nível alimentado ao detector de cross over. R18 e R17 formam um divisor de voltagem para reduzir ainda mais o nível de voltagem CA que entra. Lembre-se de que isso está chegando a 12 V CA e precisamos reduzi-lo para menos de 5 V para que funcione com nosso detector cruzado, que é apenas alimentado por 5VDC. R15 e R16 fornecem limitação de corrente, enquanto D1 e D2 têm como objetivo evitar overdriving do op-amp U5. Na configuração mostrada, a saída do U5 no pino 1 alternará entre + 5 V e 0 V cada vez que a onda senoidal de entrada muda de positiva para negativa. Isso gera uma onda quadrada de 60 Hz que é alimentada ao microcontrolador U4. O programa carregado no U4 usa essa onda quadrada de 60 Hz para incrementar o relógio a cada minuto e hora. Como isso é feito, será discutido na seção sobre o programa de software e nos comentários do software.
U7, o registrador de deslocamento 74HC595 é usado porque temos um número limitado de pinos digitais no microprocessador, então ele é usado para expandir o número de saídas. Usamos 4 pinos digitais no microprocessador, mas podemos controlar 7 segmentos no display através do 74HC595. Isso é realizado deslocando padrões predeterminados de bits, armazenados no microcontrolador, e que representam cada dígito a ser exibido, para o registrador de deslocamento.
O display usado aqui é um ânodo comum, então precisamos inverter os níveis de sinal que saem do 74HC595 para ligar um segmento. Quando um segmento deve ser ligado, o sinal que sai do pino de saída do 74HC595 estará em + 5V, mas precisamos que o pino que está alimentando no display esteja em 0V para ligar aquele segmento de display. Então, para fazer isso, precisamos dos inversores hexadecimais U2 e U3. Infelizmente, um IC inversor só pode lidar com 6 inversões, então precisamos de duas delas, embora no segundo usemos apenas uma das 6 portas. Desperdício, infelizmente. Você pode perguntar por que não usar um visor de tipo cátodo comum aqui e eliminar U2 e U3? Bem, a resposta é: você pode. Acontece que tenho um tipo de ânodo comum em meu suprimento de peças. Se você tem ou deseja usar um display do tipo cátodo comum apenas elimine U2 e U3 e religue Q1 - Q4 para que os coletores do transistor sejam conectados aos pinos do display e os emissores do transistor sejam conectados ao aterramento. Q1 - Q4 controla qual dos quatro visores de 7 segmentos está ativo. Isso é controlado pelo microcontrolador, através dos pinos conectados à base dos transistores Q1 - Q4.
Os botões de incremento e definição serão usados para definir manualmente a hora correta do relógio quando se trata de realmente usar o relógio. Quando o botão Set é pressionado uma vez, o botão Increment pode ser usado para percorrer as horas mostradas no visor. Quando o botão Set é pressionado novamente, o botão de incremento pode ser usado para percorrer os minutos mostrados no visor. Quando o botão Set é pressionado pela terceira vez, a hora é acertada. R13 e R14 puxam os pinos do microcontrolador associados a esses botões quando não estão em uso.
Observe que aqui retiramos o U4 (Atmega328p) da típica placa de protótipo do Arduino UNO e o colocamos na placa de protótipo com o resto do nosso circuito. Para fazer isso, devemos fornecer no mínimo o cristal X1 e os capacitores C1 e C2 para fornecer uma fonte de clock para o microcontrolador, ligar o pino 1, o pino de reinicialização, alto e fornecer energia de 5 VCC.
Etapa 2: controle o seu circuito
Independentemente de você estar construindo o circuito exatamente como mostrado no diagrama do circuito ou talvez usando um transformador, tipo de tela ou outros componentes ligeiramente diferentes, você deve fazer a breadboard do circuito primeiro para garantir que ele funcione e que você entenda como funciona.
Nas fotos você pode ver que o breadboard para a coisa toda exigiu algumas placas, bem como uma placa Arduino Uno. Portanto, para programar o microcontrolador ou experimentar ou fazer alterações no software, você precisará inicialmente do IC do microcontrolador em uma placa UNO para que possa conectar um cabo USB a ele e ao seu computador para carregar o programa ou fazer alterações no software.
Depois de fazer o relógio funcionar na placa de ensaio e ter seu microcontrolador programado, você pode desconectá-lo e conectá-lo ao soquete em seu relógio permanente de construção final na placa de protótipo. Certifique-se de seguir as precauções antiestáticas ao fazer isso. Use uma pulseira antiestática ao manusear o microprocessador.
Etapa 3: construção do circuito no protoboard
O circuito é construído em um pedaço de placa protótipo e conectado ponto a ponto usando fio wire wrap # 30 AWG. Ele fornece um resultado resistente e confiável. Como o transformador que tenho tem um plugue macho de 5 mm na extremidade do cabo, montei o receptáculo fêmea correspondente na parte de trás da placa cortando, dobrando e perfurando um pedaço de tira plana de alumínio de 1/2 de largura para fazer um suporte e aparafusá-lo à placa com pequenas porcas e parafusos 4-40. Você poderia simplesmente cortar o conector e soldar os fios de alimentação restantes à placa e economizar cerca de 20 minutos de trabalho, mas eu não queria o transformador permanentemente conectado para a placa.
Etapa 4: criando um soquete para o monitor e dando-lhe pernas
Como a tela tem 16 pinos, 8 de cada lado, com espaçamento entre os pinos mais largo do que um soquete IC padrão de 16 pinos, precisamos ajustar o tamanho do soquete para caber na tela. Você pode fazer isso simplesmente usando um alicate para cortar o plástico conectando os dois lados do soquete, separe-os e solde-os separadamente na placa com um espaçamento que corresponda ao espaçamento dos pinos na tela. É vantajoso fazer isso para que você não precise soldar diretamente nos pinos da tela e expor a tela ao calor excessivo. Você pode ver o soquete no qual fiz isso na parte superior da placa na imagem acima.
Para que a tela ficasse em pé, aparafusei dois parafusos de 1 nos dois orifícios dos cantos inferiores da placa do protótipo, conforme mostrado nas fotos, para fazer uma base simples. Isso foi muito ruim, então se você fizer isso, você pode deseja colocar algo pesado na parte de trás dos parafusos para estabilizá-lo.
Etapa 5: Verificar a fiação da placa de circuito e preparar para calibrar
Uma vez que a placa de circuito esteja conectada, mas antes de conectar os ICs ou display ou ligá-lo, é uma boa idéia verificar as conexões da placa com um DVM. Você pode definir a maioria dos DVMs para que emitam um bipe quando houver continuidade. Defina seu DVM neste modo e, em seguida, seguindo seu diagrama de circuito, verifique o máximo possível de conexões de circuito. Verifique se há um circuito aberto, ou próximo a ele, entre os pontos + 5V e terra. Verifique visualmente se todos os componentes estão conectados aos pinos corretos.
Em seguida, conecte seu transformador ao circuito e ligue-o. Verifique se você tem exatamente 5 Vcc no barramento de alimentação de 5 V com um osciloscópio ou DVM antes de conectar qualquer IC ou monitor.
Em seguida, conecte SOMENTE o IC Op-Amp U5 em preparação para a próxima etapa. Aqui, verificaremos se nosso circuito cruzado está gerando uma onda quadrada e ajustaremos o potenciômetro RV1 para um sinal limpo de 60 Hz.
Etapa 6: Calibração do circuito
A única calibração a ser feita é ajustar o potenciômetro RV1 para o nível correto de sinal que alimenta o detector de cross over. Existem duas maneiras de fazer isso:
1. Coloque uma ponta de prova do osciloscópio no pino 1 do U5 e certifique-se de conectar o fio terra da ponta de prova do osciloscópio ao terra do circuito. Em seguida, ajuste o RV1 até que você tenha uma onda quadrada limpa, conforme mostrado na imagem acima. Se você ajustar o RV1 muito longe de uma forma ou de outra, não terá onda quadrada ou terá uma onda quadrada distorcida. Certifique-se de que a frequência da onda quadrada seja 60 Hz. Se você tiver um osciloscópio moderno, ele provavelmente indicará a frequência. Se você tiver um osciloscópio antigo como o meu, certifique-se de que o período de onda quadrada seja de aproximadamente 16,66 ms ou 1/60 segundos.
2. Usando um contador de frequência ou DVM no modo Frequência, meça a frequência no Pino 1 do U5 e ajuste RV1 para exatamente 60 Hz.
Uma vez que a calibração for feita, desligue o circuito e conecte todos os ICs e o display para completar a construção do circuito.
Etapa 7: o programa Arduino
O programa é totalmente comentado para que você descubra os detalhes de cada etapa. Devido à complexidade do programa, é difícil descrever todas as etapas, mas em um nível muito alto é assim que funciona:
O microprocessador recebe a onda quadrada de 60 Hz que chega e conta 60 ciclos e incrementa a contagem de segundos a cada 60 ciclos. Quando a contagem de segundos atinge 60 segundos, ou 3600 ciclos, a contagem de minutos é incrementada e a contagem de segundos é zerada. Quando a contagem de minutos atinge 60 minutos, a contagem de horas é incrementada e a contagem de minutos é zerada. a contagem de horas é redefinida para 1 após 13 horas, portanto, este é um relógio de 12 horas. Se você quiser um relógio de 24 horas, basta alterar o programa para zerar as horas após 24 horas.
Este é um projeto experimental, então tentei usar um loop Do-While para suprimir o salto do switch nos botões Set e Increment. Funciona razoavelmente bem. Quando o botão Set é pressionado uma vez, o botão Increment pode ser usado para percorrer as horas mostradas no visor. Quando o botão Set é pressionado novamente, o botão de incremento pode ser usado para percorrer os minutos mostrados no visor. Quando o botão Set é pressionado pela terceira vez, a hora é acertada e o relógio começa a funcionar.
Os padrões de 0 e 1 que são usados para exibir todos os números nos visores de 7 segmentos são armazenados na matriz chamada Seven_Seg. Dependendo da hora do relógio atual, esses padrões são alimentados para o 74HC595 IC e enviados para o display. Qual dos 4 dígitos do display é ligado a qualquer momento para receber esses dados é controlado pelo microprocessador através do display Dig 1, 2, 3, 4 pinos. Quando o circuito é ligado, o programa primeiro executa uma rotina de teste chamada Test_Clock que envia os dígitos corretos para iluminar cada display com uma contagem de 0 a 9. Portanto, se você ver isso quando ligar você saberá que construiu tudo corretamente.
Etapa 8: Lista de peças
1 - Transformador 120VAC a 12VAC aproximadamente 100ma ou mais1 - Placa protótipo de aproximadamente 3,5 "x 3,5" 1 - Display de 7 segmentos de 4 dígitos YSD-439K2B-35 ou equivalente (Sparkfun) 2 - Botões de montagem em PCB pequeno NÃO (qualquer) 4 - 2N3904 Transistores NPN8 - resistores de 330 ohm2 - 74LS04 Inversores hexadecimais1 - 74HC595 serial para paralelo registrador de deslocamento de 8 bits 1 - LM358 OP-AMP (comparador) 1 - Microcontrolador ATMEGA328P (Creatron) 4 - resistores 4,7K7 - resistores de 10K1 - 1N4007 ou diodo 1N4001148148 diodos1 - 120 ohm, resistor de 1 / 2W ou 1W1 - Potenciômetro de 10K de montagem de PCB1 - capacitor 470uF 25V1 - regulador de tensão do pacote 7805 TO2201 - capacitor 10uF 10V2 - capacitores 0,1 uF 10V1 - cristal 16MHz (Sparkfun) 2 - capacitores 22pF1 - Conector de alimentação fêmea (Opcional para encaixar o plugue macho, se houver, no transformador de parede) 2 - soquetes de IC de 16 pinos2 - soquetes de IC de 14 pinos1 - Soquete de IC de 8 pinos1 - Soquete de IC de 28 pinos2 - parafusos de 1 "de comprimento aproximadamente # 4 ou # 6 e porcas correspondentes 2-1 / 4 "parafusos longos # 4-40 e porcas correspondentes 1 - peça de corte personalizado de tira de alumínio plana de 1/2" de largura e perfurado para o tamanho
# 30 AWG wire wrap wire # 22 AWG wireSolder
Recomendado:
Como fazer relógio analógico e relógio digital com faixa LED usando o Arduino: 3 etapas
Como fazer relógio analógico e relógio digital com faixa de LED usando o Arduino: Hoje faremos um relógio analógico e relógio digital com faixa de LED. Relógio digital com Led Strip e módulo MAX7219 Dot com Arduino. Corrigirá a hora com o fuso horário local. O relógio analógico pode usar uma faixa de LED mais longa, então pode ser pendurado na parede para se tornar uma arte
Wordclock sincronizado por NTP: 6 etapas (com imagens)
NTP Synchronized Wordclock: sincronize seu relógio com um servidor de horário NTP para que eles possam verificar a hora certa se houve um apagão se você não estiver em casa :-)
Relógio de aposentadoria / Contagem Crescente / Relógio Dn: 4 etapas (com imagens)
Relógio de aposentadoria / Contagem crescente / Dn Clock: Eu tinha alguns desses visores matriciais de LED 8x8 na gaveta e estava pensando no que fazer com eles. Inspirado por outros instructables, tive a ideia de construir um display de contagem regressiva / crescente para fazer a contagem regressiva para uma data / hora futura e se o tempo alvo p
Linha Linha: 5 Etapas
Row Row: Tudo que você precisa é o seu Makey Makey, uma caixa de sapatos e algumas decorações de sua escolha
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de hora sincronizado: 11 etapas (com imagens)
Relógio de animação SMART LED conectado à web com painel de controle baseado na web, servidor de tempo sincronizado: a história desse relógio remonta há muito tempo - mais de 30 anos. Meu pai foi o pioneiro dessa ideia quando eu tinha apenas 10 anos de idade, muito antes da revolução do LED - na época em que os LEDs tinham 1/1000 do brilho de seu atual brilho ofuscante. Um verdadeiro