Indholdsfortegnelse:

Ingen blå lampe: 4 trin
Ingen blå lampe: 4 trin

Video: Ingen blå lampe: 4 trin

Video: Ingen blå lampe: 4 trin
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, November
Anonim
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe
Ingen blå lampe

Så denne Lazy Old Geek (L. O. G.) har arbejdet på et Blue Light -projekt:

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

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

Nå, til det næste trin ønskede jeg en lampe, der ville være lys i løbet af dagen og ikke havde noget blåt lys om aftenen/natten.

Design hardware:

Jeg besluttede at bruge en RTC (Real Time Clock) til at styre tiderne for lysændringer.

Jeg valgte DS3231, da den har bedre tid til at holde nøjagtigheden end DS1307. DS3231 kan være 5v eller 3.3v.

Til lys vil jeg bruge en WS2812B LED -streng. Disse har en enkel tretråds grænseflade og kontrollerbare røde, grønne og blå lysdioder. WS2812B er 5v -enheder.

Til mikrokontrolleren vil jeg bruge en Pro Micro, 5v 16MHz.

Selvom WS2812B sandsynligvis vil fungere med 3,3V, er det bedre at bruge en 5V Arduino.

Pro Micro er en billig Arduino ved hjælp af en Atmega32U4 mikrokontroller.

Lampen har en tænd/sluk -kontakt til at tænde eller slukke lampen.

Der vil være et potentiometer til at styre lysstyrken.

Design Software:

DS3231 RTC ville styre timingen, den har batteribackup, så den bør beholde tiden, selvom strømmen går tabt.

I løbet af dagen ville alle RGB -lysdioder være tændte, kontrolleres af puljen op til fuld intensitet.

Tidlig aften vil de blå lysdioder være slukket, rød og grøn på max.

Efterhånden som aftenen skrider frem, dæmpes de røde og grønne lysdioder, foretrukket af rødt frem for grønt (mine test i del 2 tyder på, at de grønne lysdioder har noget blåt i sig).

Efter omkring kl. alle lysdioder vil være slukkede.

PROBLEM:

Tilbage til DS3231 RTC -modulet købte jeg mit fra Aliexpress ligesom jeg gjorde for de andre komponenter.

Disse formodes at arbejde med og oplade et LIR2032 genopladeligt batteri. Jeg prøvede det. Efter cirka en dag var batteriet dødt.

Efter lidt søgning på Internettet fandt jeg denne artikel.

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

Jeg er enig i denne analyse, men troede, at LIR2032 ville oplade tilstrækkeligt, men ikke overdrevent. Jeg tog tilsyneladende fejl. Min DS3231 skønt også markeret som ZS-042 som i artiklen var lidt anderledes end hans, men næsten den samme. Så jeg lodde den diode, der ses på billedet, og installerede et CR2032 -batteri. Uden dioden vil modulet ikke forsøge at oplade batteriet. Nu holder DS3231 den korrekte tid, selvom strømmen er afbrudt, og batteriet skulle være godt i mange år.

Strømkrav:

WS2812B er en streng af RGB -lysdioder, der undertiden kaldes NeoPixels. Hver NeoPixel kræver maksimalt 60mA. Jeg bruger 12 Neo Pixels, så jeg har brug for 0.72A. Jeg bruger en 2A USB -adapter, så jeg har masser af strøm.

Trin 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Så som jeg plejer, brugte jeg den gratis Eagle Cadsoft -software (nu Autodesk) til at oprette og oprette mit printkort.

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

Eagle -skematikken og tavlefilerne er vedhæftet sammen med skematikken på et billede.

En kommentar om skematikken, 330 ohm modstanden og 10.000uFd kondensator er anbefalinger fra Adafruit's neopixel guide:

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

Vippeknappen, jeg brugte "Torch -trykknapkontakt", var herfra:

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

10K (B103) potentiometer herfra:

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

Trin 2: Montering af lampen

Montering af lampen
Montering af lampen
Montering af lampen
Montering af lampen

Jeg havde tilfældigvis en tung fod fra en lampe, jeg købte. Der var en stor rund pin på den. Jeg tog et stykke PVC -rør, der passede over det. Den var lidt løs, så jeg tog en bolt og et par møtrikker, så jeg kunne stramme den. (se billede)

WS2812B kan skæres ind i det antal NeoPixels, du ønsker. Strimlen, jeg købte, har store mellemrum mellem NeoPixels. Jeg ville have det til at være lidt lysere, så jeg skar to 6 NeoPixel strimler og kørte dem parallelt lidt forskudt. WS2812B -strimlerne kan skæres mellem NeoPixels. I dette tilfælde havde jeg brug for en 180 graders ændring, så jeg skar strimlen og løb jumperkabler mellem. Hvis du nogensinde gør dette, skal du sørge for, at signalerne og retningspilene er korrekte. (Se billede)

Denne WS2812B har også ledninger og et stik (dette stik er et JST-SM 3pin stik, hvis du vil bruge det andre steder). Da dette stik allerede var der, lod jeg lige ledningerne til mit printkort. For denne WS2812B er den røde ledning 5v, grøn er signal og hvid er jordet.

Da jeg lavede printkortet, lagde jeg lidt tape på bunden og satte det fast på basen. Derefter tilsluttede jeg Pro Micro og DS3231.

Trin 3: Arduino Sketch

Arduino Skitse
Arduino Skitse

Selvom jeg købte min Pro Micro fra Aliexpress.com, brugte jeg følgende oplysninger til at få Arduino til at fungere:

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

For at installere biblioteket til DS3231 bruger jeg denne:

github.com/PaulStoffregen/DS1307RTC

Download zip -filen

Åbn Arduino, vælg 'Skitse' 'Inkluder bibliotek' 'Tilføj.zip -bibliotek'

Installer følgende med den samme metode

Tidsbibliotek PaulStoffregen

github.com/PaulStoffregen/Time

Tidszone bibliotek

github.com/JChristensen/Timezone

Når du er færdig, skal du starte Arduino.

Vælg "Sparkfun Pro Micro" under Værktøjstavler

Klik på Værktøjer igen, der vil være et valg til processor

Du skal muligvis ændre det "Atmega32U4 (5V 16Mhz)"

ADVARSEL: Hvis du er uforsigtig som jeg, valgte jeg "Atmega32U4 (3.3V 8Mhz)" ved en fejl. Dette 'murede' det, så Arduino ikke kunne se det. Nå, jeg prøver normalt at læse om nye ting, før jeg fik det og huskede noget om, at dette skete:

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

I denne vejledning er der et afsnit kaldet "Sådan genopliver du en 'Bricked' Pro Micro" Som det nævner, er det en vanskelig procedure, men det lykkedes mig at gendanne min.

FYI: Hvis du undrer dig over, hvorfor der er to versioner med forskellige spændinger og hastigheder, fungerer Atmega32U4 (samme som Atmega328) fint ved 5V med et 16MHz ur. Men ved 3,3V siger designspecifikationen, at 16MHz -uret ikke fungerer, derfor har de uret på 8MHz. Generelt vil Arduino -softwaren tage sig af eventuelle timingproblemer.

RTC TIP: Det meste af softwaren, der er skrevet til DS1307, fungerer med DS3231, da de har meget lignende software.

Sommertid

Godt, jeg ville implementere sommertid, så jeg behøvede ikke at omprogrammere min lampe to gange om året. Jeg arbejdede på dette i flere dage. Jeg kunne ikke finde nogen gode enkle forklaringer på, hvordan Time, TimeLib og RTClib fungerede.

Jeg skrev faktisk en DST -kode til mit IPClock:

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

der fungerede for internettid, men jeg kunne ikke få det til at fungere i RTC -tid.

Jeg løb endelig over følgende af JChristensen:

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

github.com/JChristensen/Timezone

For at bruge dette skal du først indstille RTC til UTC (Coordinated Universal Time), det er tid i Greenwich, England. Nå, vidste ikke, hvordan jeg skulle gøre det, men fandt denne artikel:

www.justavapor.com/archives/2482

Omskriv det til bjergtid (vedhæftet) UTCtoRTC.ino

Derefter indarbejdede jeg tidszonen i min Skitse. For at være ærlig, har jeg ikke testet det, så jeg går ud fra, at det virker.

Min skitse er vedhæftet MTS_BlueLamp.ino.

Trin 4: Konklusion

Konklusion
Konklusion

Jeg lavede en lille krog øverst til min CPAP ansigtsmaske. Jeg plejede at hænge den på min gamle sengelampe.

Grundlæggende meget glad for denne lampe. Fuldt lyst om dagen og ingen blå om aftenen og natten.

En ting jeg ikke kan lide er, at jeg ikke kan bruge den efter 22:00 og inden kl. 17.00

Jeg fandt også ud af, at jeg ikke bruger afbryderen til/fra, da jeg normalt kun bruger lysdæmperen.

I fremtiden kan jeg omskrive skitsen og ændre knappen til planlagt eller ikke -planlagt (fuld til) switch. Men med mine dårlige kodningsevner venter jeg måske lidt.

Anbefalede: