» Eletrônicos » Arduino »Relógio binário com alarme e timer no Arduino Uno

Relógio binário com alarme e timer no Arduino Uno


Tendo recebido algumas placas Arduinoe vários componentes de rádio para se familiarizar com os microcontroladores, o autor decidiu fazer algo interessante e ao mesmo tempo útil. Tendo em estoque um grande número de LEDs, surgiu a idéia de criar um relógio binário.

No lado da eletrônica, um relógio binário não é particularmente complicado, mas o autor complicou a tarefa e decidiu não salvar botões e LEDs. Inicialmente, o projeto era usar 22 LEDs, 6 botões e um tweeter. Também foi uma idéia montar um relógio no Arduino Mega devido a um número maior de pinos, mas os registros de mudança 74HC595 acabaram sendo uma salvação.

Materiais:
- Arduino Uno
- 2 tábuas de pão de tamanho normal
- LEDs vermelhos 7 peças
- LEDs verdes 7 peças
- LEDs azuis 6 peças
- 2 LEDs amarelos e brancos
- Resistores 220 ohms 25 pcs
- Campainha piezo 1 pc
- 6 botões botões tácteis
- A saída de mudança registra 74HC595 no pacote DIP-16, 3 unidades
- Fios de conexão 90 pcs
- Módulo de relógio em tempo real baseado no chip DS1307 RTC

Como tudo vai funcionar.
Existem cerca de 10 tipos de relógios binários. Alguns mostram a hora no formato decimal binário (BCD), outros como números binários. Como o autor não gosta particularmente do relógio BCD, ele decidiu tornar seu binário puro. Algumas pessoas acham mais difícil ler, mas a diferença não é grande, pois é fácil traduzir números de binário para decimal. Também um pré-requisito para o criador do relógio era uma indicação dos segundos no relógio.

Além disso, o relógio possui 6 botões:
Set - é responsável pelo modo de configuração do relógio / alarme e salva o parâmetro no modo de configuração.
Modo - responsável por alternar entre os modos de relógio, alarme e timer.
Acima - na configuração do relógio / alarme / timer, aumenta o parâmetro em um. No despertador e no temporizador, é responsável por ativar e desativar o modo selecionado. Quando um sinal é acionado, ele desliga o sinal do alarme / timer.
Down - na configuração do relógio / alarme / timer, o parâmetro será reduzido em um. O temporizador fará uma pausa sem redefinir a contagem regressiva. Quando o alarme dispara, ele transfere o sinal por 5 minutos.
24/12 - altera o formato da hora.
Dim - responsável por ligar e desligar os LEDs (quando os LEDs estão apagados, os botões restantes param de funcionar).
Diagrama de posicionamento do LED:
Relógio binário com alarme e timer no Arduino Uno


Conexão de componentes
O autor conectará todos os LEDs em série e com um resistor. O resistor é soldado a um dos terminais dos LEDs, não importa qual deles. Os LEDs serão conectados através de registros de turno, este chip possui 16 contatos.Esse número de pinos permite que você use um grande número de pinos, utilizando apenas 3 pinos no Arduino.

Pinagem do Registro de Deslocamento 74HC595:
Q0-Q7 são as conclusões do registro ao qual os LEDs serão conectados.
Vcc - um pino de fonte de alimentação de 5V será aplicado a ele.
GND - terra conectado ao GND no Arduino.
OE - o pino é responsável pela ativação invertida dos pinos, mas não será utilizado, é simplesmente curto-circuito.
O MR é uma limpeza de registro invertido, não precisa ser controlado e, portanto, será conectado a uma fonte de alimentação de 5V.
ST_CP - pin é responsável por atualizar o status do registro. Ao gravar o estado, é necessário aplicar LOW, após gravar - HIGH, para atualizar o status das saídas. Ele precisa estar conectado a um pino no Arduino. Você pode conectar este pino em três registros em paralelo.
SH_CP - pin, responsável pelo deslocamento em 1 bit do registrador. Ele precisa estar conectado a um pino no Arduino. Eles estão conectados em microcircuitos também em paralelo.
DS - os dados estão sendo enviados para este pino, eles estão conectados ao pino no Arduino.
Q7 '- este pino é usado para conexão em cascata com outros registros 74HC595.

Diagrama de fiação:


A campainha piezo será conectada ao terceiro pino do Arduino em série com o resistor. Antes de incluir o tweeter no circuito, a autora examinou quais pinos suportam PWM, pois isso é obrigatório para ela. No Arduino Uno, o PWM suporta 3, 5, 6, 9, 10 e 11 pinos.


