Turinys:

Nėra mėlynos lempos: 4 žingsniai
Nėra mėlynos lempos: 4 žingsniai

Video: Nėra mėlynos lempos: 4 žingsniai

Video: Nėra mėlynos lempos: 4 žingsniai
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Liepa
Anonim
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos
Nėra mėlynos lempos

Taigi šis tingus senas geikas (L. O. G.) dirbo prie mėlynos šviesos projekto:

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

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

Na, kitam žingsniui norėjau lempos, kuri dieną būtų ryški, o vakare/naktį - be mėlynos šviesos.

Dizainas:

Nusprendžiau naudoti RTC (realiojo laiko laikrodį), kad galėčiau kontroliuoti šviesos pokyčių laiką.

Aš pasirinkau DS3231, nes jis laiko tikslumą geriau nei DS1307. DS3231 gali būti 5v arba 3.3v.

Šviesai naudosiu WS2812B LED eilutę. Jie turi paprastą trijų laidų sąsają ir valdomus raudonus, žalius ir mėlynus šviesos diodus. WS2812B yra 5 V įrenginiai.

Mikrovaldikliui naudosiu „Pro Micro“, 5v 16MHz.

Nors WS2812B tikriausiai veiks su 3.3V, geriau naudoti 5V „Arduino“.

„Pro Micro“yra pigus „Arduino“, naudojant „Atmega32U4“mikrovaldiklį.

Lemputėje bus įjungimo/išjungimo jungiklis, skirtas lempai įjungti arba išjungti.

Bus potenciometras ryškumui valdyti.

Projektavimo programinė įranga:

„DS3231 RTC“valdytų laiką, jis turi baterijos atsarginę kopiją, todėl turėtų išlaikyti laiką net ir dingus energijai.

Dienos metu visi RGB šviesos diodai būtų įjungti ir valdomi puodu iki viso intensyvumo.

Anksti vakare mėlyni šviesos diodai užges, raudona ir žalia degs maks.

Artėjant vakarui, raudonos ir žalios šviesos diodai išnyks, pirmenybė teikiama raudonai, o ne žaliai (mano 2 dalyje atlikti bandymai rodo, kad žaliuose šviesos dioduose yra mėlynos spalvos).

Po maždaug 10 val. visi šviesos diodai bus išjungti.

PROBLEMA:

Grįžtant prie DS3231 RTC modulio, aš nusipirkau savo iš „Aliexpress“, kaip ir kitus komponentus.

Jie turėtų dirbti su įkraunama baterija LIR2032 ir įkrauti ją. Išbandžiau. Maždaug po paros baterija buvo išsikrovusi.

Na, šiek tiek ieškojęs internete, radau šį straipsnį.

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

Sutinku su šia analize, bet maniau, kad LIR2032 įkraus tinkamai, bet ne per daug. Matyt klydau. Mano DS3231, nors taip pat pažymėtas kaip ZS-042, kaip ir straipsnyje, buvo šiek tiek kitoks nei jo, bet beveik tas pats. Taigi išlydžiau paveikslėlyje matomą diodą ir įdėjau CR2032 bateriją. Be diodo modulis nebandys įkrauti akumuliatoriaus. Dabar DS3231 laiko tinkamą laiką net ir atjungęs maitinimą, o baterija turėtų būti gera daugelį metų.

Galios reikalavimai:

„WS2812B“yra eilutė RGB šviesos diodų, kartais vadinamų „NeoPixels“. Kiekvienam „NeoPixel“reikia ne daugiau kaip 60 mA. Aš naudoju 12 „Neo Pixels“, todėl reikia 0,72A. Aš naudoju 2A USB adapterį, todėl turiu daug srovės.

1 žingsnis: „BlueLamp“PCB

„BlueLamp“PCB
„BlueLamp“PCB
„BlueLamp“PCB
„BlueLamp“PCB

Taigi, kaip paprastai darau, aš naudoju nemokamą „Eagle Cadsoft“programinę įrangą (dabar „Autodesk“), norėdamas išdėstyti ir sukurti savo PCB.

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

Eagle schema ir lentos failai pridedami kartu su schema paveikslėlyje.

Vienas komentaras apie schemą, 330 omų rezistorius ir 10 000uFd kondensatorius yra „Adafruit“neopikselių vadovo rekomendacijos:

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

Perjungimo mygtukas, kurį naudoju „Žibintuvėlio mygtuko jungiklis“, buvo iš čia:

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

10K (B103) potenciometras iš čia:

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

2 žingsnis: lempos surinkimas

Lempos surinkimas
Lempos surinkimas
Lempos surinkimas
Lempos surinkimas

Atsitiktinai turėjau sunkų pagrindą iš įsigytos lempos. Ant jo buvo didelis apvalus kaištis. Aš paėmiau PVC vamzdžio gabalą, kuris jam tinka. Jis buvo šiek tiek laisvas, todėl paėmiau varžtą ir porą veržlių, kad galėčiau jį priveržti. (žr. paveikslėlį)

„WS2812B“galima supjaustyti į norimą „NeoPixels“skaičių. Juostelė, kurią nusipirkau, turi plačius tarpus tarp „NeoPixels“. Norėjau, kad jis būtų šiek tiek ryškesnis, todėl nukirpau dvi 6 „NeoPixel“juosteles ir lygiagrečiai jas šiek tiek pakreipiau. WS2812B juosteles galima pjauti tarp „NeoPixels“. Šiuo atveju man reikėjo 180 laipsnių pakeitimo, todėl perpjoviau juostelę ir pravedžiau trumpiklius. Jei kada nors tai padarysite, įsitikinkite, kad signalai ir krypties rodyklės yra teisingos. (Žr. Paveikslėlį)

Šis WS2812B taip pat turi laidus ir jungtį (ši jungtis yra JST-SM 3 kontaktų jungtis, jei norite ją naudoti kitur). Kadangi ši jungtis jau buvo, aš tiesiog lituosiu laidus prie savo PCB. Šiam WS2812B raudonas laidas yra 5 V, žalias yra signalas, o baltas yra įžemintas.

Kai padariau PCB, uždėjau juostą ant dugno ir priklijavau prie pagrindo. Tada prijungiau „Pro Micro“ir DS3231.

3 žingsnis: „Arduino“eskizas

Arduino eskizas
Arduino eskizas

Nors „Pro Micro“įsigijau iš „Aliexpress.com“, norėdamas, kad „Arduino“pradėtų veikti, naudojau šią informaciją:

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

Norėdami įdiegti DS3231 biblioteką, naudoju šią:

github.com/PaulStoffregen/DS1307RTC

Atsisiųskite ZIP failą

Atidarykite „Arduino“, pasirinkite „Eskizas“„Įtraukti biblioteką“„Pridėti.zip biblioteką“

Įdiekite toliau nurodytą metodą naudodami tą patį metodą

Laiko biblioteka PaulStoffregen

github.com/PaulStoffregen/Time

Laiko juostos biblioteka

github.com/JChristensen/Timezone

Baigę paleiskite „Arduino“.

Įrankių lentose pasirinkite „Sparkfun Pro Micro“

Dar kartą spustelėkite Įrankiai, bus pasirinktas procesorius

Jums gali tekti pakeisti „Atmega32U4 (5V 16Mhz)“

ĮSPĖJIMAS: Jei esate neatsargus kaip aš, per klaidą pasirinkau „Atmega32U4 (3.3V 8Mhz)“. Tai „užmūrijo“, kad „Arduino“to nematytų. Na, aš paprastai bandau perskaityti naujus dalykus prieš tai, kai juos gavau ir prisiminiau kažką apie tai, kas įvyko:

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

Šiame vadove yra skyrius „Kaip atgaivinti„ Bricked “Pro Micro“Kaip minėta, tai sudėtinga procedūra, tačiau man pavyko atkurti savo.

FYI: Jei jums įdomu, kodėl yra dvi versijos, turinčios skirtingą įtampą ir greitį, „Atmega32U4“(tas pats kaip „Atmega328“) veiks gerai esant 5 V įtampai su 16 MHz dažniu. Bet esant 3,3 V konstrukcijos specifikacijai sakoma, kad 16MHz laikrodis neveiks, todėl jie turi 8MHz dažnį. Paprastai „Arduino“programinė įranga išspręs visas laiko problemas.

RTC PATARIMAS: Dauguma programinės įrangos, parašytos DS1307, veiks su DS3231, nes jos turi labai panašią programinę įrangą.

Vasaros laikas

Na, aš norėjau įdiegti DST, todėl man nereikėjo du kartus per metus perprogramuoti lempos. Prie to dirbau kelias dienas. Neradau jokių gerų paprastų paaiškinimų, kaip veikė „Time“, „TimeLib“ir „RTClib“.

Aš iš tikrųjų parašiau savo IPClock DST kodą:

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

tai veikė interneto laiką, bet aš negalėjau priversti jo veikti RTC laiko.

Pagaliau susidūriau su JChristensen:

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

github.com/JChristensen/Timezone

Norėdami tai naudoti, pirmiausia turite nustatyti RTC į UTC (Coordinated Universal Time), tai laikas Grinviče, Anglijoje. Na, nežinojau, kaip tai padaryti, bet radau šį straipsnį:

www.justavapor.com/archives/2482

Perrašė jį Kalnų laiku (pridedama) UTCtoRTC.ino

Tada aš įtraukiau laiko juostą į savo eskizą. Tiesą pasakius, aš to neišbandžiau, todėl tik darau prielaidą, kad tai veikia.

Mano eskizas pridedamas MTS_BlueLamp.ino.

4 žingsnis: Išvada

Išvada
Išvada

Viršuje padariau nedidelį kabliuką savo CPAP veido kaukei. Anksčiau jį kabindavau ant senos lovos lempos.

Iš esmės labai džiaugiuosi šia lempa. Dieną visiškai šviesu, o vakare ir naktį nėra mėlynos spalvos.

Vienas dalykas, kuris man nepatinka, yra tai, kad negaliu juo naudotis po 22 val. ir prieš 5 val.

Taip pat pastebėjau, kad nenaudoju įjungimo/išjungimo jungiklio, nes paprastai naudoju tik apšvietimo reguliatorių.

Ateityje galiu perrašyti eskizą ir pakeisti mygtuką į suplanuotą arba neplanuotą (visiškai įjungtą) jungiklį. Bet turėdamas prastus kodavimo įgūdžius, galiu šiek tiek palaukti.

Rekomenduojamas: