Sisällysluettelo:

Herätysvalo: 7 vaihetta (kuvilla)
Herätysvalo: 7 vaihetta (kuvilla)

Video: Herätysvalo: 7 vaihetta (kuvilla)

Video: Herätysvalo: 7 vaihetta (kuvilla)
Video: Breakthrough: The Discovery of a Lifetime | Pastor Gregory Dickow 2024, Marraskuu
Anonim
Herätysvalo
Herätysvalo

Kun kirjoitan tämän ohjeen, pohjoisella pallonpuoliskolla on keskellä talvea ja se tarkoittaa lyhyitä päiviä ja pitkiä öitä. Olen tottunut nousemaan klo 06.00 ja kesällä aurinko paistaa silloin. Talvella kuitenkin tulee valoa klo 9.00, jos meillä on onni saada päivä, jolloin ei ole pilvistä (mikä on… ei usein).

Luin jonkin aikaa sitten Philipsin herätysvalosta, jota käytettiin Norjassa aurinkoisen aamun simuloimiseksi. En ole koskaan ostanut sellaista, mutta ajattelin tehdä sellaisen, koska sellaisen tekeminen itse on hauskempaa kuin pelkkä ostaminen.

Tarvikkeet:

Kuvakehys "Ribba" 50 x 40 cm IKEAsta

rei'itetty kovalevy rautakaupasta

STM8S103 -kehityskortti Ebayn tai muiden kautta

DS1307 reaaliaikainen kello (Mouser, Farnell, Conrad jne.)

32768 Hz kellokide (Mouser, Farnell, Conrad jne.)

3 V: n litium -satelliitti + satellinpidike

BUZ11 tai IRLZ34N N-kanavaiset MOSFETit (3x)

BC549 (tai mikä tahansa muu NPN -transistori)

niin monta valkoista, punaista, sinistä, vihreää jne. lediä kuin haluat

jotkut vastukset ja kondensaattorit (katso kaavio)

Powerbrick, 12V - 20V, 3A tai enemmän (esim. Vanha kannettavan virtalähde)

Vaihe 1: Helpota (hieman) nousemista

Helpottaa nousua (hieman)
Helpottaa nousua (hieman)

Ajatuksena on, että on vaikea nousta sängystä aamulla, kun on vielä pimeää. Ja jos asut lähellä tai jopa napapiirin yläpuolella, on pimeää hyvin pitkään. Joissakin paikoissa, kuten Tromssa Norjassa, se ei saa lainkaan valoa, sillä siellä aurinko laskee marraskuun puolivälissä vasta ilmestyäkseen uudelleen tammikuun puolivälissä.

Joten mitä Philips teki, simuloi auringon nousua.

Philips lisää hitaasti lampun kirkkautta, joka on todennäköisesti valmistettu useista ledeistä, mutta on piilotettu yhden hajottimen taakse. Niiden aika pois päältä täyteen kirkkauteen kestää 30 minuuttia.

Philipsin herätysvalot eivät ole kovin kalliita, mutta niissä on vain yksi väri ja se näyttää hieman pieneltä. Luulen, että voin tehdä paremmin.

Vaihe 2: Lisää värejä

Lisää väriä
Lisää väriä

Herätysvalo käyttää neljää väriä, valkoista, punaista, sinistä ja vihreää. Löydä ensin valkoiset ledit, sitten punaiset ja viimeiseksi muutama sininen ja vihreä led. Ajatukseni oli, että voisin simuloida paitsi kirkkauden kasvua myös aamuvalon värin siirtymistä aloittamalla hieman valkoisella, lisäämällä punaista hieman myöhemmin ja sekoittamalla lopuksi sinistä ja vihreää. En ole varma, että se todella muistuttaa todellista aamuvaloa, mutta pidän värikkäästä näytöstä sellaisena kuin se on nyt.

Omani on myös nopeampi kuin Philipsin herätysvalo, 30 minuutin Philips -valon sijasta minun valoni kirkastuu 0%: sta 100%: iin alle 5 minuutissa. Aurinkoni siis nousee paljon nopeammin.

HUOMAUTUS:

On erittäin vaikeaa ottaa kuvia herätysvalostani, kokeilin useilla kameroilla ja älypuhelimilla, mutta kaikki tekemäni kuvat eivät tee oikeutta.

Vaihe 3: Sigmoidikäyrä, välkkyminen ja "resoluutio"

Sigmoidikäyrä, välkkyminen ja
Sigmoidikäyrä, välkkyminen ja