Os botões são conectados usando resistores embutidos no Arduino, com um lado dos botões conectado ao terra e o outro nos pinos do Arduino.


Portanto, o design final parece:


Construir sobre Breadboard
Após adquirir detalhes adicionais, o autor começou a montar o projeto em uma placa de ensaio de acordo com os esquemas. A aparência estava prestes a ser esperada, porque a Breadboard restringe a liberdade na colocação dos componentes, e os fios presos não criaram prazer estético. Afinal, a tábua de pão é destinada a modelos de tábua de pão, mas não a dispositivos acabados.


Código do programa.
Tendo conhecimento de programação, o autor decidiu escrever código sozinho, sem usar o desenvolvimento de outras pessoas. O primeiro passo foi escrever uma sub-rotina, que é responsável por piscar todos os diodos e emitir o sinal piezo quando ligado. Essa função ajuda a verificar a integridade do circuito, semelhante à implementada em muitos dispositivos.

O esboço saiu bastante grande, então você pode considerar suas principais características.

Trabalho de LED.
Como os LEDs são acessados ​​por meio do registro de turnos, foi necessário implementar mais rotinas para os LEDs. Para uma operação mais fácil com diodos, várias funções adicionais foram implementadas. Vários efeitos de animação de diodos são implementados. Quando o relógio não está definido, os diodos responsáveis ​​pelas horas e minutos começarão a piscar (como um relógio normal pisca quando não estiver definido). Os LEDs responsáveis ​​por segundos também têm sua própria animação, o diodo pode rodar para a esquerda e para a direita no modo de alarme ou no modo de ajuste do relógio.

Laço principal.
O programa está configurado para funcionar da seguinte maneira: o relógio exibe informações dependendo do estado atual e altera seu estado dependendo do uso de botões e eventos. Tudo parece uma quantidade considerável de condições aninhadas. O estado dos diodos é atualizado todas as vezes após a verificação do status dos cronômetros e botões com uma chamada para o manipulador.

Além disso, o autor fez um ótimo trabalho para a operação correta dos botões e timers de entrada. O código-fonte do esboço pode ser baixado no artigo.


Layout de lançamento
Depois de ativar o projeto, à primeira vista, o dispositivo funcionou corretamente e de forma estável. Mas o autor encontrou uma falha, o relógio estava atrasado um segundo por hora, por muito tempo seria um grande erro.


Tendo estudado esse problema, verificou-se que o Arduino Uno original usa um ressonador de cerâmica e falta precisão para medir o tempo em longos períodos. A solução mais racional foi comprar um relógio em tempo real, além disso, devido a este módulo, o tempo no relógio não se perderá quando desligado. O autor comprou o módulo Grove RTC do Seeed Studio. É uma placa acabada com um chip de relógio. O autor conectou os pinos do módulo SDA e SCL ao Arduino nos pinos A4 e A5, GND ao terra. Como a potência de 5V é ocupada pela placa do relógio, não havia lugar para conectar o módulo. O autor decidiu alimentar o módulo com um dos pinos digitais, que serão constantemente energizados.Além disso, o autor precisava modificar o código fonte e adicionar uma biblioteca de relógios em tempo real.


Assista montagem
Depois de concluir um longo trabalho no código, é hora de dar uma olhada completa no dispositivo e transferi-lo da placa de ensaio para a placa de circuito impresso. Antes de tudo, era necessário fazer a fiação da placa. Fritzing foi usado para isso, uma vez que o autor já tinha uma idéia da aparência do relógio e construiu um diagrama de dispositivo. O autor também rastreou manualmente o quadro, demorou muito tempo.
Projeto para produção de placas de circuito impresso:


A fabricação de PCB foi encomendada na China. O Seeed Studio possui um serviço de placa Fusion PCB. Com o Fritzing, o arquivo foi exportado para o formato Extended Gerber, muitos fabricantes de placas trabalham com ele. Duas semanas depois, o autor recebeu a tão esperada taxa pelo correio.


Só restava soldar algumas peças empoeiradas na placa. O resultado final após a soldagem parecia muito melhor do que o layout na placa de ensaio.


O autor do projeto trabalhou duro por um longo tempo e conseguiu o que queria - um relógio binário exclusivo com um temporizador e um despertador. Usando o compartimento da bateria, o relógio pode ser colocado em qualquer lugar. O Arduino atendeu às expectativas e lidou completamente com a tarefa.

binclock-master.zip [23.53 Kb] (downloads: 175)
10
10
10

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar

Aconselhamos que você leia:

Entregue-o para o smartphone ...