Índice:
- Etapa 1: o esquema
- Etapa 2: Layout
- Etapa 3: "Lógica" do "Wort-Uhr"
- Etapa 4: trechos de código
- Etapa 5: a habitação
Vídeo: Wort-Uhr: 5 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Olá juntos!
Este será o meu primeiro instrutível e se você tiver alguma idéia de como melhorá-lo ou torná-lo mais fácil de entender, não hesite em me contatar!
Bem, a princípio, esse tipo de "relógio" não é ideia minha! Eu tenho visto muitos por toda a internet e eles podem ser encomendados por apenas alguns dólares em diferentes webstores. Mas eu não queria comprar, queria fazer um só meu para aprender e entender como funciona.
Uma palavra para os membros "não alemães"… Desculpe pelo fato de que este é apenas um "Wort Uhr alemão". Pode ser facilmente convertido para inglês ou qualquer outro idioma, mas como sou alemão fiz no meu idioma. Se precisar de suporte para o seu idioma, entre em contato comigo e tentarei ajudá-lo.
Então vamos começar…
Etapa 1: o esquema
O esquema é simples e se a imagem for muito ruim para ler, há também um arquivo PDF.
Vamos começar no canto esquerdo inferior. Existe uma fonte de alimentação simples usando um LM7805 para gerar uma saída estável de 5 V para o PIC, registradores de deslocamento (74HC164) e chip de tempo real DS3231. Todos os LEDs também são fornecidos por esta parte. D22 na extremidade direita é apenas para indicar a fonte de alimentação e pode ser facilmente deixado de lado se não for desejado.
Você pode usar qualquer fonte de alimentação DC para o clock com menos de 40 V, mas você deve escolher o valor apropriado para C7. Ele deve ter uma classificação de voltagem de pelo menos o dobro da voltagem de entrada e lembre-se de que você está criando calor no LM7805, então você deve tentar manter a voltagem de entrada o mais baixa possível, porque todo o resto é apenas desperdício de energia. O melhor ajuste é algo entre 9 V e 12 V DC.
Não se preocupe com a polaridade de sua fonte de alimentação … O MOSFET de canal p (Q1) atua como uma proteção de polaridade falsa e o relógio simplesmente não funcionará e não sofrerá nenhum dano. Você pode verificar isso no LED "power" D22, se montado.
No lado direito do esquema estão os registradores de deslocamento serial em paralelo. Decidi usá-los porque não queria usar um PIC enorme com muitas portas I / O. Eu queria usar um menor e ainda tinha uns 16F1829 em casa, então a escolha já estava clara. Os dados (IN_1, IN_2 e IN_3) são fornecidos pelo PIC (ver seção de código abaixo) e também pelo REGISTER_CLK. Para simplificar meu código e layout de PCB, usei dois dos 74HC164 para as horas e o último para a "lógica".
No canto superior esquerdo está o PIC e todas as peças necessárias. Usei o relógio interno, então nenhum oscilador é necessário. Apenas três resistores para SCL, SDA e MCLR. Pelo fato de eu ter usado 32kHz como uma indicação de "segundos exatos", não há necessidade de uma frequência bastante estável e precisa para o PIC.
No meio está o DS3231 com um mínimo de partes externas. Na verdade, usei apenas as entradas SDA e SCL para comunicação em I²C e a saída de 32kHZ como referência de relógio externo para o Timer1 do PIC16F1829. Para esta saída, o datasheet diz que é necessário um resistor pull-up externo. As outras saídas não usei neste projeto e as deixei desconectadas.
Também no meio, os LEDs … Como você pode ler no esquema, usei LEDs azuis (aqueles com caixa transparente) e um valor de resistor de 1k Ohms. Se você pretende fazer este projeto sozinho deve escolher os valores destes resistores de acordo com a cor e tipo de LEDs que você escolher. Lembre-se também de onde deseja que o relógio seja configurado. Meu único está de pé no meu quarto, portanto, não queria que os LEDs ficassem muito brilhantes e optei por um valor maior para os resistores. Faça algumas tentativas em uma placa de ensaio com LEDs e valores de resistor antes de montá-los na placa de circuito impresso.
Etapa 2: Layout
Depois de terminar o esquema, é hora de rotear o PCB. Para isso usei KiCAD (para esquemático também). Não há muito a dizer, apenas encaminhe as linhas.
Pelo fato de eu mesmo ter imprimido a caixa do relógio, foi muito importante onde estão localizados os LEDs da camada superior. Só coloquei os LEDs e resistores na camada superior, porque encomendei minha placa de circuito impresso parcialmente montada (todas as peças SMD) e porque a empresa que escolhi para isso só coloca as peças em um lado e não nos dois lados.
Você pode ver a localização nas duas fotos tridimensionais que fiz do KiCAD.
Se você estiver interessado… É possível exportar o PCB KiCAD para o Eagle e então é bastante fácil construir a caixa, porque você tem uma referência do PCB.
Etapa 3: "Lógica" do "Wort-Uhr"
A maior parte deste projeto foi o código do PIC …
A princípio encontrando a "lógica" do tempo falado em alemão e traduzindo para o código.
Infelizmente, não foi possível fazer o upload do arquivo Excel diretamente, mas espero que a exportação do PDF esteja legível o suficiente para você. Caso contrário, entre em contato comigo e lhe enviarei o arquivo original do Excel. No PDF você pode ver como configurei a lógica do meu relógio. Você pode ver como eu passei pelas diferentes etapas de tempo e como está a ortografia. O cálculo dentro do código (principalmente instruções if-else) pode ser derivado das informações no lado direito da tabela. Uma parte é para minutos e outra parte para horas.
Como você pode ver, isso não é mágica e pode ser facilmente codificado em C. O ponto "mais complicado" dentro da lógica é como lidar com a hora, como você pode ver no arquivo que apenas no início de uma hora a hora real é mostrada. Em alemão (talvez isso possa ser apenas uma coisa específica da Baviera), a "próxima hora" é usada bem cedo.
Para codificação, usei o MPLABX como minha IDE de escolha.
Etapa 4: trechos de código
Não postarei meu código aqui, mas se você pretende escrever seu próprio código, darei algumas dicas sobre o que "tropecei" durante o desenvolvimento …
Primeiro, o "registro" -filling:
Se você transferir novos dados para os registradores com muita frequência e em ciclos muito curtos, experimentei que os LEDs começaram a piscar. Então fiz alguns "flags de bloqueio", que a cada minuto um novo "cálculo" do tempo falado é feito e a atualização do registro é feita.
O código para preenchimento dos cadastros está na foto acima. Como você pode ver, preencho todos os 3 registros em paralelo, então preciso de 3 pinos do PIC para dados e 1 pino para CLK. O 74HC164 assume novos dados em uma transição na linha CLK de 0 para 1.
O resto do código depende principalmente do PIC, a lógica do "tempo falado" e a comunicação de manuseio e botões. A comunicação é fornecida principalmente pela Microchip MPLABX porque usei o módulo MSSP.
Uma boa idéia é ler o datasheet do DS3231 porque os dados são armazenados dentro como BCD, então você pode ter que "transformar" isso em seu código. Bem, no que me diz respeito, sou um cara que aprende fazendo e, CLARO, não li a ficha técnica… Custou-me muitos nervos e horas.
Como você deve ter notado, há duas maneiras de "manter o tempo sob controle" com essa implementação.
- Você pode ler o tempo real fora do DS3231
- Você pode "contar segundos" no próprio PIC e apenas sincronizar o tempo com o DS3231 de vez em quando
Depende de você e as duas formas são práticas e diretas. Usei a primeira opção e sincronizei apenas o tempo ao ajustar o tempo através dos botões (tempo de escrita no DS3231) ou a cada 24 horas (tempo de leitura no DS3231), pois queria implementar mais lógica por mim mesmo. Eu também giro meu relógio durante a noite (23:00 até 05:00) então isso foi um pouco mais fácil na minha opinião.
Etapa 5: a habitação
Por último, mas não menos importante, é hora de dar uma olhada rápida na caixa.
Como mencionei acima, eu mesmo fiz o invólucro (usando o Eagle) e imprimi-o com minha impressora 3D, então tive de olhar para as posições dos diferentes LEDs.
Em anexo, você pode encontrar os arquivos STL se quiser usá-los.
Espero que este instrutivo ajude você a construir seu próprio "Wort-Uhr". Se ainda houver "questões em aberto", não hesite em contactar-me. A melhor maneira de comentar abaixo, porque você pode não ser o único com uma pergunta específica.
Recomendado:
Como fazer uma antena dupla BiQuade 4G LTE Etapas fáceis: 3 etapas
Como Fazer Antena Dupla BiQuade 4G LTE Etapas fáceis: Na maioria das vezes que enfrentei, não tenho uma boa intensidade de sinal para meus trabalhos do dia-a-dia. Então. Procuro e tento diferentes tipos de antena, mas não funciona. Depois de perder tempo, encontrei uma antena que espero fazer e testar, porque não é um princípio de construção
Design de jogo no Flick em 5 etapas: 5 etapas
Design de jogos no Flick em 5 etapas: o Flick é uma maneira realmente simples de fazer um jogo, especialmente algo como um quebra-cabeça, romance visual ou jogo de aventura
Detecção de rosto no Raspberry Pi 4B em 3 etapas: 3 etapas
Detecção de rosto no Raspberry Pi 4B em 3 etapas: Neste Instructable, vamos realizar a detecção de rosto no Raspberry Pi 4 com Shunya O / S usando a Biblioteca Shunyaface. Shunyaface é uma biblioteca de reconhecimento / detecção de rosto. O projeto visa alcançar a detecção mais rápida e velocidade de reconhecimento com
Espelho de cortesia DIY em etapas fáceis (usando luzes de tira LED): 4 etapas
Espelho de toucador DIY em etapas fáceis (usando tiras de LED): Neste post, fiz um espelho de toucador DIY com a ajuda de tiras de LED. É muito legal e você deve experimentá-los também
Arduino Halloween Edition - Tela pop-out de zumbis (etapas com imagens): 6 etapas
Arduino Halloween Edition - Tela pop-out de zumbis (etapas com imagens): Quer assustar seus amigos e fazer barulho no Halloween? Ou apenas quer fazer uma boa pegadinha? Esta tela pop-out de zumbis pode fazer isso! Neste Instructable, vou ensiná-lo a criar facilmente zumbis usando o Arduino. O HC-SR0