Sisukord:
- Samm: muutke (veidi) üles tõusmine lihtsamaks
- Samm: rohkem värvi
- Samm: Sigmoidkõver, vilkumine ja eraldusvõime
- 4. samm: elektroonika
- Samm: takistid (LED -ide jaoks)
- 6. samm: tarkvara
- Samm: IKEA (mida me teeksime ilma nendeta)
Video: Äratustuli: 7 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Seda õpetlikku kirjutades on põhjapoolkeral talve keskel ja see tähendab lühikesi päevi ja pikki öid. Olen harjunud tõusma kell 06:00 ja suvel hakkab päike selleks ajaks paistma. Talvel hakkab aga kell 09:00 valgust tulema, kui meil veab, et meil on päev, mil pole pilves (mis on… mitte sageli).
Mõni aeg tagasi lugesin Philipsi valmistatud “äratustulest”, mida kasutati Norras päikeselise hommiku simuleerimiseks. Ma ei ostnud seda kunagi, kuid mõtlesin selle tegemisele pidevalt, sest ise valmistamine on lõbusam kui lihtsalt ostmine.
Tarvikud:
Pildiraam "Ribba" 50 x 40 cm IKEAst
perforeeritud puitkiudplaat ehituspoest
STM8S103 arendusplaat Ebay või teiste kaudu
DS1307 reaalajas kell (Mouser, Farnell, Conrad jne)
32768 Hz kellakristall (Mouser, Farnell, Conrad jne)
3V liitium -samaaegne + samaaegne hoidik
BUZ11 või IRLZ34N N-kanaliga MOSFET-id (3x)
BC549 (või mõni muu NPN -transistor)
nii palju valgeid, punaseid, siniseid, rohelisi jne LED -e kui soovite
mõned takistid ja kondensaatorid (vt skeemi)
Powerbrick, 12V kuni 20V, 3A või rohkem (nt vana sülearvuti toiteallikas)
Samm: muutke (veidi) üles tõusmine lihtsamaks
Mõte on selles, et hommikul, kui on veel pime, on raske voodist tõusta. Ja kui elate polaarjoone lähedal või isegi sellest kõrgemal, on pime väga kaua. Sellistes kohtades nagu Tromsö Norras ei saa üldse valgust, sest seal loojub päike pool novembrit ja ilmub alles poolel teel Januari.
Niisiis, mida Philips tegi, oli päikese tõusu simuleerimine.
Philips suurendab aeglaselt lambi heledust, mis on tõenäoliselt valmistatud mitme valgusdioodiga, kuid on peidetud ühe hajuti taha. Nende aeg täieliku heleduseni võtab 30 minutit.
Philipsi äratustuli ei ole nii kallis, kuid sellel on ainult üks värv ja see tundub natuke väike. Arvan, et saan paremini hakkama.
Samm: rohkem värvi
Minu äratustuli kasutab nelja värvi, valget, punast, sinist ja rohelist. Esmalt leidke valged LED -id, seejärel punased ja viimased paar sinist ja rohelist LED -i. Minu idee oli, et ma saan simuleerida mitte ainult heleduse suurenemist, vaid ka hommikuse valgusvärvi nihkumist, alustades natuke valgest, lisades veidi hiljem punase ja lõpuks segades sinise ja rohelise. Ma pole kindel, kas see tegelikult meenutab tegelikku hommikuvalgust, kuid mulle meeldib värvikas ekraan sellisena, nagu see praegu on.
Minu oma on ka kiirem kui Philipsi äratustuli, 30 -minutilise Philipsi valguse asemel läheb minu valgustugevus 0% -lt 100% -ni vähem kui 5 minutiga. Nii et mu päike tõuseb palju kiiremini.
MÄRGE:
Äratusvalgusest on VÄGA raske pilte teha, proovisin mitme kaamera ja nutitelefoniga, kuid kõik tehtud pildid ei tee tõelist õiglust.
Samm: Sigmoidkõver, vilkumine ja eraldusvõime
Loomulikult tahtsin heleduse muuta võimalikult sujuvaks. Inimese silmad on logaritmilise tundlikkusega, mis tähendab, et täielikus pimeduses on nad tundlikumad kui päevavalguses. Väga väike heleduse tõus madala taseme korral tundub sama, mis palju suurem samm, kui valguse heledus on 40%. Selle saavutamiseks kasutasin spetsiaalset kõverat nimega Sigmoid (või S-kõver), see kõver algab eksponentsiaalse kõverana, mis taas pooleldi tasandub. Leidsin, et see on väga tore viis intensiivsuse suurendamiseks (ja vähendamiseks).
Mikrokontrolleri (ja taimerite) taktsagedus on 16 MHz ja kolme impulsi laiuse signaali (PWM) loomiseks kasutan maksimaalset eraldusvõimet TIMER2 (65536). Seetõttu tulevad impulsid 16000000/65536 = 244 korda sekundis. See on kaugelt üle silmade piiri, et näha vilksatust.
Seega toidetakse LED -e PWM -signaaliga, mis on valmistatud selle 16 -bitise STM8S103 mikrokontrolleri abil. See PWM -signaal võib olla sisse lülitatud vähemalt 1 impulsi pikkune ja ülejäänud 65535 impulssipikkus välja lülitatud.
Nii et selle PM-signaaliga ühendatud LED-id lülituvad sisse 1/65536-ndast ajast: 0,0015%
Maksimaalselt on need sisse lülitatud 65536/65536-ndal ajast: 100%.
4. samm: elektroonika
Mikrokontroller
Äratuslambi aju on STM8S103 mikrokontroller ettevõttelt STMicroelectronics. Mulle meeldib kasutada osi, millel on tööks piisavalt võimalusi. Sellise lihtsa ülesande jaoks ei ole vaja kasutada STM32 mikrokontrollereid (minu teised lemmikud), kuid Arduino UNO -st ei piisanud, kuna soovisin kolme 16 -bitise eraldusvõimega PWM -signaali ja UNO -l pole kolme väljundkanaliga taimerit.
Reaalajas kell
Aega loetakse reaalajas kellast DS1307, mis töötab 32768 Hz kristalliga ja millel on 3V varupatarei.
Praeguse kellaaja, päeva ja äratusaja seadistamine toimub kahe nupuga ja kuvatakse 16 x 2 LCD -ekraaniga. Et mu magamistuba oleks öösel tõeliselt pime, lülitatakse LCD -ekraani taustavalgustus sisse ainult siis, kui LED -id on heledamad kui taustvalgus ning kui seadistate kellaaega, päeva ja ärkamisaega.
Võimsus
Toide pärineb vanast sülearvuti toiteallikast, minu toodab 12 V ja suudab toita 3A. Kui teil on mõni muu toiteallikas, võib osutuda vajalikuks takistite järjestikune reguleerimine LED-nööridega. (Vaata allpool)
Led
LEDid on ühendatud 12 V toiteallikaga, ülejäänud elektroonika töötab 5 V toitel, mis on valmistatud lineaarse regulaatoriga 7805. Skeemil on öeldud, et kasutan TO220 regulaatorit, mida pole vaja, kuna mikrokontroller, ekraan ja reaalajas kell kasutavad vaid mõnda milliampi. Minu kell kasutab 7805 väiksemat TO92 versiooni, mis suudab toita 150 mA.
Led-stringide vahetamine toimub N-kanaliga MOSFET-ide abil. Jällegi näitab see skeemil muid seadmeid kui mina. Mul juhtus olema uuemate IRLZ34N MOSFETide asemel täpselt kolm väga vana BUZ11 MOSFET -i. Nad töötavad hästi
Muidugi saate sisestada nii palju LED -e kui soovite, kui MOSFET -id ja toiteplokk suudavad voolu taluda. Skeemil olen joonistanud ainult ühe mis tahes värvi stringi, tegelikkuses on mitu värvi paralleelselt selle värvi teiste stringidega.
Samm: takistid (LED -ide jaoks)
LED -stringide takistite kohta. Valgete ja siniste LED -ide pinge on tavaliselt täisheleduse korral üle 2,8 V.
Punastel LED -idel on vaid 1,8 V, minu rohelistel LEDidel on täisvärv üle 2 V.
Teine asi on see, et nende täielik heledus pole sama. Seega kulus natuke katsetamist, et need (minu silmis) võrdselt heledad oleksid. Kui muudate LED -id täisheleduse korral võrdselt heledateks, näevad need ka madalamal tasemel võrdselt heledad välja, impulsi laiuse signaal lülitab need alati täie heledusega sisse, kuid pikema ja lühema aja jooksul hoolitsevad teie silmad keskmistamise eest.
Alustage sellise arvutusega. Toiteallikas annab (minu puhul) 12V.
Neli valget LED -i järjestikku vajavad 4 x 2,8V = 11,2V, see jätab takistile 0,8V.
Olin avastanud, et need olid 30mA juures piisavalt heledad, nii et takisti peab olema:
0,8 / 0,03 = 26,6 oomi. Skeemil näete, et panin sisse 22 oomi takisti, muutes LED -id veidi heledamaks.
Sinised valgusdioodid olid 30 mA juures liiga heledad, kuid võrreldes valgete LED -idega 15 mA juures olid neil ka umbes 2,8 V 15 mA juures, nii et arvutus oli 4 x 2,8 V = 11,2 V, jättes uuesti 0,8 V
0,8 / 0,015 = 53,3 oomi, nii et valisin 47 oomi takisti.
Minu punased LED -id peavad samuti olema umbes 15 mA, et need oleksid sama heledad kui teised, kuid neil on sellel voolul ainult 1,8 V. Nii et ma võiksin rohkem seeriaid panna ja takisti jaoks oleks veel ruumi.
Kuus punast LED -i andsid mulle 6 x 1,8 = 10,8 V, seega oli takisti kohal 12 - 10,8 = 1,2 V.
1,2 / 0,015 = 80 oomi, tegin sellest 68 oomi. Nii nagu teisedki, natuke heledamad.
Rohelised LED -id, mida ma kasutasin, on sama eredad kui teised umbes 20 mA juures. Mul oli vaja vaid mõnda (täpselt nagu siniseid) ja valisin neli järjestikku. 20 mA juures on neil 2, 1 V üle, andes 3 x 2,1 = 8,4 V.
12 - 8,4 = 3,6 V takisti jaoks. Ja 3,6 / 0,02 = 180 oomi.
Kui ehitate selle äratustuli, on ebatõenäoline, et teil on sama toiteallikas, peate reguleerima jadade arvu ja vajalikke takistusi.
Väike näide. Oletame, et teil on 20 V toiteallikas. Ma valiksin seadistada 6 sinist (ja valget) LED -i järjestikku, 6 x 3 V = 18 V, seega 2 V takisti jaoks. Ja ütleme, et teile meeldib heledus 40 mA juures. Takisti peab siis olema 2V / 0,04 = 50 oomi, 47 oomi takisti sobib.
Soovitan tavaliste (5 mm) LED -idega mitte minna kõrgemale kui 50 mA. Mõni saab rohkem hakkama, aga mulle meeldib olla ohutu.
6. samm: tarkvara
Kogu koodi saab alla laadida siit:
gitlab.com/WilkoL/wakeup_light_stm8s103
kui soovite selgitust järgida, hoidke lähtekood ülejäänud juhendatava kõrval.
Main.c
Main.c seadistab kõigepealt kella, taimerid ja muud välisseadmed. Enamik “draivereid” kirjutasin STMicroelectronics'i standardraamatukogu abil ja kui teil on nende kohta küsimusi, kirjutage see juhendi all olevasse kommentaari.
Eeprom
Jätsin koodi „tekst kuvamiseks”, mida kasutasin tekstide lisamiseks STM8S103 eepromi kommentaaridena. Ma ei olnud kindel, kas mul on kogu koodi jaoks piisavalt välkmälu, nii et proovisin eepromi panna nii palju kui võimalik, et programmi jaoks kõik välk oleks. Lõpuks ei osutunud see vajalikuks ja kolisin teksti vilkuma. Aga ma jätsin selle main.c -faili kommenteeritud tekstina. See on tore, kui mul on vaja midagi sarnast hiljem teha (teises projektis)
Eepromi kasutatakse endiselt, kuid ainult ärkamisaja salvestamiseks.
Kord sekundis
Pärast välisseadmete seadistamist kontrollib kood, kas üks sekund on möödas (taimeriga).
Menüü
Kui see nii on, kontrollib see, kas nuppu on vajutatud, kui see nii on, siseneb see menüüsse, kus saate määrata praeguse kellaaja, nädalapäeva ja äratusaja. Pidage meeles, et täieliku heleduse saavutamiseks kulub umbes 5 minutit, seega seadistage äratusaeg veidi varem.
Äratusaeg salvestatakse eepromi, nii et isegi pärast voolukatkestust ta teaks, millal teid äratada. Praegune aeg salvestatakse loomulikult reaalajas kellale.
Praeguse ja ärkamisaja võrdlus
Kui ühtegi nuppu ei vajutatud, kontrollib see praegust aega ning võrdleb seda ärkamisaja ja nädalapäevaga. Ma ei taha, et see mind nädalavahetusel ärataks:-)
Enamasti ei ole vaja midagi teha, nii et see määrab muutuja "LED -id" olekuks OFF, muidu ON. Seda muutujat kontrollitakse koos signaaliga „change_intensity”, mis tuleb samuti taimerilt ja on aktiivne 244 korda sekundis. Seega, kui muutuja „ledid” on sees, suureneb intensiivsus 244 korda sekundis ja kui see on välja lülitatud, väheneb see 244 korda sekundis. Kuid suurenemine toimub üksikute sammudena, kus vähenemine toimub 16 sammu võrra, mis tähendab, et kui äratustuli on loodetavasti oma töö teinud, lülitub see välja 16 korda kiiremini, kuid siiski sujuvalt.
Siledus ja MÄLU VÄLJAS
Siledus tuleneb Sigmoidi kõvera arvutamisest. Arvutamine on üsna lihtne, kuid funktsiooni exp () tõttu tuleb seda teha ujukoma muutujate (kahekordistustega), vt faili sigmoid.c.
Standardolukorras ei toeta kosmilist kompilaatorit / linkerit ujukoma muutujate jaoks. Selle sisselülitamine on lihtne (kui olete selle leidnud), kuid see suurendab koodi suurust. See suurenemine oli liiga suur, et muuta kood välkmällu sobivaks, kui seda kombineerida funktsiooniga sprintf (). Ja seda funktsiooni on vaja numbrite teisendamiseks ekraani tekstiks.
Itoa ()
Selle probleemi lahendamiseks lõin funktsiooni itoa (). See on Integer To Ascii funktsioon, mis on üsna tavaline, kuid ei sisaldu STMicroelectronics standardraamatukogus ega kosmilistes raamatukogudes.
Samm: IKEA (mida me teeksime ilma nendeta)
Pilt on ostetud IKEAst. See on Ribba raam 50 x 40 cm. See raam on üsna paks ja teeb selle suurepäraseks elektroonika taga peitmiseks. Plakatite või piltide asemel panin sisse perforeeritud puitkiudplaadi. Saate seda osta ehituspoest, kus seda mõnikord nimetatakse voodiplaadiks. Sellel on väikesed augud, mis muutis selle ideaalseks LED -ide paigaldamiseks. Kahjuks olid minu plaadi augud veidi suuremad kui 5 mm, nii et pidin ledide paigaldamiseks kasutama kuuma liimi.
Tegin 16x2 ekraani jaoks tahke plaadi keskele ristkülikukujulise augu ja vajutasin selle sisse. Trükkplaat koos kogu elektroonikaga ripub sellel ekraanil, seda ei kinnitata millelegi muule.
Perforeeritud puitkiudplaat värviti pihustiga mustaks, kuid mati taga. Puurisin raami sisse kaks auku nuppude jaoks kellaaja ja kuupäeva seadmiseks, kuna raam on üsna paks, pidin raami sisemuses olevaid auke laiendama, et nööbid piisavalt välja paistaksid.
Soovitan:
Suure võimsusega LED-äratustuli (+/- 15W): 5 sammu
Suure võimsusega LED-i äratustuli (+/- 15W): *2020 muutmismärkus: esiteks ei kasuta ma enam ventilaatorit ja see tundub korras. Läheb kuumaks, aga midagi pole veel ära põlenud. Mõne uue teadmisega ja kuna need LED -id on nii mustad odavad, kasutaksin rohkem kui ainult 2 ja lisan mõned 3W üksikud LED -id
Kuidas: Raspberry PI 4 peata (VNC) installimine RPI-pildistaja ja piltidega: 7 sammu (koos piltidega)
Kuidas: Raspberry PI 4 peata (VNC) installimine Rpi-pildistaja ja piltidega: kavatsen seda Rapsberry PI-d kasutada oma blogis hunniku lõbusate projektide jaoks. Vaadake seda julgelt. Tahtsin uuesti oma Raspberry PI kasutamist alustada, kuid mul polnud uues asukohas klaviatuuri ega hiirt. Vaarika seadistamisest oli tükk aega möödas
Atari punkkonsool beebiga 8 sammu järjestus: 7 sammu (piltidega)
Atari punkkonsool koos beebi 8-astmelise sekveneerijaga: see vaheehitus on kõik-ühes Atari punk-konsool ja beebi 8-astmeline järjestus, mida saate freesida Bantam Tools töölaua PCB-freespingis. See koosneb kahest trükkplaadist: üks on kasutajaliidese (UI) plaat ja teine on utiliit
Lihtne äratus: nutikas äratustuli, mis on valmistatud Raspberry Pi-ga: 6 sammu
Lihtne äratus: nutikas äratustuli, mis on valmistatud Raspberry Pi-ga: Sissejuhatus Õppekava projekti1 jaoks pidin midagi tegema. Ma olin alati lummatud sellest, kuidas selline äratustuli aitab teil ärgata nagu Philipsi oma. Nii otsustasin teha äratustuli. Tegin äratustuli Raspberriga
Arvuti demonteerimine lihtsate sammude ja piltidega: 13 sammu (piltidega)
Arvuti demonteerimine lihtsate sammude ja piltidega: see on juhis arvuti demonteerimiseks. Enamik põhikomponente on modulaarsed ja kergesti eemaldatavad. Siiski on oluline, et oleksite selles osas organiseeritud. See aitab vältida osade kaotamist ja ka kokkupanekut