Halusin tietysti tehdä kirkkaudesta mahdollisimman tasaisen. Ihmissilmät ovat logaritminen herkkyys, mikä tarkoittaa, että täydellisessä pimeydessä ne ovat herkempiä kuin päivänvalossa. Hyvin pieni kirkkauden lisäys alhaisilla tasoilla "tuntuu" samalta kuin paljon suurempi askel, kun valo on esimerkiksi 40% kirkkaus. Tämän saavuttamiseksi käytin erityistä Sigmoid-käyrää (tai S-käyrää). Tämä käyrä alkaa eksponentiaalisena käyränä, joka puolittuu jälleen. Huomasin, että se on erittäin mukava tapa lisätä (ja vähentää) intensiteettiä.

Mikro -ohjaimen (ja ajastimien) kellotaajuus on 16 MHz, ja käytän TIMER2: n (65536) maksimitarkkuutta kolmen pulssileveyssignaalin (PWM) luomiseen. Siksi pulssit tulevat 16000000/65536 = 244 kertaa sekunnissa. Se on paljon silmien rajan yläpuolella nähdäkseen välkkymistä.

Joten ledit syötetään PWM -signaalilla, joka on valmistettu tällä STM8S103 -mikrokontrollerin 16 -bittimeerisellä. Tämä PWM -signaali voi olla PÄÄLLÄ vähintään 1 pulssin pituinen ja jäljellä olevat 65535 pulssin pituudet pois päältä.

Joten siihen PM-signaaliin kytketyt ledit ovat sitten PÄÄLLÄ 1/65536-kertaan: 0,0015%

Suurimmillaan ne ovat päällä 65536/65536-kertaa ajasta: 100%.

Vaihe 4: Elektroniikka

Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka

Mikro -ohjain

Herätysvalon aivot ovat STMicroelectronicsin STM8S103 -mikrokontrolleri. Käytän mielelläni osia, joilla on juuri tarpeeksi valmiuksia työhön. Yksinkertaisen tehtävän vuoksi ei ole välttämätöntä käyttää STM32 -mikro -ohjaimia (muita suosikkejani), mutta Arduino UNO ei riittänyt, koska halusin kolme PWM -signaalia 16 -bittisellä resoluutiolla, eikä UNO: ssa ole ajastinta, jossa on kolme lähtökanavaa.

Reaaliaikainen kello

Aika luetaan DS1307 -reaaliaikaisesta kellosta, joka toimii 32768 Hz: n kiteellä ja jossa on 3 V: n vara -akku.

Kellonaika, päivä ja herätysaika asetetaan kahdella painikkeella ja 16 x 2 nestekidenäytöllä. Jotta makuuhuoneeni pysyisi todella pimeänä yöllä, nestekidenäytön taustavalo syttyy vain, kun ledit ovat kirkkaampia kuin taustavalo ja kun asetat ajan, päivän ja herätysajan.

Virta

Virta tulee vanhasta kannettavan tietokoneen virtalähteestä, kaivos tuottaa 12 V ja voi tuottaa 3A. Kun sinulla on toinen virtalähde, vastukset voidaan joutua säätämään sarjaan led-merkkijonojen kanssa. (Katso alempaa)

Ledit

Ledit on kytketty 12 V: n syöttöön, loput elektroniikasta toimivat 5 V: lla, ja ne on valmistettu lineaarisella 7805 -säätimellä. Kaaviossa sanotaan, että käytän TO220 -säädintä, jota ei tarvita, koska mikro, näyttö ja reaaliaikainen kello käyttävät vain muutamaa milliampeeria. Kelloni käyttää pienempää TO92 -versiota 7805, joka pystyy syöttämään 150 mA.

Led-merkkijonojen kytkentä tapahtuu N-kanavaisilla MOSFET-laitteilla. Jälleen kaaviossa se näyttää muita laitteita kuin minä. Minulla sattui olemaan tasan kolme hyvin vanhaa BUZ11 MOSFETia uudempien IRLZ34N MOSFETien sijaan. Ne toimivat hyvin

Tietenkin voit laittaa niin monta lediä kuin haluat, kunhan MOSFETit ja virtalähde kestävät virran. Kaaviossa olen piirtänyt vain yhden merkkijonon mitä tahansa väriä, todellisuudessa jokaista väriä on useita samanvärisiä muiden merkkijonojen kanssa.

Vaihe 5: Vastukset (ledit)

Vastukset (ledit)
Vastukset (ledit)

Tietoja led -merkkijonojen vastuksista. Valkoisten ja sinisten ledien jännite on yleensä 2,8 V.

Punaisissa ledeissä on vain 1,8 V, vihreissä ledeissäni on 2 V täydellä kirkkaudella.

Toinen asia on, että niiden koko kirkkaus ei ole sama. Joten kesti kokeilla tehdä niistä yhtä kirkkaita (silmiini). Tekemällä ledit yhtä kirkkaiksi täydellä kirkkaudella, ne näyttävät yhtä kirkkailta myös alemmilla tasoilla, pulssileveyssignaali kytkee ne aina täyteen kirkkauteen, mutta pidemmän ja lyhyemmän ajan aikana silmäsi huolehtivat keskiarvosta.

Aloita tällaisella laskelmalla. Virtalähde tuottaa (minun tapauksessani) 12V.

Neljä sarjassa olevaa valkoista lediä tarvitsevat 4 x 2,8 V = 11,2 V, jolloin vastukselle jää 0,8 V.

Olin huomannut, että ne olivat riittävän kirkkaita 30 mA: ssa, joten vastuksen on oltava:

0,8 / 0,03 = 26,6 ohmia. Kaaviossa näet, että laitoin 22 ohmin vastuksen, jolloin ledit olivat hieman kirkkaampia.

Siniset ledit olivat liian kirkkaita 30 mA: n jännitteellä, mutta verrattuna valkoisiin ledeihin 15 mA: n jännitteellä, heillä oli myös noin 2,8 V: n jännite 15 mA: n päällä, joten laskelma oli 4 x 2,8 V = 11,2 V.

0,8 / 0,015 = 53,3 ohmia, joten valitsin 47 ohmin vastuksen.

Punaiset LED -valoni tarvitsevat myös noin 15 mA: n tehon, jotka ovat yhtä kirkkaita kuin muut, mutta niiden virta on vain 1,8 V. Joten voisin laittaa enemmän sarjoja ja silti saada "tilaa" vastukselle.

Kuusi punaista lediä antoi minulle 6 x 1,8 = 10,8 V, joten vastuksen yli oli 12 - 10,8 = 1,2 V.

1,2 / 0,015 = 80 ohmia, tein sen 68 ohmiksi. Aivan kuten muutkin, hieman kirkkaampi.

Käyttämäni vihreät ledit ovat yhtä kirkkaita kuin muut noin 20mA. Tarvitsin vain muutaman (aivan kuten siniset) ja päätin laittaa neljä sarjaan. 20 mA: n jännitteellä niiden päällä on 2, 1 V, jolloin 3 x 2,1 = 8,4 V.

12 - 8.4 = 3.6V vastukselle. Ja 3,6 / 0,02 = 180 ohmia.

Jos rakennat tämän herätysvalon, on epätodennäköistä, että sinulla on sama virtalähde, joudut säätämään sarjaan kuuluvien ledien määrää ja tarvittavia vastuksia.

Pieni esimerkki. Oletetaan, että sinulla on virtalähde, joka antaa 20 V. Haluaisin asettaa 6 sinistä (ja valkoista) lediä sarjassa, 6 x 3V = 18 V, joten 2 V vastukselle. Ja sanotaan, että pidät kirkkaudesta 40 mA: ssa. Vastuksen on tällöin oltava 2 V / 0,04 = 50 ohmia, 47 ohmin vastus on hyvä.

Suosittelen, että tavallisten (5 mm) ledien kanssa ei saa mennä yli 50 mA. Jotkut pystyvät käsittelemään enemmän, mutta pidän turvallisuudesta.

Vaihe 6: Ohjelmisto

Kaikki koodit voi ladata osoitteesta:

gitlab.com/WilkoL/wakeup_light_stm8s103

pidä lähdekoodi avoimena tämän ohjeen muun osan vieressä, jos haluat seurata selitystä.

Main.c

Main.c määrittää ensin kellon, ajastimet ja muut oheislaitteet. Suurin osa "kuljettajista" kirjoitin STMicroelectronicsin vakiokirjastoa käyttäen, ja jos sinulla on kysyttävää niistä, kirjoita se ohjeen alle kommenttiin.

Eeprom

Jätin "teksti näytettäväksi" -koodin, jolla laitoin tekstejä STM8S103: n eepromiin kommentteina. En ollut varma, että minulla oli tarpeeksi flash -muistia kaikelle koodilleni, joten yritin laittaa mahdollisimman paljon eepromiin, jotta kaikki ohjelmat saisivat. Lopulta se ei osoittautunut tarpeelliseksi ja siirrän tekstin vilkkumaan. Mutta jätin sen kommentoiduksi tekstiksi main.c -tiedostossa. On mukava saada se, kun minun on tehtävä jotain vastaavaa myöhemmin (toisessa projektissa)

Eepromia käytetään edelleen, mutta vain herätysajan tallentamiseen.

Kerran sekunnissa

Oheislaitteiden asennuksen jälkeen koodi tarkistaa, onko sekunti kulunut (tehty ajastimella).

Valikko

Jos näin on, se tarkistaa, onko painiketta painettu. Jos näin on, se siirtyy valikkoon, jossa voit asettaa nykyisen ajan, viikonpäivän ja herätysajan. Muista, että siirtyminen täydestä kirkkaudesta kestää noin 5 minuuttia, joten aseta herätysaika hieman aikaisemmin.

Herätysaika tallennetaan eeprom -laitteeseen, joten se tietää myös sähkökatkon jälkeen, milloin herättää sinut. Nykyinen aika tallennetaan tietysti reaaliaikaiseen kelloon.

Vertaa nykyistä ja herätysaikaa

Kun mitään painiketta ei painettu, se tarkistaa nykyisen ajan ja vertaa sitä herätysaikaan ja viikonpäivään. En halua sen herättävän minua viikonloppuna:-)

Suurimman osan ajasta mitään ei tarvitse tehdä, joten se asettaa muuttujan "ledit" OFF -asentoon PÄÄLLÄ. Tämä muuttuja tarkistetaan yhdessä "change_intensity" -signaalin kanssa, joka tulee myös ajastimesta ja on aktiivinen 244 kertaa sekunnissa. Joten kun "led" -muuttuja on PÄÄLLÄ, intensiteetti kasvaa 244 kertaa sekunnissa ja kun se on POIS, laskee 244 kertaa sekunnissa. Mutta lisäys tapahtuu yksittäisinä vaiheina, joissa lasku on 16 askelta, mikä tarkoittaa, että kun herätysvalo on toivottavasti tehnyt tehtävänsä, se sammuu 16 kertaa nopeammin, mutta silti tasaisesti.

Tasaisuus ja MUISTI

Tasaisuus tulee Sigmoid -käyrän laskennasta. Laskenta on melko yksinkertainen, mutta se on tehtävä liukuluku muuttujissa (tupla), koska exp () -toiminto, katso tiedosto sigmoid.c.

Vakiotilanteessa Cosmic -kääntäjällä / linkkerillä ei ole tukea liukulukujen muuttujille. Sen kytkeminen päälle on helppoa (kun olet löytänyt sen), mutta se lisää koodin kokoa. Tämä lisäys oli liikaa, jotta koodi mahtuisi flash -muistiin yhdistettynä sprintf () -toimintoon. Ja tätä toimintoa tarvitaan numeroiden muuntamiseen näytön tekstiksi.

Itoa ()

Tämän ongelman ratkaisemiseksi loin itoa () -funktion. Tämä on kokonaisluku Ascii -funktio, joka on melko yleinen, mutta ei sisälly STMicroelectronics -vakiokirjastoon eikä kosmisiin kirjastoihin.

Vaihe 7: IKEA (mitä tekisimme ilman niitä)

IKEA (mitä tekisimme ilman niitä)
IKEA (mitä tekisimme ilman niitä)
IKEA (mitä tekisimme ilman niitä)
IKEA (mitä tekisimme ilman niitä)
IKEA (mitä tekisimme ilman niitä)
IKEA (mitä tekisimme ilman niitä)

Kuva on ostettu IKEAsta. Se on ribbikehys, jonka koko on 50 x 40 cm. Tämä kehys on melko paksu ja tekee siitä erinomaisen elektroniikan piilottamiseen sen taakse. Julisteen tai kuvan sijasta laitoin palan rei'itettyä kovalevyä. Voit ostaa sen rautakaupasta, jossa sitä joskus kutsutaan”sängynlautaksi”. Siinä on pieniä reikiä, jotka tekivät siitä ihanteellisen ledien asentamiseen. Valitettavasti levyn reiät olivat hieman suurempia kuin 5 mm, joten jouduin käyttämään kuumaliimaa LEDien asentamiseen.

Tein suorakulmaisen reiän kovalevyn keskelle 16x2 näyttöä varten ja painoin sen sisään. Piirilevy, jossa on kaikki elektroniikka, riippuu tästä näytöstä, sitä ei ole kiinnitetty mihinkään muuhun.

Rei'itetty kovalevy oli maalattu mustalla ruiskulla ja maton takana. Porasin kehykseen kaksi reikää painikkeita varten kellonajan ja päivämäärän asettamiseksi, koska kehys on melko paksu, jouduin laajentamaan kehyksen sisäpuolella olevia reikiä, jotta painikkeet saisivat tarpeeksi ulos.

Suositeltava: