Índice:
- Etapa 1: o caso do relógio
- Etapa 2: Neopixels
- Etapa 3: Ajustar o texto frontal
- Etapa 4: efeito arco-íris completo
- Etapa 5: os vários componentes
- Etapa 6: código para o relógio
- Etapa 7: a descrição do hardware
- Etapa 8: LDR para o controle de brilho dos neopixels
- Etapa 9: Reduzindo o consumo de energia do WS2812B
- Etapa 10: Smiley no Word Clock
- Etapa 11: Quais bibliotecas são usadas
- Etapa 12: controle remoto IR simples
- Etapa 13: quais são os próximos?
Vídeo: Arco-íris Word Clock com um efeito arco-íris completo e mais: 13 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Metas
1) Simples
2) Não é caro
3) O mais eficiente possível em termos de energia
Arco-íris Word Clock com um efeito arco-íris completo.
Um Smiley no Word Clock.
Controle remoto IR simples
Atualização 03-nov-18 LDR para o Controle de Brilho dos Neopixels
Atualização 01-jan-19 Reduzindo o consumo de energia do WS2812B.
Atualização 15-jan-19 Smiley.
Atualização 23-jan-19 Código 1.6
Atualizar links de bibliotecas de 10 de março de 19
Update 14-abr-19 version 1.7 Escolha smiley on / off collor rainbow / fix enz.
Última atualização 01-jun-19 versão 2.0 Controle remoto IR e reprojeto de código
Etapa 1: o caso do relógio
Com algumas ferramentas simples e um pouco de habilidade, não é difícil fazer um relógio de cartas Usei os materiais disponíveis.
Para o caso, usei uma barra de pinho áspera na qual serrei alguns quadros. Isso faria os quatro lados da caixa, que eram colados e reforçados com um pequeno pedaço de madeira nos cantos. Em seguida, a madeira precisa de lixar e pintar.
As letras são cortadas em papel alumínio por uma impressora com escrita espelhada. A película está na parte de trás da placa de vidro e é coberta com um papel padrão de camada dupla para melhor distribuição da luz. O vidro é fixado com selante de silicone.
Etapa 2: Neopixels
Os LEDs Neopixels estão dispostos em uma placa de madeira. Nesse caso, você primeiro faz furos de 3 mm. Na frente, eles são aumentados para tamanho carta a 3/4 de profundidade. Depois disso, os 3 mm na parte de trás aumentam para 10 mm, este é o tamanho de um Neopixel. Para alguns caracteres entre outros o W, o orifício deve ser ligeiramente ajustado.
Usei madeira compensada que se estilhaçou rapidamente, MDF pode ser melhor.
Com LEDs individuais, você não está limitado a uma distância fixa, o que é o caso com fitas de LED. Os LEDs devem ser conectados uns aos outros. Você pode fazer isso com todos os pedaços curtos de arame. Mas as duas conexões mínimas (-) são como as duas conexões positivas (+) conectadas internamente, portanto, a mesma conexão.
Você pode economizar muito trabalho soldando um pedaço de fio no LED esquerdo e, em seguida, no LED direito. Em seguida, solde os intermediários.
A conexão de dados deve, é claro, com peças curtas porque a saída de dados vai para a entrada de dados.
Etapa 3: Ajustar o texto frontal
A placa frontal agora está em holandês, mas simplesmente para ser convertida em qualquer idioma.
Os leds NeoPixels são trocados em sucessão aqui de 0-167. A numeração vai da primeira linha no canto superior esquerdo para a direita e depois para a segunda linha da direita para a esquerda etc. O ajuste pode ser feito de acordo com suas próprias necessidades. O número de NeoPixels é determinado pela quantidade de caracteres. Menos ou mais Neopixels podem ser ajustados na seguinte linha
#define NUMPIXELS 168 // Quantos NeoPixels estão anexados ao Arduino?
168 é do que outro número. A numeração começa em 0. Você pode fazer qualquer texto. Se você alterar o texto, também terá que ajustar as palavras correspondentes. A numeração permanece a mesma.
Por exemplo, DRIE dos minutos, é determinado no código
void zetmDrie () {
Led_Aan [56] = 1, Led_Aan [57] = 1, Led_Aan [58] = 1, Led_Aan [59] = 1; // min-drie
}
Se você quiser transformar a palavra Arduino, é assim:
void zetArduino () {
Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;
Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; // Word-arduino
}
Então você pode fazer palavras no meio.
Para palavras de relógio, é útil se elas formarem uma palavra contígua, mas não é absolutamente necessário. As letras não utilizadas não precisam de Neonpixels. Eu tenho todos eles preenchidos para o uso de possibilidades futuras além do tempo que está sendo exibido.
Se você alterar o ponto inicial ou alterar a sequência de sucessão, a numeração deve ser alterada de acordo.
Etapa 4: efeito arco-íris completo
O relógio agora está tão programado que é contado um número de vezes por segundo quantos neopixsels estão ligados.
O espectro total é sobre o número de dividido e ligeiramente deslocado. Como resultado, cada Neopixel tem uma cor diferente que muda continuamente. Neopixel nº 1 e nº 167 seguem um ao outro em alguns envolvimentos de cor.
Se você preferir menos cores diferentes ao mesmo tempo, isso é fácil de ajustar. A cor ainda muda em todo o espectro, mas com uma parte menor. Neopixel nr 1 e nr 167 já não seguem um ao outro alguns envolvimentos de cor.
O brilho pode ser definido na linha a seguir, pixels.setBrightness (150);
Um número menor é menos e um número maior mais brilho.
Etapa 5: os vários componentes
Os seguintes componentes que usei
Arduino Pro Mini ATMEGA328 5V / 16MHz
Módulo de Relógio DS3231
168 peças LEDs Neopixels WS2812 LED Chip & Dissipador 5V 5050 RGB WS2811 IC embutido
Estêncil de folha de alumínio
Receptor DCF77
Etapa 6: código para o relógio
Aqui está o código. Adicionado um controle de brilho e desligamento quando ninguém está presente e à noite.
Adicionado sensor de movimento por radar de microondas RCWL-0516 (procure por RADAR)
Após 10 minutos sem movimento, os NeoPixels são desligados.
Sobre a versão 2.0
O uso de memória era excessivo, com avisos de esgotamento de memória no compilador. É por isso que mudei completamente o código, mas a operação permaneceu a mesma e um receptor IR foi adicionado.
Há um trecho de código para fornecer dados à EEPROM. Execute-o uma vez removendo temporariamente / * e * /. Procure por => execute isto uma vez para fornecer dados à EEPROM
No início do loop void está o código para ler o código de seu próprio controle remoto. Você pode executá-lo removendo temporariamente / * e * /, não se esqueça de colocá-los de volta depois. Você também pode definir seus próprios botões. O código lido deve ser inserido em => Defina seus próprios botões aqui
O controle remoto Samsung funciona melhor do que o (muito barato) simples.
Etapa 7: a descrição do hardware
Existem diferentes versões do Arduino Pro Mini. Observe que as conexões podem ser diferentes.
Adicionado um sensor de movimento de microondas RCWL-0516.
Enquanto houver movimento nas proximidades do relógio, o NeoPixel permanecerá ligado
e assim que não houver mais movimento o NeoPixel dispara após alguns minutos.
Na versão 2.0, o receptor DCF77 é alimentado por meio do pino 13. Este pino é definido como saída e configurado alto quando a rotina DCF77 é endereçada. O receptor DCF77 usa 0,28 mA e é necessário apenas alguns minutos por dia.
Desativando salvamentos
5 Volts * 0,28 mA / 1000 * 24 horas * 365 dias * Fonte de alimentação com eficiência de 1 / 0,85 = 14,4 watts por ano.
Isso não parece muito, mas tudo ajuda.
Etapa 8: LDR para o controle de brilho dos neopixels
Adicionado um LDR para o controle de brilho dos neopixels.
Colei o LDR no espaço do neopixel 103. Este não é usado na exibição de tempo e, portanto, não influencia o regulamento. O papel amortece a luz incidente, mas isso não é problema.
O divisor de tensão do LDR e do resistor de 20 kohm vai para A0 do Arduino Pro Mini. A voltagem é um indicador da intensidade da luz e, portanto, também um indicador da quantidade de luz que os neopixels têm para fornecer.
A fórmula que uso me dá um bom controle de luz, pode ser ajustada dependendo das circunstâncias. Dependendo da quantidade de luz, a tensão pode variar entre 0 e 5 volts que é convertida para 0 a 1024 contagens que estão em "LDRValue".
Se o novo valor medido for maior que o último valor calculado, a intensidade é aumentada em 1, se for menor que diminuída em 1 e se for igual nada é feito. Para que o valor prossiga lentamente, de modo que não haja efeito de piscar, apenas 1 é aumentado ou diminuído e, como o cálculo está no loop, ele só é recalculado após percorrer o loop 25 vezes.
A intensidade é teoricamente um mínimo de 20 e um máximo de 1024/7 + 45 = 191. O valor máximo que medi foi 902, o que equivale a uma intensidade de 173. Isso se encaixa bem com os 150 que defini como valor padrão. (veja pixels.setBrightness (150))
Na versão 2.0, você pode definir o controle por meio do controle remoto. Os seguintes parâmetros foram adicionados: Brightness_min como mínimo e Brightness_max como configuração máxima e Brightness_Offset como parâmetro de configuração. Brightness_min e _max são os valores que podem depender de sua própria situação. Brightness_Offset é um valor que pode ser definido com o controle remoto e com o qual mais ou menos brilho pode ser definido.
Também há uma banda morta de 3 entre os valores LDRValue medidos e os valores BerLDRValue calculados.
Use as instruções de impressão no void BrightnessControl para verificar a configuração de brilho.
Etapa 9: Reduzindo o consumo de energia do WS2812B
Os drivers nos neopixels endereçáveis WS2812B estão consumindo corrente mesmo quando os neopixels estão desligados, definidos para a cor 0 (nenhum elemento de neopixels aceso).
Quando todos os 169 neopixels estão eliminados, medi 69 mA para os neopixels. Supondo que o relógio esteja desligado 12 horas por dia, o desligamento total economiza: 5 (fonte de alimentação em Volt) * 69/1000 (Miliampère / 1000 = Ampère) * 12 (Número de horas por dia) * 365 (Número de dias em um ano) = 1511 watts-hora. Portanto, anualmente, 1,5 Kwh. Eu concordo, não é muito em si, mas muitos pequenos fazem um grande problema.
O circuito é simples. O ponto positivo da fonte de alimentação é comutado por um MosFet de canal P. O sensor de radar determina se os neopixels estão ligados ou desligados. Eu coloquei dois parrelel MosFet para manter a resistência ON o mais baixo possível devido à perda dos MosFets. Em uso normal, eu meço 4,5 mili volts nos MosFets. A porta é controlada pela saída 4 do Arduino por meio de um resistor de 470 Kohm. Se a saída for baixa (0) digitalmente, os neopixels estão ligados e em alta (1) eles estão desligados.
Etapa 10: Smiley no Word Clock
Um Smiley no Word Clock.
Ocasionalmente, aparece um Smiley no relógio. Isso, entretanto, te deixa feliz.
O Smiley é acionado pelo sensor de radar. O número de vezes que o movimento (ajustável) mede a aparência do Smiley. Os sinais de% indicam que o movimento foi detectado. A cada décimo movimento (ajustável), o Smiley surge com um Winky Face e depois de três vezes um Winky Face surge a quarta vez que um Smiley Face mostra a língua para fora.
O Smiley é uma pequena mudança no código.
Etapa 11: Quais bibliotecas são usadas
Quais bibliotecas são usadas.
Eu os uso no Windows 7 com Arduino IDE 1.6 e também foram testados no Windows 10 com Adruino IDE 1.8.8
RTClib-master
Arduino-DS3231-master
Adafruit_NeoPixel-master
Arduino-DCF77-master
Biblioteca IRremote de Ken Shirriff
Como sempre há confusão sobre a biblioteca usada, adiciono a que uso.
A biblioteca IRremote usa muita memória. No IRremote.h é indicado que você pode desativar qualquer protocolo não utilizado
// Cada protocolo que você inclui custa memória e, durante a decodificação, custa tempo // Desabilite (defina como 0) todos os protocolos que você não precisa / deseja!
Desativei tudo, exceto o protocolo NEC e Samsung. Isso proporciona uma economia de memória de 10%. No momento não há mais problemas com a quantidade de memória, por enquanto a desativação não é necessária.
Etapa 12: controle remoto IR simples
A montagem
Como você pode ver nas fotos, o orifício para o LED 132 acabou sendo um pouco grande. Fiz bom uso disso e adicionei o receptor IR a ele. Conecte o pino de dados do receptor IR VS1838 ao pino 7 do Arduino. Além disso, conecte a fonte de alimentação positiva e negativa. O receptor IR usa 0,21 mA e também pode ser conectado à fonte de alimentação plus após a chave FET. Isso resulta em uma economia, se o relógio estiver ligado 50% do tempo, de 5 Volts * 0,21 mA / 1000 * 12 horas * 365 dias * 1 / 0,85 eficiência da fonte de alimentação = 5,4 watts por ano. Isso não parece muito, mas tudo ajuda.
A operação é a seguinte
Pressione qualquer tecla no controle remoto IR e, em seguida, a tecla OK. Na primeira vez que você pressiona, você vai para o processamento de IR e na segunda vez você vai detectar se foi uma solicitação justificada. A segunda vez, OK deve seguir rapidamente o primeiro pressionamento de tecla, caso contrário, ele voltará novamente. Fiz essa construção de forma que dificilmente conseguisse decodificar corretamente o primeiro código e, portanto, não acabei no tratamento de IR.
Uma vez no manuseio de infravermelho, uma série de LEDs acendem para informações, para explicação, leia mais e veja a primeira imagem.
A descrição é para o controle remoto simples, mas você pode usar qualquer controle remoto e definir suas próprias teclas. Também usei um controle remoto Samsung.
As primeiras quatro teclas correspondem às quatro primeiras linhas de LEDs. Quatro LEDs viram para a esquerda ou para a direita, dependendo da configuração. Quando as teclas de 1 a 4 são pressionadas, o estado é revertido e armazenado na memória.
1 cor fixa ou efeito arco-íris
2 segundos de flash desligado ou segundo flash ligado
3 smiley desligado smiley ligado
4 DCF77 desligado ou DCF77 ligado
O número da chave é exibido nas seguintes teclas
5 contador de smiley
Largura do espectro de 6 arco-íris
7 corrigir configuração de vermelho
8 correção de configuração de verde
9 corrigir configuração de azul
As linhas 6, 7 e 8 dos LEDs agora correspondem ao valor definido, a linha 6 indica as unidades, a linha 7 as dezenas e a linha 8 as cem. Cada linha começa com o valor zero. Portanto, o primeiro led na linha é 0, o segundo é 1 etc.
0 ajuste de tempo
/ / configuração de brilho
Quando o botão 0 é pressionado, os LEDs "dez" acendem para indicar que você deseja definir a hora e quando você pressiona 0 uma segunda vez, a hora definida aparece no visor.
A hora agora pode ser definida e é exibida no visor.
Defina a hora correta e, se o minuto for igual ao de um relógio de referência, pressione o botão OK.
A hora é ajustada.
Se você não operar o botão de minutos ou horas, nenhuma alteração de horário será feita. Se você pressioná-los, a hora será definida imediatamente.
O valor das teclas 5 a 9 pode ser alterado com as teclas
direito é mais 1
à esquerda é menos 1
para a frente é mais 10
reverso é menos 10.
e para a configuração do tempo
certo é mais 1 minuto
à esquerda é menos 1 minuto
avançar é mais 1 hora
reverso é menos 1 hora
Às vezes acontece que o pressionamento da tecla não é reconhecido ou é executado duas vezes. Portanto, preste atenção se a configuração correr bem, caso contrário, tente ou corrija novamente. O controle remoto Samsung que eu também testei funcionou muitas vezes melhor do que o controle remoto simples (muito barato).
Ao definir a cor, você vê a mudança diretamente em todo o visor. Para um site com uma visão geral das cores, consulte https://www.helderester.nl/kleurentabel.html. Claro, você pode definir qualquer valor.
Se a largura do espectro do arco-íris tem um valor de 0, o espectro é muito estreito e a tela tem uma cor que muda constantemente.
A desvantagem de definir a hora desta forma é que você não pode calcular uma transição verão / inverno porque temos a data incorreta. Não importa para o relógio em si, porque não o usamos agora.
Etapa 13: quais são os próximos?
O que se segue, bom, se a memória livre ainda é suficiente.
Já tenho as caixas dos alto-falantes. Eles são de um laptop antigo.
Recomendado:
NeckCrusher (pedal de efeito montado na guitarra): 6 etapas (com imagens)
NeckCrusher (pedal de efeito montado na guitarra): Dale Rosen, Carlos Reyes e Rob KochDATT 2000
Arco mais leve em um controlador de Slot Car: 6 etapas (com imagens)
Arco mais leve em um controlador do Slot Car: Este é o arco do controlador do meu slot car. Nunca pensei que colocaria essas palavras juntas em uma frase! O controlador é de uma pista de corrida do tipo Scalextric, mas uma versão barata e de baixa qualidade. Encontrei um par deles no depósito de lixo e pensei que mig
Mais seguro, melhor: tornando as estações de trem mais seguras: 7 etapas
Mais seguro, melhor: tornando as estações de trem mais seguras: Muitas estações de trem hoje não são seguras devido à falta de segurança, barreiras e aviso de chegada do trem. Vimos a necessidade de consertar isso. Para resolver este problema, criamos o Safer Better. Usamos sensores de vibração, sensores de movimento e
Pike - Dirija com mais segurança, dirija com mais inteligência, dirija um Pike !: 5 etapas
Pike - Dirija com mais segurança, Dirija com mais inteligência, Dirija um Pike !: Bem-vindo ao meu projeto chamado Pike! Este é um projeto que faz parte da minha educação. Sou estudante NMCT em Howest na Bélgica. O objetivo era fazer algo inteligente usando um Raspberry Pi. Tínhamos total liberdade na qual queríamos fazer smart.Para mim foi
Como deixar seu computador mais rápido e mais rápido !: 5 etapas
Como deixar o seu computador mais rápido e mais rápido !: Instruções fáceis de seguir sobre como acelerar facilmente o seu computador