Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Infinity Clock - Arduino - WS2813 e DS3231
Eu queria construir um relógio e gostei da ideia de tentar fazer um relógio infinito com um Arduino. Eu queria construí-lo a partir de itens comuns e escrever o programa sozinho.
O que é um Infinity Clock?
O efeito de espelho de ilusão 3D é produzido sempre que há duas superfícies reflexivas paralelas que podem refletir um feixe de luz para frente e para trás um número indefinido (teoricamente infinito) de vezes. Os reflexos parecem diminuir na distância porque a luz realmente está atravessando a distância. Ao adicionar LEDs coloridos ao espelho Infinity, tentamos simular um relógio analógico usando a luz colorida que recua como ponteiros do relógio.
Neste instrutível, irei guiá-lo pelas etapas para criar o Infinity Clock e, em seguida, revisar alguns parâmetros ajustáveis no programa.
Etapa 1: peças necessárias para este projeto
Lista de peças:
- Arduino Uno $ 6 na taydaelectronics
- Protoshield para arduino uno. Você pode obter um por 2,50 na Amazon aqui.
- DS3231 plus bateria. você pode conseguir um por cerca de 3,00 na Amazon aqui.
- WS2813 LED 144 para 1 metro. $ 20 na Amazon aqui.
- 470 OHM 1 W Resistor de filme de carbono de cerca de 1 cent na Taydaelectronics.
- Capacitor eletrolítico 1000uf 16V 9 centavos na Taydaelectronics
- Fonte de alimentação 5v - usei um carregador de blackberry antigo.
- Espelho redondo de 6 polegadas. cerca de US $ 5 na Amazon
- Disco de acrílico de 6 polegadas por volta de 10 na Amazon
- Aros de bordar de madeira de 2 a 6 "(sim, isso mesmo) $ 2 cada na Amazon
- Película de espelho unidirecional prateada. Ebay parece ser o mais barato.
- Fios variados.
- Cavilha quadrada de madeira de 3/8 "HomeDepot por US $ 1,27
- base de relógio de madeira velha ou outro suporte de exibição.
- 2 pequenos laços zip.
O protetor de protótipo não é necessário, mas se você gosta de usar o Arduino, você o achará muito útil para construir esses projetos. Troque a proteção do protótipo por uma placa de ensaio, se necessário.
Você também pode precisar de um ferro de solda.
Eu esperaria que o projeto custasse cerca de US $ 40,00
Etapa 2: Configure seu PC
Se este for seu primeiro projeto arduino:
- Baixe o software arduino em arduino.cc
- Conecte o Arduino ao PC com um cabo USB.
-
Depois de iniciar o software, você precisará instalar três bibliotecas:
- Clique no menu "Sketch", clique em "Incluir Bibliotecas" e em "Gerenciar Bibliotecas …"
- Instale as duas bibliotecas: FastLED e RTClib. Veja as fotos para mais detalhes.
-
Pegue o scketch do Arduino no meu github
- Vou revisar o código no final para que você possa modificá-lo conforme necessário.
- Neste ponto, carregue o programa Infinity_Clock_DS3231_WS2813.ino
- Vá para Sketch e Upload para carregar o Arduino.
- A última seção do Instructable cobre alguns dos parâmetros configuráveis.
É melhor carregar o esboço agora, porque uma vez que a alimentação externa é adicionada, é melhor não conectá-lo ao seu PC.
Etapa 3: Conexão do projeto
Se você estiver usando o ProtoType Shield, coloque-o no Arduino.
A fiação é a parte mais complexa do projeto. Incluí fotos para ajudá-lo a ver o que fiz. Recomendo verificar todas as conexões antes de ligar.
DS3231 - Módulo de Relógio em Tempo Real
Coloque o módulo DS3231 na placa de ensaio e conecte como na imagem.
- Arduino aterrado para GND
- Arduino 5V para VCC
- Arduino A4 para SDA
- Arduino A5 para SCL
Na foto, eu conecto o 5v e o aterramento à sua própria execução na placa de ensaio porque mais tarde iremos conectar a alimentação externa.
Anexe a faixa de LED WS2813
- arduino 5V à sua potência de 5V.
-
Os dois conectores do meio são pinos de dados redundantes. eles vão para o pino 7
Certifique-se de colocar um resistor de 470 OHM entre o pino 7 e dois terminais de dados
- Arduino aterrado no último conector.
Conecte a fonte de alimentação externa de 5 V (não é recomendado executar a faixa de LED da alimentação do arduino por longos períodos).
- Coloque um capacitor eletrolítico de 1000 uF entre os terminais.
- Conecte a alimentação e o aterramento ao Arduino Power (5V) e aterramento (GND)
Não recomendo conectar a alimentação externa e USB ao Arduino ao mesmo tempo.
Etapa 4: construir o espelho infinito
Passos para construir o espelho infinito:
- Aplique o filme nos dics acrílicos. Isso fará com que o seu espelho unilateral.
- Coloque o disco de acrílico no bastidor de bordar. Aperte o parafuso para evitar que escorregue
- Coloque o espelho no outro bastidor Embroiery. Aperte o parafuso.
- Corte o pino quadrado em pequenas seções. cerca de 1/2"
-
Faça um loop na faixa de led com os LEDs apontando para dentro do círculo.
- Use os laços zip para segurar o led no lugar.
- Você pode precisar fazer um entalhe na gravata zip.
-
Coloque o laço no espelho
- Use blocos de madeira como espaçadores
- Cole os blocos no lugar. Eles devem ser seguros o suficiente para manter o led no lugar.
- Coloque o espelho de acrílico em cima do espelho / LEDs e cole no lugar.
Etapa 5: O Código
O programa usa a biblioteca Real Time Clock e a biblioteca Fastled.
Aqui estão alguns trechos de código para personalizar o comportamento.
- OFFSET - é a sobreposição. O programa espera que a sobreposição seja do LED0. Eu tenho um deslocamento de 3 LED.
- CLOCKSTART - é onde o meio-dia está no relógio. O LED 30 opõe-se às ligações elétricas.
Eu escrevi o programa para usar cores HTML. Você pode obtê-los em https://htmlcolorcodes.com/ Basta trocar o # por 0x no programa.
Você pode alterar o plano de fundo para am / pm
- backgroundAM = 0x070707;
- backgroundPM = 0x646D7E;
Ponteiros LED do relógio:
- hourHand = 0x000FFF;
- minHand = 0x00CC00;
- secHand = 0xcc0000;
Para destacá-lo, adicionei a opção de ter 3 LEDs para o ponteiro das horas, mas permite que você altere a cor em ambos os lados do do meio para destacá-lo.
- theeledhour = true; // você pode torná-lo verdadeiro ou falso
- extraHourHand = 0x00001F;
Outro recurso interessante é que o RTClib detectará que a bateria do seu DS3231 foi removida e configurará o tempo de compilação do PC. É um bom recurso para o novo DS3231.
Se você não pegou o esboço no início do documento, ele pode ser encontrado no GitHub
Obrigado por ler este Instructable. Meu filho ajudou e foi um projeto divertido para nós. Espero que sejamos considerados no concurso de óptica.