Índice:

Sem lâmpada azul: 4 etapas
Sem lâmpada azul: 4 etapas

Vídeo: Sem lâmpada azul: 4 etapas

Vídeo: Sem lâmpada azul: 4 etapas
Vídeo: Ovoscopia do primeiro ao último dia 2024, Novembro
Anonim
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul
Sem lâmpada azul

Portanto, este Lazy Old Geek (L. O. G.) está trabalhando em um Projeto de Luz Azul:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

Bem, para a próxima etapa, eu queria uma lâmpada que fosse brilhante durante o dia e não tivesse luz azul à tarde / noite.

Hardware de design:

Decidi usar um RTC (Real Time Clock) para controlar os horários das mudanças de luz.

Eu escolhi o DS3231 porque ele tem melhor precisão de tempo do que o DS1307. O DS3231 pode ser 5v ou 3,3v.

Para a luz, usarei uma string de LED WS2812B. Eles têm uma interface simples de três fios e LEDs vermelhos, verdes e azuis controláveis. WS2812B são dispositivos 5v.

Para o microcontrolador vou usar um Pro Micro, 5v 16MHz.

Embora o WS2812B provavelmente funcione com 3,3 V, é melhor usar um Arduino de 5 V.

O Pro Micro é um Arduino barato que usa um microcontrolador Atmega32U4.

A lâmpada terá um botão liga / desliga para ligar ou desligar a lâmpada.

Haverá um potenciômetro para controlar o brilho.

Software de design:

O DS3231 RTC controlaria o tempo, ele tem bateria de reserva, então deve manter a hora mesmo se houver queda de energia.

Durante o dia, todos os LEDs RGB estariam acesos, controláveis pelo potenciômetro até a intensidade máxima.

No início da noite, os LEDs azuis estarão desligados, vermelho e verde no máximo.

Conforme o progresso da noite, os LEDs vermelho e verde diminuirão, com preferência de vermelho em vez de verde (meu teste na Parte 2 sugere que os LEDs verdes têm um pouco de azul).

Depois de cerca de 22h. todos os LEDs estarão desligados.

PROBLEMA:

De volta ao módulo DS3231 RTC, comprei o meu da Aliexpress como fiz para os outros componentes.

Eles devem funcionar e carregar uma bateria recarregável LIR2032. Eu tentei. Depois de cerca de um dia, a bateria acabou.

Bem, depois de algumas pesquisas na Internet, encontrei este artigo.

www.onetransistor.eu/2019/07/zs042-ds3231-…

Eu concordo com esta análise, mas pensei que o LIR2032 cobraria adequadamente, mas não excessivamente. Eu estava aparentemente errado. Meu DS3231, embora também marcado como ZS-042 no artigo, era um pouco diferente do seu, mas quase o mesmo. Então tirei a solda do diodo visto na foto e instalei uma bateria CR2032. Sem o diodo, o módulo não tentará carregar a bateria. Agora, o DS3231 mantém o tempo correto mesmo com a alimentação desligada e a bateria deve durar muitos anos.

Requerimentos poderosos:

O WS2812B é uma string de LEDs RGB, também chamada de NeoPixels. Cada NeoPixel requer no máximo 60mA. Estou usando 12 Neo Pixels, então preciso de 0,72A. Estou usando um adaptador USB 2A, então tenha bastante corrente.

Etapa 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Como sempre faço, usei o software gratuito Eagle Cadsoft (agora Autodesk) para fazer o layout e criar meu PCB.

www.autodesk.com/products/eagle/free-downl…

O esquema Eagle e os arquivos da placa são anexados junto com o esquema em uma imagem.

Um comentário sobre o esquema, o resistor de 330 ohm e o capacitor de 10.000uFd são recomendações do guia de neopixel da Adafruit:

learn.adafruit.com/adafruit-neopixel-uberg…

O botão de alternância que usei "interruptor do botão da tocha" foi daqui:

www.aliexpress.com/item/32904942704.html?s…

O potenciômetro de 10K (B103) daqui:

www.aliexpress.com/item/32672253655.html?s…

Etapa 2: Montagem da lâmpada

Montagem da lâmpada
Montagem da lâmpada
Montagem da lâmpada
Montagem da lâmpada

Acontece que eu tinha uma base pesada de uma lâmpada que comprei. Tinha um grande alfinete redondo. Peguei um pedaço de cano de PVC que se encaixava nele. Estava um pouco solto, então peguei um parafuso e algumas porcas para apertar. (Ver foto)

O WS2812B pode ser reduzido no número de NeoPixels que você desejar. A tira que comprei tem grandes espaços entre os NeoPixels. Eu queria que fosse um pouco mais claro, então cortei duas tiras de 6 NeoPixel e as corri em paralelo ligeiramente deslocadas. As tiras WS2812B podem ser cortadas entre os NeoPixels. Neste caso, eu precisava de uma mudança de 180 graus, então cortei a tira e passei os fios de ligação entre eles. Se você fizer isso, certifique-se de que os sinais e as setas de direção estão corretos. (Veja a imagem)

Este WS2812B também possui fios e um conector (este conector é um conector JST-SM de 3 pinos se você quiser usá-lo em outro lugar). Como esse conector já estava lá, eu apenas soldei os fios no meu PCB. Para este WS2812B, o fio vermelho é 5v, o verde é o sinal e o branco é o terra.

Depois de fazer o PCB, coloquei um pouco de fita adesiva na parte inferior e colei na base. Em seguida, conectei o Pro Micro e o DS3231.

Etapa 3: Arduino Sketch

Arduino Sketch
Arduino Sketch

Embora eu tenha comprado meu Pro Micro no Aliexpress.com, usei as seguintes informações para fazer o Arduino funcionar:

learn.sparkfun.com/tutorials/pro-micro--fi…

Para instalar a biblioteca do DS3231, uso esta:

github.com/PaulStoffregen/DS1307RTC

Baixe o arquivo Zip

Abra o Arduino, selecione ‘Sketch’ ‘Include Library’ ‘Add.zip library’

Instale o seguinte usando o mesmo método

Biblioteca de tempo PaulStoffregen

github.com/PaulStoffregen/Time

Biblioteca de fuso horário

github.com/JChristensen/Timezone

Quando concluído, inicie o Arduino.

Em Tools Boards selecione “Sparkfun Pro Micro”

Clique em Ferramentas novamente, haverá uma seleção de processador

Pode ser necessário alterá-lo “Atmega32U4 (5V 16Mhz)”

AVISO: se você for descuidado como eu, selecionei “Atmega32U4 (3,3V 8Mhz)” por engano. Isso o "bloqueou" de forma que o Arduino não pudesse ver. Bem, geralmente tento ler sobre coisas novas antes de entender e lembrar de algo sobre o que está acontecendo:

learn.sparkfun.com/tutorials/pro-micro--fi…

Neste guia, há uma seção chamada Como reviver um Pro Micro‘Bricked’”. Como menciona, é um procedimento complicado, mas consegui recuperar o meu.

Para sua informação: se você está se perguntando por que existem duas versões com voltagens e velocidades diferentes, o Atmega32U4 (igual ao Atmega328) funcionará bem em 5V com um clock de 16MHz. Mas a 3,3 V a especificação do design diz que o clock de 16 MHz não funcionará, é por isso que eles têm o clock de 8 MHz. De maneira geral, o software Arduino cuidará de quaisquer problemas de tempo.

DICA RTC: A maior parte do software escrito para o DS1307 funcionará com o DS3231, pois eles possuem um software muito semelhante.

Horário de verão

Bem, eu queria implementar o DST, então não tive que reprogramar minha lâmpada duas vezes por ano. Trabalhei nisso por vários dias. Não consegui encontrar nenhuma boa explicação simples sobre como o Time, TimeLib e RTClib funcionavam.

Na verdade, escrevi alguns códigos DST para o meu IPClock:

www.instructables.com/id/NO-MORE-SPRING-FO…

que funcionou para o horário da Internet, mas eu não consegui fazê-lo funcionar para o horário RTC.

Finalmente encontrei o seguinte de JChristensen:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Para usar isso, primeiro você deve definir o RTC para UTC (Coordinated Universal Time), que é a hora de Greenwich, na Inglaterra. Bem, não sabia como fazer isso, mas encontrei este artigo:

www.justavapor.com/archives/2482

Reescrito para o horário das montanhas (anexo) UTCtoRTC.ino

Então, incorporei o fuso horário ao meu Sketch. Para ser honesto, eu não testei, apenas presumindo que funcione.

Meu esboço está anexado MTS_BlueLamp.ino.

Etapa 4: Conclusão

Conclusão
Conclusão

Fiz um pequeno gancho na parte superior para minha máscara facial de CPAP. Eu costumava pendurá-lo na minha velha lâmpada de cabeceira.

Basicamente, muito feliz com esta lâmpada. Totalmente brilhante durante o dia e sem azul à tarde e à noite.

Uma coisa que não gosto é que não posso usar depois das 22h. e antes das 5h da manhã

Também descobri que não uso o botão liga / desliga, pois normalmente uso apenas o interruptor do dimmer.

No futuro, posso reescrever o esboço e alterar o botão para alternar programado ou não programado (totalmente ligado). Mas com minhas fracas habilidades de codificação, posso esperar um pouco.

Recomendado: