INHOUDSOPGAWE:

Geen blou lamp: 4 stappe
Geen blou lamp: 4 stappe

Video: Geen blou lamp: 4 stappe

Video: Geen blou lamp: 4 stappe
Video: The Weeknd - Blinding Lights (Official Video) 2024, Julie
Anonim
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie
Geen blou lamp nie

Hierdie Lazy Old Geek (L. O. G.) werk dus aan 'n Blue Light -projek:

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

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

Vir die volgende stap wou ek 'n lamp hê wat bedags helder sou wees en geen blou lig in die aand/nag het nie.

Ontwerp hardeware:

Ek het besluit om 'n RTC (Real Time Clock) te gebruik om die tye vir ligveranderings te beheer.

Ek het die DS3231 gekies, want dit het 'n beter tydsduur as die DS1307. Die DS3231 kan 5v of 3.3v wees.

Vir lig gebruik ek 'n WS2812B LED -string. Dit het 'n eenvoudige drie -draad koppelvlak en beheerbare rooi, groen en blou LED's. WS2812B is 5v -toestelle.

Vir die mikrobeheerder gebruik ek 'n Pro Micro, 5v 16MHz.

Alhoewel die WS2812B waarskynlik met 3.3V sal werk, is dit beter om 'n 5V Arduino te gebruik.

Die Pro Micro is 'n goedkoop Arduino met 'n Atmega32U4 -mikrobeheerder.

Die lamp sal 'n aan/uit -skakelaar hê om die lamp aan of uit te skakel.

Daar sal 'n potensiometer wees om die helderheid te beheer.

Ontwerp sagteware:

Die DS3231 RTC sal die tydsberekening beheer, dit het battery -rugsteun, so dit behoort die tyd te hou, selfs al gaan die krag verlore.

Gedurende die dag sou al die RGB -LED's aan wees, deur die pot tot volle intensiteit beheer word.

Vroegaand is die blou LED's af, rooi en groen op maksimum.

Namate die aand vorder, sal die rooi en groen LED's afneem, met die voorkeur van rooi bo groen (my toets in deel 2 dui daarop dat die groen LED's 'n paar blou in het).

Na ongeveer 22:00 al die LED's sal af wees.

PROBLEEM:

Terug na die DS3231 RTC -module, ek het myne by Aliexpress gekoop, net soos met die ander komponente.

Dit is veronderstel om 'n herlaaibare LIR2032 -battery saam te werk en te laai. Ek het dit probeer. Na ongeveer 'n dag was die battery leeg.

Na 'n bietjie soek op die internet, vind ek hierdie artikel.

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

Ek stem saam met hierdie analise, maar het gedink dat die LIR2032 voldoende, maar nie buitensporig sou laai nie. Ek was blykbaar verkeerd. My DS3231, hoewel ook gemerk as ZS-042 soos in die artikel, was effens anders as syne, maar byna dieselfde. Ek het dus die diode wat op die foto gesien is, gesoldeer en 'n CR2032 -battery geïnstalleer. Sonder die diode sal die module nie probeer om die battery te laai nie. Nou hou die DS3231 die regte tyd, selfs as die krag afgeskakel is, en die battery behoort jare lank goed te wees.

Kragvereistes:

Die WS2812B is 'n reeks RGB -LED's wat soms NeoPixels genoem word. Elke NeoPixel benodig 'n maksimum van 60mA. Ek gebruik 12 Neo Pixels, so ek benodig 0,72A. Ek gebruik 'n 2A USB -adapter, so ek het baie stroom.

Stap 1: BlueLamp PCB

BlueLamp PCB
BlueLamp PCB
BlueLamp PCB
BlueLamp PCB

Soos ek gewoonlik gebruik het, het ek die gratis Eagle Cadsoft -sagteware (nou Autodesk) gebruik om my PCB op te stel en te skep.

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

Die Eagle -skematiese en bordlêers word saam met die skematika in 'n prent aangeheg.

Een opmerking oor die skematiese, die 330 ohm -weerstand en 10, 000uFd -kondensator is aanbevelings deur die neopixelgids van Adafruit:

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

Die skakelknoppie wat ek gebruik het, 'Torch drukknopskakelaar', was van hier af:

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

Die 10K (B103) potensiometer van hier af:

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

Stap 2: Monteer die lamp

Monteer die lamp
Monteer die lamp
Monteer die lamp
Monteer die lamp

Ek het toevallig 'n swaar voetstuk gehad van 'n lamp wat ek gekoop het. Daar was 'n groot ronde pen op. Ek het 'n stuk PVC -pyp geneem wat daaroor pas. Dit was 'n bietjie los, en ek het 'n bout en 'n paar moere geneem sodat ek dit kon vasdraai. (sien prentjie)

Die WS2812B kan ingedeel word in die aantal NeoPixels wat u verlang. Die strook wat ek gekoop het, het groot spasies tussen die NeoPixels. Ek wou hê dat dit 'n bietjie helderder moes wees, en ek het twee 6 NeoPixel -stroke gesny en dit effens verlaag. Die WS2812B -stroke kan tussen die NeoPixels gesny word. In hierdie geval het ek 'n 180 grade -verandering nodig gehad, so ek het die strook afgesny en trui tussen die drade geloop. As u dit ooit doen, maak seker dat die seine en die rigtingpyle korrek is. (Sien prent)

Hierdie WS2812B het ook drade en 'n aansluiting (hierdie aansluiting is 'n JST-SM 3pin-aansluiting as u dit elders wil gebruik). Aangesien hierdie aansluiting reeds daar was, het ek net die drade aan my PCB gesoldeer. Vir hierdie WS2812B is die rooi draad 5v, groen is sein en wit is gemaal.

Toe ek die printplaat gemaak het, het ek 'n plakband op die bodem gesit en dit aan die basis vasgemaak. Toe sluit ek die Pro Micro en die DS3231 aan.

Stap 3: Arduino -skets

Arduino Skets
Arduino Skets

Alhoewel ek my Pro Micro van Aliexpress.com gekoop het, het ek die volgende inligting gebruik om Arduino te laat werk:

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

Om die biblioteek vir die DS3231 te installeer, gebruik ek hierdie een:

github.com/PaulStoffregen/DS1307RTC

Laai die zip -lêer af

Maak Arduino oop, kies 'Skets' 'Sluit biblioteek in' Voeg zip -biblioteek by '

Installeer die volgende met dieselfde metode

Tydbiblioteek PaulStoffregen

github.com/PaulStoffregen/Time

Tydsonesbiblioteek

github.com/JChristensen/Timezone

As u klaar is, begin Arduino.

Kies “Sparkfun Pro Micro” onder Tools Boards

Klik weer op Tools, daar sal 'n keuse vir verwerker wees

Miskien moet u dit verander "Atmega32U4 (5V 16Mhz)"

WAARSKUWING: As u nalatig is soos ek, het ek per ongeluk 'Atmega32U4 (3.3V 8Mhz)' gekies. Dit 'steen' dit sodat die Arduino dit nie kan sien nie. Wel, ek probeer gewoonlik lees oor nuwe dinge voordat ek dit gekry het en onthou iets oor die gebeurtenis:

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

In hierdie gids is daar 'n gedeelte genaamd 'Hoe om 'n' Bricked 'Pro Micro te laat herleef' Soos dit noem, is dit 'n moeilike prosedure, maar ek het dit reggekry om myne te herstel.

FYI: As u wonder waarom daar twee weergawes met verskillende spannings en snelhede is, werk die Atmega32U4 (dieselfde as Atmega328) goed by 5V met 'n 16MHz -klok. Maar teen 3.3V sê die ontwerpspesifikasie dat die 16MHz -klok nie werk nie, daarom het hulle die klok op 8MHz. Oor die algemeen sorg die Arduino -sagteware vir enige tydsberekening.

RTC -WENK: Die meeste sagteware wat vir DS1307 geskryf is, werk saam met die DS3231, aangesien dit baie soortgelyke sagteware het.

Dagligbesparingstyd

Ek wou DST implementeer, so ek hoef my lamp nie twee keer per jaar te herprogrammeer nie. Ek het etlike dae hieraan gewerk. Ek kon geen goeie eenvoudige verduidelikings vind oor hoe die Time, TimeLib en RTClib werk nie.

Ek het eintlik 'n paar DST -kode vir my IPClock geskryf:

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

dit werk vir internettyd, maar ek kon dit nie vir RTC -tyd laat werk nie.

Ek het uiteindelik die volgende deur JChristensen raakgeloop:

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

github.com/JChristensen/Timezone

Om dit te gebruik, moet u eers die RTC op UTC (Coordinated Universal Time) stel, dit is tyd in Greenwich, Engeland. Wel, ek het nie geweet hoe om dit te doen nie, maar het hierdie artikel gevind:

www.justavapor.com/archives/2482

Herskryf dit vir bergtyd (aangeheg) UTCtoRTC.ino

Toe neem ek die tydsone in my Sketch op. Om eerlik te wees, ek het dit nie getoets nie, net as ek aanvaar dat dit werk.

My skets is aangeheg MTS_BlueLamp.ino.

Stap 4: Gevolgtrekking

Afsluiting
Afsluiting

Ek het 'n klein haak aan die bokant gemaak vir my CPAP -gesigmasker. Ek het dit op my ou bedlamp gehang.

Eintlik baie gelukkig met hierdie lamp. Bedags heeltemal helder en geen blou in die aand en nag nie.

Een ding waarvan ek nie hou nie, is dat ek dit nie na 22:00 kan gebruik nie en voor 17:00

Ek het ook agtergekom dat ek nie die skakelaar aan/af gebruik nie, aangesien ek gewoonlik net die dimmer skakelaar gebruik.

In die toekoms kan ek die skets herskryf en die knoppie verander na 'n geskeduleerde of ongeskeduleerde (vol aan) skakelaar. Maar met my swak koderingsvaardighede kan ek 'n rukkie wag.

Aanbeveel: