Мазмұны:

Ояту шамы: 7 қадам (суреттермен)
Ояту шамы: 7 қадам (суреттермен)

Бейне: Ояту шамы: 7 қадам (суреттермен)

Бейне: Ояту шамы: 7 қадам (суреттермен)
Бейне: 4 минуттық мықты мотивация 2024, Қараша
Anonim
Ояту жарығы
Ояту жарығы

Мен бұл нұсқаулықты жазғанымда, солтүстік жарты шарда қыстың ортасы, бұл қысқа күн мен ұзақ түнді білдіреді. Мен 06: 00 -де тұруға үйрендім, ал жазда күн ашық болады. Қыс мезгілінде, егер бізде бұлтты емес күн болатын болса, сағат 09: 00 -де жарық түседі (бұл жиі емес).

Біраз уақыт бұрын мен Норвегияда шуақты таңды имитациялау үшін Philips жасаған «ояту жарығы» туралы оқыдым. Мен ешқашан сатып алған емеспін, бірақ мен оны жасау туралы ойлана бердім, себебі оны өзіңіз жасау - оны сатып алғаннан гөрі қызықты.

Жабдықтар:

IKEA -дан 50х40 см қашықтықта «Ribba» сурет жақтауы

аппараттық дүкеннен перфорацияланған қатты тақта

Ebay немесе басқалар арқылы STM8S103 әзірлеу тақтасы

DS1307 нақты уақыт сағаты (Мусер, Фарнелл, Конрад және т.

32768 Гц сағат кристалы (Мусер, Фарнелл, Конрад және т.

3V литий сәйкес келеді + сәйкестік ұстағыш

BUZ11 немесе IRLZ34N N-арналы MOSFETs (3x)

BC549 (немесе кез келген басқа NPN транзисторы)

қанша ақ, қызыл, көк, жасыл және т.б.

кейбір резисторлар мен конденсаторлар (схеманы қараңыз)

Powerbrick, 12 В -тан 20 В -қа дейін, 3А немесе одан жоғары (мысалы, ноутбуктің ескі қуат көзі)

1 -қадам: Тұруды жеңілдету

Тұруды жеңілдету
Тұруды жеңілдету

Идея - қараңғыда таңертең төсектен тұру қиын. Егер сіз арктикалық шеңбердің жанында немесе одан жоғары тұрсаңыз, онда ол ұзақ қараңғы болады. Норвегиядағы Тромсе сияқты жерлерде мүлде жарық болмайды, өйткені күн қарашаның жартысында батады, тек Януаридің ортасында пайда болады.

Philips жасаған нәрсе күннің шығуын модельдеу болды.

Philips шамның жарықтығын баяу арттырады, ол бірнеше жарықдиодты шаммен жасалған, бірақ бір диффузордың артында жасырылған. Олардың жарықтан толық жарыққа дейінгі уақыты 30 минутты алады.

Philips оятқыш шамдары соншалықты қымбат емес, бірақ оның бір ғана түсі бар және ол кішкентай көрінеді. Мен жақсырақ жасай аламын деп ойлаймын.

2 -қадам: көбірек түс

Көбірек түс
Көбірек түс

Менің ояту шамымда ақ, қызыл, көк және жасыл төрт түстер қолданылады. Алдымен ақ ледтерге, содан кейін қызылға, ал бірнеше көк және жасыл шамдарға келіңіз. Менің ойым, мен жарықтықтың ұлғаюын ғана емес, сонымен қатар таңертеңгі жарық түсінің өзгеруін де имитациялай аламын, ақ түстен бастап, қызылға сәл кейінірек қосып, соңында көк пен жасылға араластыра аламын. Мен оның шынымен таңғы жарыққа ұқсайтынына сенімді емеспін, бірақ маған түрлі -түсті дисплей дәл қазіргідей ұнайды.

Менікі Philips оятқыш шамына қарағанда тезірек, Philips шамының 30 минутының орнына 5 минуттан аз уақыт ішінде жарықтық 0% -дан 100% -ға дейін жетеді. Сондықтан менің күнім әлдеқайда тез шығады.

ЕСКЕРТУ:

Менің оятқыш шамымды суретке түсіру өте қиын, мен бірнеше камералар мен смартфондармен тырыстым, бірақ мен жасаған барлық суреттер шындыққа сай келмейді.

3 -қадам: Сигмоиды қисық, жыпылықтау және «ажыратымдылық»

Сигмоиды қисық, жыпылықтау және
Сигмоиды қисық, жыпылықтау және

Әрине, мен ағартуды мүмкіндігінше тегіс етіп жасағым келді. Адамның көздері сезімталдығы бойынша логарифмдік, яғни толық қараңғыда олар күндізгі жарыққа қарағанда сезімтал болады. Жарықтықтың шамалы өсуі, егер жарық деңгейі 40% болғанда, үлкен қадаммен бірдей «сезінеді». Бұған жету үшін мен Sigmoid (немесе S-қисық) деп аталатын арнайы қисықты қолдандым, бұл қисық экспоненциалды қисық ретінде басталады, ол қайтадан жартысына төмендейді. Мен бұл қарқындылықты жоғарылатудың (және төмендетудің) өте жақсы әдісі екенін білдім.

Микроконтроллердің (және таймерлердің) жиілік жиілігі - 16 МГц және мен импульстік үш сигналды (PWM) құру үшін TIMER2 (65536) максималды ажыратымдылығын қолданамын. Сондықтан импульс секундына 16000000 /65536 = 244 рет келеді. Бұл кез келген жыпылықтауды көру үшін көздің шекарасынан әлдеқайда жоғары.

Сонымен, светодиодтар STM8S103 микроконтроллерінің 16 битмерімен жасалған PWM сигналымен қоректенеді. Бұл PWM сигналы кемінде 1 импульстік ұзындықта, ал қалған 65535 импульстік ұзындықта болуы мүмкін.

Осылайша, PM сигналына қосылған светодиодтар уақыттың 1/65536-ші шамасында болады: 0,0015%

Ең көбі олар 65536/65536-ші уақыт бойынша: 100%.

4 -қадам: электроника

Электроника
Электроника
Электроника
Электроника
Электроника
Электроника
Электроника
Электроника

Микроконтроллер

Ояту шамының миы STMicroelectronics компаниясының STM8S103 микроконтроллері болып табылады. Мен жұмысқа қабілеті жеткілікті бөлшектерді қолданғанды ұнатамын. Қарапайым тапсырма үшін STM32 микроконтроллерлерін қолдану қажет емес (менің басқа таңдаулыларым), бірақ Arduino UNO жеткіліксіз болды, себебі мен 16 разрядты үш PWM сигналын алғым келді және БҰҰ -да үш шығыс арнасы бар таймер жоқ..

Нақты уақыт сағаты

Уақыт 32768 Гц кристаллымен жұмыс істейтін және 3В резервтік батареясы бар DS1307 нақты сағаттан оқылады.

Ағымдағы уақытты, күнді және ояту уақытын орнату екі түйменің көмегімен жасалады және 16 x 2 СКД дисплейінде көрсетіледі. Менің жатын бөлмемді түнде қараңғы етіп ұстау үшін, СКД дисплейінің артқы жарығы жарық диодтары артқы жарыққа қарағанда ашық болғанда және уақытты, күндізгі және ояту уақытын орнатқанда ғана қосылады.

Қуат

Қуат ноутбуктің ескі қуат көзінен келеді, шахта 12В шығарады және 3А жеткізе алады. Егер сізде басқа қуат көзі болса, резисторларды сымның тізбегімен реттеуге тура келуі мүмкін. (Төменде қараңыз)

Ледс

Светодиодтар 12В кернеуге қосылады, қалған 5В -да 7805 желілік реттегішпен жасалған электроника. Схемада мен TO220 реттегішін қолданамын дейді, бұл микроконтроллер, дисплей мен нақты уақыт сағаты бірнеше миллиамперді қажет етпейді. Менің сағатымда 7805 -тің кіші TO92 нұсқасы бар, ол 150мА жеткізе алады.

Сызықтарды ауыстыру N-арналы MOSFET көмегімен жүзеге асады. Тағы да, схемада ол мен қолданған басқа құрылғыларды көрсетеді. Менде жаңа IRLZ34N MOSFET -терінің орнына өте ескі үш BUZ11 MOSFET бар болды. Олар жақсы жұмыс істейді

Әрине, MOSFET пен қуат көзі токты басқара алатын болса, қалағаныңызша көп жарықдиодты қоюға болады. Схемада мен кез -келген түстің бір ғана жолын салдым, іс жүзінде сол түстің басқа жолдарына параллель бірнеше түс бар.

5 -қадам: Резисторлар (Ледтер үшін)

Резисторлар (Ледтер үшін)
Резисторлар (Ледтер үшін)

Жетекші тізбектердегі резисторлар туралы. Ақ және көк жарық диодтары әдетте толық жарықтылықта олардың үстінде 2,8В кернеуге ие.

Қызыл жарық диодтарында тек 1,8 В, менің жасыл жарық диодтарда 2В толық жарықта.

Тағы бір нәрсе, олардың толық жарықтығы бірдей емес. Сондықтан оларды бірдей жарқын ету үшін біраз тәжірибе қажет болды (менің көзімше). Жарық диодтарын толық жарықтылықта бірдей жарқырата отырып, олар төменгі деңгейлерде бірдей жарқын болып көрінеді, импульстің ені сигналы оларды әрқашан толық жарықтықта қосады, бірақ ұзақ және қысқа уақыттарда сіздің көздеріңіз орташа мәнге назар аударады.

Осындай есептеуден бастаңыз. Қуат көзі 12В береді (менің жағдайда).

Төрт ақ ледке 4х2,8В = 11,2В кернеу қажет, бұл резистор үшін 0,8В қалады.

Мен олардың 30 мА жеткілікті жарқын екенін білдім, сондықтан резистор болуы керек:

0,8 / 0,03 = 26,6 Ом. Схемада сіз 22 Ом резисторды қосқанымды көресіз, бұл жарықдиодты сәл жарқыратады.

Көк жарық диодтары 30 мА шамасында тым жарқын болды, бірақ 15 мА ақ жарық шамдарымен салыстырғанда олар 15 мА шамасында 2,8 В шамасында болды, сондықтан есептеу 4 x 2,8 В = 11,2 В болды, бірақ 0,8 В қалды.

0,8 / 0,015 = 53,3 Ом, сондықтан мен 47 Ом резисторды таңдадым.

Менің қызыл шамдар да 15 мА шамасында басқалар сияқты бірдей жарық болуы керек, бірақ олардың үстінде тек 1,8 В шамасы бар. Сондықтан мен резистор үшін тағы да «бөлме» құра аламын.

Алты қызыл шам маған 6 x 1.8 = 10.8 В берді, сондықтан резистордың үстінде 12 - 10.8 = 1.2 В болды.

1.2 / 0.015 = 80 ом, мен оны 68 омға айналдырдым. Басқалар сияқты, кішкене жарық.

Мен қолданған жасыл шамдар 20 мА шамасында басқалары сияқты жарқын. Маған бірнешеуі ғана қажет болды (көгілдірлер сияқты) және мен төртеуін серияға қоюды таңдадым. 20мА -да олардың үстінде 2, 1В болады, 3х 2.1 = 8.4В береді

Резистор үшін 12 - 8,4 = 3,6В. Ал 3,6 / 0,02 = 180 Ом.

Егер сіз бұл жарықтандырғышты орнатсаңыз, онда сізде бірдей қуат көзі болуы екіталай, сізге жарық диодтарының санын және резисторларды реттеуге тура келеді.

Кішкене мысал. Сізде 20 В беретін қуат көзі бар деп айтыңыз. Мен резистор үшін 6 х 3В = 18В 6 көк (және ақ) жарықдиодты орнатуды жөн көрдім. Сізге 40 мА жарықтылық ұнайды дейік. Резистор 2В / 0.04 = 50 Ом болуы керек, 47 Ом резистор жақсы болады.

Мен кәдімгі (5 мм) светодиодтармен 50 мА жоғары көтерілмеуге кеңес беремін. Кейбіреулер көп нәрсені шеше алады, бірақ мен қауіпсіз жақта болғанды ұнатамын.

6 -қадам: Бағдарламалық қамтамасыз ету

Барлық кодты мына жерден жүктеуге болады:

gitlab.com/WilkoL/wakeup_light_stm8s103

егер сіз түсініктемені ұстанғыңыз келсе, бастапқы кодты ашық ұстаңыз.

Негізгі c

Main.c алдымен сағатты, таймерлерді және басқа қосымша құрылғыларды орнатады. Мен жазған «драйверлердің» көпшілігі STMicroelectronics стандартты кітапханасын қолдана отырып жазды, егер олар туралы сұрақтарыңыз болса, оны нұсқаулықтың астына түсініктемеде жазыңыз.

Эпром

Мен мәтіндерді STM8S103 eeprom -ге түсініктеме ретінде қою үшін қолданатын «көрсету үшін мәтінді» қалдырдым. Менде барлық коды үшін флэш -жады жеткілікті екеніне сенімді емес едім, сондықтан бағдарламаның барлық флэші болуы үшін мүмкіндігінше eeprom -ге енгізуге тырыстым. Соңында бұл қажет емес болып шықты және мен мәтінді жыпылықтауға ауыстырдым. Бірақ мен оны main.c файлында түсіндірілген мәтін ретінде қалдырдым. Кейінірек ұқсас нәрсені жасау керек болғанда, оны алу өте жақсы (басқа жобада)

Эпром әлі де қолданылады, бірақ тек ояту уақытын сақтау үшін.

Секундына бір рет

Қосымша құрылғыларды орнатқаннан кейін код бір секунд өткенін тексереді (таймермен орындалады).

Мәзір

Егер солай болса, ол түйменің басылғанын тексереді, егер солай болса, ол ағымдағы уақытты, аптаның күні мен ояту уақытын орнатуға болатын мәзірге кіреді. Есіңізде болсын, толық жарықтыққа өту үшін шамамен 5 минут қажет, сондықтан ояту уақытын ертерек орнатыңыз.

Ояту уақыты eeprom -да сақталады, сондықтан электр қуаты өшкеннен кейін де ол сізді қашан ояту керектігін «біледі». Ағымдағы уақыт, әрине, нақты уақыт сағатында сақталады.

Ағымдағы және ояту уақытын салыстырыңыз

Ешқандай түйме басылмаған кезде, ол ағымдағы уақытты тексереді және оны ояту уақыты мен жұмыс күнімен салыстырады. Мен демалыс күндері оятқым келмейді:-)

Көбіне ештеңе істеудің қажеті жоқ, сондықтан ол «led» айнымалы мәнін OFF күйіне ON күйіне қояды. Бұл айнымалының мәні таймерден келетін «change_intensity» сигналымен бірге тексеріледі және секундына 244 рет белсенді болады. Сонымен, «leds» айнымалысы қосулы кезде қарқындылығы секундына 244 есе артады, ал ӨШІРУЛІ болғанда секундына 244 есе төмендейді. Бірақ өсу бір сатыда жүреді, онда төмендеу 16 қадамда болады, яғни оятқыш шамы өз жұмысын орындады деп үміттенгенде, ол 16 есе жылдамырақ өшеді, бірақ бәрібір тегіс.

Тегіс және есте сақтау

Тегістік Sigmoid қисық есептеулерінен келеді. Есептеу өте қарапайым, бірақ exp () функциясының арқасында өзгермелі нүктелік айнымалыларда (екі есе) жасалуы керек, sigmoid.c файлын қараңыз.

Стандартты жағдайда Cosmic компиляторында / байланыстырушыда өзгермелі нүктелік айнымалыларға қолдау жоқ. Оны қосу оңай (сіз оны тапқаннан кейін), бірақ код өлшемінің ұлғаюымен бірге келеді. Бұл көбею sprintf () функциясымен үйлескенде кодты флэш жадқа сыйғызу үшін тым көп болды. Және бұл функция сандарды дисплейге мәтінге түрлендіру үшін қажет.

Итоа ()

Бұл мәселені шешу үшін мен itoa () функциясын жасадым. Бұл Integer To Ascii функциясы, ол өте кең таралған, бірақ STMicroelectronics стандартты кітапханасына немесе ғарыштық кітапханаларға кірмейді.

7 -қадам: IKEA (оларсыз біз не істер едік)

IKEA (оларсыз біз не істер едік)
IKEA (оларсыз біз не істер едік)
IKEA (оларсыз біз не істер едік)
IKEA (оларсыз біз не істер едік)
IKEA (оларсыз біз не істер едік)
IKEA (оларсыз біз не істер едік)

Сурет IKEA -дан сатып алынды. Бұл 50х40см Ribba жақтауы. Бұл жақтау өте қалың, бұл оның артында электрониканы жасыруға мүмкіндік береді. Плакаттың немесе суреттің орнына мен перфорацияланған қатты тақтаны салдым. Сіз оны аппараттық дүкеннен сатып ала аласыз, оны кейде «төсек тақтасы» деп атайды, оның кішкене тесіктері бар, бұл оны жарықдиодты қоюға өте ыңғайлы етеді. Өкінішке орай, тақтаның тесіктері 5 мм-ден сәл үлкен болды, сондықтан мен шамдарды «бекіту» үшін ыстық желімді қолдануға тура келді.

Мен қатты тақтаның ортасында 16x2 дисплейі үшін тіктөртбұрышты тесік жасап, оны бастым. Бұл дисплейде барлық электроника бар ПХД ілулі, ол басқа ештеңеге бекітілмеген.

Перфорацияланған қатты тақта қара түске боялған, бірақ төсеніштің артында. Уақыт пен күнді белгілеу үшін мен жақтауда екі тесік бұрғыладым, себебі жақтау өте қалың болғандықтан, түймелердің жеткілікті жабысып қалуы үшін жақтаудың ішкі жағындағы тесіктерді кеңейтуге тура келді.

Ұсынылған: