INHOUDSOPGAWE:
- Stap 1: Maak dit ('n bietjie) makliker om op te staan
- Stap 2: Meer kleur
- Stap 3: Sigmoid -kromme, flikkering en 'resolusie'
- Stap 4: Elektronika
- Stap 5: Weerstands (vir die Leds)
- Stap 6: sagteware
- Stap 7: IKEA (wat sou ons sonder hulle doen)
Video: Wakeup Light: 7 stappe (met foto's)
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:23
Terwyl ek hierdie instruksies skryf, is dit middel winter in die noordelike halfrond en dit beteken kort dae en lang nagte. Ek is gewoond om 06:00 op te staan en in die somer sal die son dan skyn. In die winter word dit egter om 09:00 lig as ons gelukkig is dat dit nie bewolk is nie (wat nie gereeld is nie).
'N Tyd gelede lees ek oor 'n' weklamp 'wat deur Philips gemaak is, wat in Noorweë gebruik is om 'n sonnige oggend na te boots. Ek het nooit een gekoop nie, maar ek het gedink om een te maak, want dit is lekkerder om dit self te maak as om dit net te koop.
Benodighede:
Prentraam "Ribba" 50 x 40 cm van IKEA
geperforeerde hardebord van die hardewarewinkel
STM8S103 ontwikkelingsbord via Ebay of ander
DS1307 Real Time Clock (Mouser, Farnell, Conrad, ens.)
32768 Hz horlosiekristal (Mouser, Farnell, Conrad, ens.)
3V litium coincell + coincell holder
BUZ11 of IRLZ34N N-kanaal MOSFET's (3x)
BC549 (of enige ander NPN -transistor)
soveel wit, rooi, blou, groen, ens, as u wil
sommige weerstande en kapasitors (sien skematiese)
Powerbrick, 12V tot 20V, 3A of meer (bv. Ou skootrekenaarvoeding)
Stap 1: Maak dit ('n bietjie) makliker om op te staan
Die idee is dat dit moeilik is om soggens uit die bed te kom as dit nog donker is. En as jy naby of selfs bokant die arktiese sirkel woon, sal dit baie lank donker wees. Op plekke soos Tromsö in Noorweë sal dit glad nie lig word nie, want daar sak die son half November net om weer half Januarie weer te verskyn.
Wat Philips dus gedoen het, was om die opkoms van die son te simuleer.
Philips verhoog die helderheid van 'n lamp stadig, wat waarskynlik met verskeie LED's gemaak is, maar weggesteek is agter 'n enkele diffuser. Hulle tyd van af tot volle helderheid duur 30 minute.
Die weklampe van Philips is nie so duur nie, maar dit het net 'n enkele kleur en dit lyk 'n bietjie klein. Ek dink ek kan beter doen.
Stap 2: Meer kleur
My wakker lig gebruik vier kleure, wit, rooi, blou en groen. Kom eers by die wit leds, dan by die rooies, en laas 'n paar blou en groen leds. My idee was dat ek nie net die toename in helderheid kon simuleer nie, maar ook die verskuiwing van die oggendligkleur, deur te begin met 'n bietjie wit, 'n bietjie later in rooi by te voeg en uiteindelik blou en groen in te meng. Ek is nie seker of dit eintlik lyk soos die werklike oggendlig nie, maar ek hou van die kleurryke skerm soos dit nou is.
Myne is ook vinniger as die wakkerlig van Philips, in plaas van die 30 minute van die Philips -lig, gaan myne in minder as 5 minute van 0% tot 100% helderheid. So kom my son baie vinniger op.
LET WEL:
Dit is baie moeilik om foto's van my wakker lig te maak; ek het probeer met verskeie kamera's en slimfone, maar alle foto's wat ek gemaak het, doen nie die regte saak nie.
Stap 3: Sigmoid -kromme, flikkering en 'resolusie'
Natuurlik wou ek die verheldering so glad as moontlik maak. Menslike oë is logaritmies in sensitiwiteit, wat beteken dat hulle in totale duisternis meer sensitief is as in die daglig. 'N Baie klein toename in helderheid as die vlakke laag is, "voel" dieselfde as 'n baie groter stap as die lig ongeveer 40% helder is. Om dit te bereik, gebruik ek 'n spesiale kromme genaamd Sigmoid (of S-kromme), hierdie kromme begin as 'n eksponensiële kromme wat halfpad weer afneem. Ek het gevind dat dit 'n baie goeie manier is om die intensiteit te verhoog (en te verminder).
Die klokfrekwensie van die mikrobeheerder (en die tydtellers) is 16 MHz en ek gebruik die maksimum resolusie van TIMER2 (65536) om drie polswydte seine (PWM) te skep. Daarom kom pulse 16000000 /65536 = 244 keer per sekonde. Dit is ver bo die grens van die oë om flikkering te sien.
Die LED's word dus gevoed met 'n PWM -sein wat gemaak word met hierdie 16 -bitimer van die STM8S103 -mikrobeheerder. Hierdie PWM -sein kan ten minste 1 puls lank wees en die oorblywende 65535 polslengtes af.
Die LED's wat aan die PM-sein gekoppel is, is dan 1/65536 van die tyd AAN: 0,0015%
Op die maksimum is dit 65536/65536 van die tyd: 100%.
Stap 4: Elektronika
Mikrobeheerder
Die brein van die weklig is 'n STM8S103 mikrobeheerder van STMicroelectronics. Ek gebruik graag onderdele wat net genoeg vermoëns vir 'n werk het. Vir 'n eenvoudige taak is dit nie nodig om STM32 -mikrobeheerders (my ander gunstelinge) te gebruik nie, maar 'n Arduino UNO was nie genoeg nie, want ek wou drie PWM -seine met 'n resolusie van 16 bis en daar is geen timer met drie uitsetkanale op 'n UNO nie.
Intydse klok
Die tyd word gelees vanaf 'n DS1307 -reële -tydklok wat werk met 'n kristal van 32768 Hz en 'n 3V -rugsteunbattery.
Die instelling van die huidige tyd, dag en wakker word met twee knoppies en 'n 16 x 2 LCD -karaktervertoning. Om my slaapkamer in die nag regtig donker te hou, word die agtergrond van die LCD -skerm slegs aangeskakel as die LED's helderder is as die agtergrond en as u die tyd, dag en wakker tyd instel.
Krag
Krag kom van 'n ou skootrekenaar, myne lewer 12V en kan 3A lewer. As u 'n ander kragtoevoer het, kan dit nodig wees om die weerstande in serie met die LED-snare aan te pas. (Sien onder)
Leds
Die LED's is gekoppel aan die 12V -toevoer, die res van die elektronikawerke op 5V is gemaak met 'n 7805 lineêre reguleerder. In die skema staan dat ek 'n TO220 -reguleerder gebruik, wat nie nodig is nie, aangesien die mikrobeheerder, die skerm en die real -time klok slegs 'n paar milliamps gebruik. My horlosie gebruik 'n kleiner TO92 -weergawe van die 7805 wat 150mA kan lewer.
Die omskakeling van die LED-snare word gedoen met N-kanaal MOSFET's. Weereens, in die skematiese vertoon dit ander toestelle as wat ek gebruik het. Ek het toevallig presies drie baie ou BUZ11 MOSFET's gehad in plaas van die nuwer IRLZ34N MOSFET's. Hulle werk goed
U kan natuurlik soveel LED's insit as u wil, solank die MOSFET's en die voedingsstroom die stroom kan hanteer. In die skematiese teken het ek net een string van enige kleur geteken, in werklikheid is daar verskillende kleure wat parallel is aan die ander snare van die kleur.
Stap 5: Weerstands (vir die Leds)
Oor die weerstande in die geleide snare. Wit en blou LED's het gewoonlik 'n spanning van 2.8V oor hulle as hulle op volle helderheid is.
Rooi LED's het net 1.8V, my groen LED's het 2V oor hulle op volle helderheid.
'N Ander ding is dat hul volle helderheid nie dieselfde is nie. Dit verg dus 'n bietjie eksperimenteer om hulle ewe helder te maak (in my oë). Deur die LED's ewe helder te maak met volle helderheid, sal hulle ook ewe helder lyk op laer vlakke; die pulswydte -sein skakel hulle altyd in volle helderheid aan, maar gedurende langer en korter tye sorg u vir die gemiddelde.
Begin met 'n berekening soos hierdie. Die kragtoevoer lewer (in my geval) 12V.
Vier wit LED's in serie benodig 4 x 2.8V = 11.2V, dit laat 0.8V oor vir die weerstand.
Ek het gevind dat hulle helder genoeg was op 30mA, sodat die weerstand moet wees:
0,8 / 0,03 = 26,6 ohm. In die skema sien u dat ek 'n weerstand van 22 ohm ingesit het, wat die LED's net 'n bietjie helderder maak.
Die blou LED's was te helder by 30mA, maar in vergelyking met die wit LED's op 15mA, het hulle ook ongeveer 2.8V oor hulle by 15mA, dus die berekening was 4 x 2.8V = 11.2V en laat weer 0.8V
0.8 / 0.015 = 53.3 ohm, so ek het 'n weerstand van 47 ohm gekies.
My rooi leds benodig ook ongeveer 15 mA om net so helder soos die ander te wees, maar hulle het slegs 1.8V oor die stroom. Dus kon ek meer in serie plaas en nog 'n "ruimte" vir die weerstand hê.
Ses rooi LED's het my 6 x 1.8 = 10.8V gegee, so oor die weerstand was 12 - 10.8 = 1.2V
1.2 / 0.015 = 80 ohm, ek het 68 ohm gemaak. Net soos die ander, 'n bietjie helderder.
Die groen LED's wat ek gebruik het, is so helder soos die ander op ongeveer 20mA. Ek het net 'n paar nodig (net soos die bloues) en ek het gekies om vier in reekse te plaas. By 20mA het hulle 2, 1V oor hulle, wat 3 x 2.1 = 8.4V gee
12 - 8.4 = 3.6V vir die weerstand. En 3,6 / 0,02 = 180 ohm.
As u hierdie opwekingslig bou, is dit onwaarskynlik dat u dieselfde kragtoevoer het; u moet die aantal LED's in serie en die benodigde weerstande aanpas.
'N Klein voorbeeld. Gestel u het 'n kragvoorsiening wat 20V lewer. Ek sou kies om 6 blou (en wit) LED's in serie te stel, 6 x 3V = 18V, dus 2V vir die weerstand. En laat ons sê dat u van die helderheid by 40mA hou. Die weerstand moet dan 2V / 0,04 = 50 ohm wees, 'n weerstand van 47 ohm sal goed wees.
Ek raai u aan om nie hoër as 50mA te gaan met gewone (5 mm) leds nie. Sommige kan meer hanteer, maar ek hou daarvan om aan die veilige kant te wees.
Stap 6: sagteware
Al die kode kan afgelaai word vanaf:
gitlab.com/WilkoL/wakeup_light_stm8s103
Hou die bronkode oop, langs die res van hierdie instruksies, as u die verduideliking wil volg.
Hoof.c
Main.c stel eers die klok, timers en ander randapparatuur op. Die meeste "bestuurders" wat ek geskryf het met behulp van die Standard Library van STMicroelectronics, en as u enige vrae daaroor het, skryf dit in 'n opmerking onder die instruksies.
Eeprom
Ek het die "teks om te vertoon" -kode wat ek gebruik het om tekste in die eeprom van die STM8S103 te plaas as kommentaar gelaat. Ek was nie seker of ek genoeg flashgeheue het vir al my kode nie, so ek het probeer om soveel moontlik in eeprom te sit om alle flash vir die program te hê. Uiteindelik was dit nie nodig nie, en ek het die teks na flits geskuif. Maar ek het dit gelos as kommentaar uit die teks in die main.c -lêer. Dit is lekker om dit te hê as ek later iets soortgelyks moet doen (in 'n ander projek)
Die eeprom word steeds gebruik, maar slegs om die wakker tyd te stoor.
Een keer 'n sekonde
Nadat die randapparatuur opgestel is, kyk die kode of daar 'n sekonde verby is (gedoen met 'n timer).
Spyskaart
As dit die geval is, kyk dit of daar op 'n knoppie gedruk is. As dit die geval is, gaan dit in die spyskaart waar u die huidige tyd, die dag van die week en die wakker tyd kan instel. Onthou dat dit ongeveer 5 minute neem om van volle helderheid af te gaan, dus stel die wakker tyd 'n bietjie vroeër in.
Die wakker tyd word in eeprom gestoor, sodat dit selfs na 'n kragonderbreking 'sal weet' wanneer u u moet wakker maak. Die huidige tyd word natuurlik in die regte tydklok gestoor.
Vergelyking huidige en wakker tyd
As daar geen knoppie ingedruk is nie, kontroleer die huidige tyd en vergelyk dit met die wakker tyd en weekdag. Ek wil nie hê dit moet my die naweek wakker maak nie:-)
Die meeste van die tyd hoef niks gedoen te word nie, sodat dit die veranderlike "leds" op OFF anders na AAN stel. Hierdie veranderlike word gekontroleer saam met die sein "verandering_intensiteit", wat ook van 'n timer af kom en 244 keer per sekonde aktief is. As die veranderlike "leds" AAN is, word die intensiteit 244 keer per sekonde verhoog en wanneer dit af is, neem dit 244 keer per sekonde af. Maar die toename is in enkele stappe, waar die afname in stappe van 16 is, wat beteken dat wanneer die wakkerlig hopelik sy werk gedoen het, dit 16 keer vinniger, maar steeds glad, afskakel.
Gladheid en UIT GEHEUG
Die gladheid kom van die berekening van die Sigmoid -kromme. Die berekening is redelik eenvoudig, maar dit moet gedoen word in veranderlikes in drywende punte (verdubbel) as gevolg van die funksie exp (), sien die lêer sigmoid.c.
In die standaard situasie het die Cosmic compiler / linker nie ondersteuning vir veranderlike dryfpunt veranderlikes nie. Dit is maklik om aan te skakel (sodra u dit gevind het), maar die kodegrootte word verhoog. Hierdie toename was te veel om die kode in die flash -geheue te laat pas in kombinasie met die sprintf () -funksie. En die funksie is nodig vir die omskakeling van getalle in teks vir die vertoning.
Itoa ()
Om hierdie probleem op te los, het ek die itoa () -funksie geskep. Dit is 'n heelgetal tot Ascii -funksie wat redelik algemeen is, maar nie by die STMicroelectronics -standaardbiblioteek ingesluit is nie, en ook nie by die Cosmic -biblioteke nie.
Stap 7: IKEA (wat sou ons sonder hulle doen)
Die foto van is by IKEA gekoop. Dit is 'n Ribba -raam van 50 x 40 cm. Hierdie raam is redelik dik en dit maak dit ideaal om elektronika daaragter te verberg. In plaas van 'n plakkaat of prentjie sit ek 'n stuk geperforeerde hardebord in. U kan dit by die hardewarewinkel koop, waar dit soms 'bedbord' genoem word. Daar is klein gaatjies in wat dit ideaal maak om leds in te sit. Ongelukkig was die gate in my bord 'n bietjie groter as 5 mm, so ek moes warm gom gebruik om die leds te "monteer".
Ek het 'n reghoekige gat in die middel van die harde bord gemaak vir die 16x2 -skerm en dit ingedruk.
Die geperforeerde hardebord is swart gespuit, maar agter in die mat. Ek het twee gate in die raam geboor vir die knoppies om die tyd en datum in te stel, aangesien die raam taamlik dik was, moes ek die gate aan die binnekant van die raam verbreed om die knoppies genoeg te laat uitsteek.
Aanbeveel:
Animated Mood Light en Night Light: 6 stappe (met foto's)
Animated Mood Light & Night Light: Met 'n bekoring wat grens aan obsessie met lig, het ek besluit om 'n verskeidenheid klein modulêre PCB's te skep wat gebruik kan word om RGB -ligskerms van enige grootte te skep. Nadat ek die modulêre PCB gemaak het, het ek die idee gekry om dit in 'n
Shadow Light Box - Beheer deur IR -afstandsbediening met Arduino: 8 stappe (met foto's)
Shadow Light Box - Beheer deur IR -afstandsbediening met Arduino: hierdie instruksie sal lei hoe u 'n skadu -ligkas vir die volgende Kersfees kan maak. U kan dit self maak om u kamer te versier, of as 'n geskenk vir u vriend te maak. Hierdie skaduboks kan verskillende kleure maak deur kleur te meng deur rooi, blou, groen kleur
DIY Givi V56 Topbox Light Kit met motorfiets met geïntegreerde seine: 4 stappe (met foto's)
DIY Givi V56 Topbox -ligstel vir motorfietse met geïntegreerde seine: As motorfietsryer is ek al te goed vertroud daarmee om behandel te word asof ek onsigbaar is op die pad. Een ding wat ek altyd by my fietse voeg, is 'n boks met 'n geïntegreerde lig. Ek het onlangs opgegradeer na 'n nuwe fiets en die Givi V56 Monokey gekoop
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino - Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter - Rc Helikopter - Rc -vliegtuig met Arduino: 5 stappe (met foto's)
Draadlose afstandsbediening met 2,4 GHz NRF24L01 -module met Arduino | Nrf24l01 4 -kanaals / 6 -kanaals sender -ontvanger voor quadcopter | Rc Helikopter | Rc -vliegtuig met Arduino: om 'n Rc -motor te bestuur | Quadcopter | Drone | RC -vliegtuig | RC -boot, ons het altyd 'n ontvanger en sender nodig, veronderstel dat ons vir RC QUADCOPTER 'n 6 -kanaals sender en ontvanger nodig het en dat die tipe TX en RX te duur is, so ons maak een op ons
Hoe om 'n rekenaar met maklike stappe en foto's uitmekaar te haal: 13 stappe (met foto's)
Hoe om 'n rekenaar uitmekaar te haal met eenvoudige stappe en foto's: dit is 'n instruksie oor hoe om 'n rekenaar uitmekaar te haal. Die meeste basiese komponente is modulêr en kan maklik verwyder word. Dit is egter belangrik dat u daaroor georganiseerd is. Dit sal u verhinder om onderdele te verloor, en ook om die montering weer