Índice:
- Etapa 1: como ler?
- Etapa 2: O que você precisa
- Etapa 3: Componentes eletrônicos - Plano de fundo
- Etapa 4: Eletrônica - Fonte de alimentação
- Etapa 5: Eletrônica - Solda
- Etapa 6: Software - Histórico
- Etapa 7: Software - Código
- Etapa 8: faça o relógio
- Etapa 9: Desenhe na Madeira
- Etapa 10: Assamble
- Etapa 11: atualização - fotorresistor
- Etapa 12: Divirta-se
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Projetos Tinkercad »
Depois de muito tempo fazendo vários projetos, decidi fazer um instrutível eu mesmo. Para o primeiro, irei guiá-lo através do processo de fazer seu próprio relógio analógico feito com um incrível anel de LED endereçável. O anel interno mostra as horas, o anel externo mostra os minutos e segundos.
Além de mostrar a hora, o relógio também pode exibir a temperatura ambiente e pode ser uma decoração muito bonita no ambiente. A cada 15 minutos, o relógio também faz alguns efeitos especiais - o vídeo mostra todos eles, certifique-se de conferir. Com a ajuda de 2 botões e potenciômetro, o usuário pode escolher entre diferentes modos e modificar cores por sua própria vontade. Eu também o atualizei para escurecer automaticamente os LEDs se a sala ficar escura, para que o usuário não seja incomodado durante a noite.
O relógio pode ser colocado na escrivaninha, mesa de cabeceira ou pendurado na parede.
Nota: As imagens não são tão boas quanto a vista na realidade por causa do alto brilho.
Etapa 1: como ler?
O relógio tem 2 toques - o menor para exibir as horas e o maior para exibir os minutos e segundos. Alguns LEDs brilham o tempo todo - a chamada bússola que indica as principais posições do relógio. No toque das horas representa 3, 6, 9 e 12 horas, no toque dos minutos representa 15, 30, 45 e 0 minutos.
Etapa 2: O que você precisa
Materiais:
- 1x Arduino Nano (você também pode usar qualquer outro Arduino)
- 1 módulo DS3231 RealTimeClock
- 1x anel led endereçável - 60 LEDs
- 1x anel led endereçável - 24 LEDs
- 2x botões (NÃO - normalmente aberto)
- 1x potenciômetro 100kOhm
- Fonte de alimentação 1x 5V (capaz de fornecer 1 Amp)
- 1x conector de alimentação
- Alguns fios
- 1 resistor de 10kOhm
-
1x fotorresistor
- Prefboard (opcional)
- Conectores de fio do bloco de terminais (opcional)
- Madeira com 25 mm de espessura, tamanho mínimo de 22 cm x 22 cm
- Tapete de plástico PVC de 1mm de espessura tamanho 20cmx20xm
Ferramentas:
- Ferramentas básicas para a construção de eletrônicos (ferro de solda, alicate, chave de fenda, …)
- Furadeira
- Pistola de cola quente
- Lixa e algum verniz de madeira
- Máquina CNC (talvez algum amigo a tenha)
Etapa 3: Componentes eletrônicos - Plano de fundo
DS3231
Poderíamos determinar o tempo usando Arduinos embutido no oscilador e um temporizador, mas decidi usar um módulo dedicado Real Time Clock (RTC), que pode manter o controle do tempo mesmo se desconectarmos o relógio de sua fonte de alimentação. A placa DS3231 possui uma bateria, que fornece energia quando o módulo não está conectado à fonte de alimentação. Também é mais preciso em períodos de tempo mais longos do que a fonte de relógio Arduinos.
O DS3231 RTC usa a interface I2C para se comunicar com o microcontrolador - muito simples de usar e precisamos de apenas 2 fios para nos comunicarmos com ele. Módulo também fornece sensor de temperatura, que será utilizado neste projeto.
Importante: Se você planeja usar bateria não recarregável para o módulo RTC, você deve dessoldar o resistor de 200 ohms ou o diodo 1N4148. Caso contrário, sua bateria pode explodir. Mais informações podem ser encontradas neste link.
Anel LED WS2812
Decidi usar um anel de 60 LED para controlar os minutos e um anel de 24 LED para horas. Você pode encontrá-los no Adafruit (anel neoPixel) ou em algumas versões baratas no eBay, Aliexpress ou outras lojas na web. Há uma grande diversidade entre as faixas de led endereçáveis e se é a primeira vez que brinca com elas, recomendo que você leia algumas descrições de uso - aqui estão alguns links úteis:
https://www.tweaking4all.com/hardware/arduino/adr…
https://randomnerdtutorials.com/guide-for-ws2812b…
A faixa de LED endereçável tem 3 conectores: 5V, GND e DI / DO. Os dois primeiros são para alimentar os LEDs e o último é para os dados. Tenha cuidado ao conectar o anel ao Arduino - sua linha de dados deve ser conectada ao pino DI (entrada de dados).
Arduino
Estou usando o Arduino Nano porque é pequeno e suficiente para este projeto. Você pode usar quase qualquer outro Arduino, mas deve ter cuidado ao conectar tudo a ele. Os botões e anéis de LED podem estar nos mesmos pinos, mas os conectores I2C (para módulo RTC) podem diferir de plataforma para plataforma - verifique a ficha técnica.
Etapa 4: Eletrônica - Fonte de alimentação
O Arduino e a faixa de LED devem ser fornecidos com fonte de alimentação de 5 V para que saibamos qual tensão é necessária. Como o LED soa, ele consome muitos amperes, não podemos alimentá-lo diretamente com o Arduino, que pode suportar no máximo 20mA em sua saída digital. Pelas minhas medições, os anéis de LED podem, juntos, consumir até 500 mA. É por isso que comprei um adaptador capaz de fornecer até 1A.
Com a mesma fonte de alimentação, queremos alimentar o Arduino e os LEDs - aqui você deve ter cuidado.
Aviso! Tenha muito cuidado ao testar a faixa de LED - o adaptador de energia NÃO deve ser conectado ao Arduino, quando o Arduino também estiver conectado ao PC com um conector USB (você pode danificar a porta USB do seu computador).
Nota: Nos esquemas abaixo, usei a chave normal para selecionar se o Arduino é alimentado por fonte de alimentação ou por conector USB. Mas no perfboard você pode ver que adicionei um cabeçalho de pino para selecionar de qual fonte de alimentação o Arduino é alimentado.
Etapa 5: Eletrônica - Solda
Quando você reúne todas as peças, é hora de soldá-las juntas.
Porque eu queria fazer a fiação limpa, usei perfboard e alguns conectores de bloco de terminais para os fios, então posso desconectá-los em caso de modificações. Isso é opcional - você também pode soldar os fios diretamente no Arduino.
Uma dica: é mais fácil se você imprimir os esquemas para tê-los à sua frente durante a soldagem. E verifique tudo antes de conectar à fonte de alimentação.
Etapa 6: Software - Histórico
IDE Arduino
Vamos programar o Arduino com seu software dedicado: Arduino IDE. Se você está jogando com o Arduino pela primeira vez, recomendo que você verifique algumas instruções sobre como fazê-lo. Já existem muitos tutoriais na web, então não vou entrar em detalhes.
Biblioteca
Decidi usar a biblioteca FastLED em vez da popular Adafruit. Tem algumas funções matemáticas interessantes com as quais você pode fazer grandes efeitos (polegares para os desenvolvedores!). Você pode encontrar a biblioteca em seu repositório GitHub, mas adicionei o arquivo.zip da versão que estou usando em meu código.
Se você está se perguntando como adicionar biblioteca externa ao Arduino IDE, você pode verificar algumas instruções já feitas
Para o módulo de relógio, usei a biblioteca Arduino para o relógio em tempo real (RTC) DS3231 (link), que você pode instalar facilmente no Arduino IDE. Quando você estiver no IDE, clique em Esboço → Incluir biblioteca → Gerenciar bibliotecas… e, a seguir, filtre sua pesquisa com o nome acima.
Observação: por algum motivo, no momento, não consigo adicionar arquivos.zip. Você pode encontrar a biblioteca no meu repositório GitHub.
Etapa 7: Software - Código
Estrutura
O aplicativo é construído com 4 arquivos:
- LEDclokc.ino Este é o aplicativo principal do Arduino, onde você pode encontrar funções para controlar todo o relógio - elas começam com o prefixo CLOCK_.
- LEDclokc.h aqui estão as definições de conexão de pinos e algumas configurações de relógio.
- ring.cpp e ring.h aqui está meu código para controlar os anéis de LED.
LEDclock.h
Aqui você encontrará todas as definições de relógio. No início, existem definições para fiação. Certifique-se de que são iguais às suas conexões. Depois, há configurações de relógio - aqui você pode encontrar a macro para o número de modos que o relógio possui.
LEDclock.ino
No diagrama, o loop principal é representado. O código verifica primeiro se algum botão foi pressionado. Devido à natureza das opções, devemos usar o método debbouncing para ler seus valores (você pode ler mais sobre isso no link).
Quando o botão 1 é pressionado, o modo variável é aumentado em 1, se o botão 2 é pressionado, o tipo de variável é aumentado. Usamos essas variáveis para determinar qual modo de relógio queremos ver. Se os dois botões forem pressionados ao mesmo tempo, a função CLOCK_setTime () é chamada para que você possa alterar a hora do relógio.
Posteriormente, o código lê o valor do potenciômetro e o armazena em uma variável - com essa variável, o usuário pode alterar as cores do relógio, brilho, etc.
Depois, há uma instrução switch-case. Aqui determinamos em qual modo o relógio está atualmente e, por esse modo, a função correspondente é chamada, que configura as cores dos LEDs. Você pode adicionar seus próprios modos de relógio e reescrever ou modificar as funções.
Conforme descrito na biblioteca FastLED, você deve chamar a função FastLED.show () no final, que transforma os LEDs na cor que configuramos anteriormente.
Você pode encontrar descrições muito mais detalhadas entre as linhas de código
Todo o código está anexado abaixo nos arquivos abaixo.
DICA: você pode encontrar o projeto inteiro no meu repositório GitHub. Aqui, o código também será atualizado se eu adicionar alguma alteração a ele.
Etapa 8: faça o relógio
Moldura do relógio
Construí a moldura do relógio usando máquina CNC e madeira de 25mm de espessura. Você pode encontrar o esboço desenhado no ProgeCAD anexo abaixo. As ranhuras para anel de LED são um pouco maiores, porque os fabricantes fornecem apenas as medidas do diâmetro externo - interno pode variar bastante … No fundo do relógio, há muito espaço para eletrônicos e fios.
Anéis de PVC
Como os LEDs são bastante brilhantes, é bom difundi-los de alguma forma. Primeiro tentei com silicone transparente, que faz o trabalho de difusão, mas fica bem bagunçado e é difícil de alisar por cima. Por isso encomendei um pedaço de plástico PVC “leite” de 20x20 cm e cortei dois anéis com máquina CNC. Você pode usar uma lixa para suavizar as bordas para que os anéis deslizem nas ranhuras.
Orifícios laterais
Então é hora de fazer os furos para os botões, o potenciômetro e o conector da fonte de alimentação. Em primeiro lugar, desenhe todas as posições com um lápis e, em seguida, faça o furo. Aqui depende do tipo de botão que você tem - optei por botões com cabeça ligeiramente curvada. Eles têm 16mm de diâmetro, então usei uma broca para madeira desse tamanho. O mesmo vale para o potenciômetro e o conector de alimentação. Certifique-se de apagar todos os desenhos a lápis depois.
Etapa 9: Desenhe na Madeira
Decidi desenhar alguns indicadores de relógio na madeira - aqui você pode usar sua imaginação e desenhar o seu próprio. Queimei a madeira com ferro de solda, aquecido à temperatura máxima.
Para os círculos ficarem bem redondos, usei um pedaço de alumínio, fiz um furo nele e segui as bordas do furo com o ferro de solda (veja a foto). Certifique-se de segurar o alumínio com firmeza, para que ele não escorregue durante o desenho. E tenha cuidado ao fazer isso para evitar lesões.
Se você estiver fazendo desenhos e quiser que eles fiquem bem alinhados aos pixels do relógio, você pode usar o “Modo de manutenção”, que mostra onde os pixels serão localizados (vá para o capítulo Montar).
Proteja a madeira
Quando estiver satisfeito com o relógio, é hora de lixá-lo e protegê-lo com verniz de madeira. Usei lixa bem macia (valor 500) para suavizar as arestas. Eu recomendo que você use verniz de madeira transparente, para que a cor da madeira não mude. Passe um pouco de verniz no pincel e puxe na direção das anuais na madeira. Repita pelo menos 2 vezes.
Etapa 10: Assamble
Os primeiros colocam os botões e o potenciômetro em suas posições - se os buracos forem muito grandes, você pode usar um pouco de cola quente para fixá-los no lugar. Em seguida, coloque a tira de anel em seus slots e conecte seus fios ao Arduino. Antes de colar o anel de LED em seu lugar, é bom ter certeza de que os pixels do LED estão no lugar certo - centralizados e alinhados com o desenho. Para isso, adicionei o chamado modo de manutenção, que exibirá todos os pixels importantes (0, 5, 10, 15, … no anel dos minutos e 3, 6, 9 e 12 no anel das horas). Você pode entrar neste modo pressionando e segurando ambos os botões, antes de conectar a fonte de alimentação ao conector. Você pode sair deste modo pressionando qualquer botão.
Quando você tiver seus anéis de LED alinhados, aplique um pouco de cola quente e segure-os enquanto a cola fica firme. Em seguida, pegue seus anéis de PVC e novamente: aplique um pouco de cola quente nos LEDs, posicione-os rapidamente e segure-os por alguns segundos. No final, quando tiver certeza de que tudo funciona, você pode colar a quente a placa (ou Arduino) na madeira. Dica: não aplique muita cola. Apenas uma pequena quantidade para que fique em um lugar, mas você pode removê-la facilmente se quiser alterar algo mais tarde.
No final, insira a bateria de célula tipo moeda em seu suporte.
Etapa 11: atualização - fotorresistor
Os efeitos do relógio são especialmente bons no escuro. Mas isso pode incomodar o usuário durante a noite, enquanto ele dorme. É por isso que decidi atualizar o relógio com o recurso de correção automática de brilho - quando a sala escurece; o relógio desliga seus LEDs.
Para isso, usei o sensor de luz - fotoresistor. Sua resistência aumentará significativamente; até alguns mega ohms quando está escuro e terá apenas algumas centenas de ohms quando houver luz brilhando sobre ele. Junto com um resistor normal, eles formam o divisor de tensão. Então, quando a resistência do sensor de luz muda, o mesmo ocorre com a tensão no pino analógico do Arduino (que podemos medir).
Antes de soldar e montar qualquer circuito, é aconselhável simular primeiro, para que você possa ver o comportamento e fazer as correções. Com a ajuda do Autocad Tinkercad você pode fazer exatamente isso! Com apenas alguns cliques adicionei os componentes, conectei-os e escrevi o código. Na simulação você pode ver como o brilho dos LEDs é alterado de acordo com o valor do foto resistor. É muito simples e direto - você pode jogar com o circuito.
Após a simulação, era hora de adicionar o recurso ao relógio. Fiz um furo no centro do relógio, colei o resistor fotográfico, conectei-o como se pudesse ver no circuito e adicionei algumas linhas de código. No arquivo LEDclock.h, você deve habilitar esse recurso declarando USE_PHOTO_RESISTOR como 1. Você também pode alterar a luminosidade da sala em que o relógio escurecerá os LEDs alterando o valor CLOCK_PHOTO_TRESHOLD.
Etapa 12: Divirta-se
Quando você ligá-lo pela primeira vez, o relógio mostrará algum tempo aleatório. Você pode configurá-lo pressionando os dois botões ao mesmo tempo. Gire o botão para selecionar a hora certa e confirme pressionando qualquer botão.
Eu encontrei inspiração em um projeto muito legal na internet. Se você decidir construir o relógio sozinho, verifique-os também! (NeoClock, Wol Clock, Arduino Colorful Clock) Se você decidir tentar seguir as instruções, espero que você considere torná-lo tão agradável quanto eu.
Se você se deparar com qualquer problema ao longo do processo de fazê-lo, fique à vontade para me fazer qualquer pergunta nos comentários - terei prazer em tentar respondê-la!