Мазмуну:

Ойгонуу жарыгы: 7 кадам (сүрөттөр менен)
Ойгонуу жарыгы: 7 кадам (сүрөттөр менен)

Video: Ойгонуу жарыгы: 7 кадам (сүрөттөр менен)

Video: Ойгонуу жарыгы: 7 кадам (сүрөттөр менен)
Video: Ойлонордон мурда бул ВИДЕОНУ КӨРҮҢҮЗ! 2024, Ноябрь
Anonim
Ойгонуу жарыгы
Ойгонуу жарыгы

Мен бул нускаманы жазганымда, түндүк жарым шарда кыштын орто чени, бул кыска күндөр менен узак түндөрдү билдирет. Мен таңкы 06: 00дө турууга көнгөм, ал эми жай мезгилинде күн ачык болот. Кыш мезгилинде, эгерде бизде булуттуу эмес күн болсо, анда саат 09: 00дө жарык болот (бул … көп эмес).

Бир нече убакыт мурун мен Норвегияда күндүн таңын окшоштуруу үчүн колдонулган Philips тарабынан жасалган "ойгонуу жарыгы" жөнүндө окудум. Мен эч качан сатып алган эмесмин, бирок мен аны жасоо жөнүндө ойлоно бердим, анткени аны өзүң жасоо аны сатып алгандан көрө кызыктуу.

Берилиштер:

"Ribba" сүрөт алкагы IKEAдан 50 x 40 см

аппараттык дүкөндөн перфорацияланган катуу такта

Ebay же башкалар аркылуу STM8S103 өнүктүрүү тактасы

DS1307 реалдуу убакыт сааты (Мусер, Фарнелл, Конрад ж. Б.)

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

3V литий кокустан + дал келүүчү кармагыч

BUZ11 же IRLZ34N N-канал MOSFETs (3x)

BC549 (же башка NPN транзистору)

каалаганча көп ак, кызыл, көк, жашыл ж.б.

кээ бир резисторлор жана конденсаторлор (схеманы карагыла)

Powerbrick, 12Vдан 20Vга чейин, 3A же андан көп (мисалы, эски ноутбуктун кубаттуулугу)

1 -кадам: Турууну оңой кылуу (бир аз)

Туруу оңой (кичине)
Туруу оңой (кичине)

Идея - караңгыда эртең менен төшөктөн туруу кыйын. Ал эми эгер сиз арктикалык чөйрөнүн жанында же атүгүл жогору жашасаңыз, анда караңгы болот. Норвегиянын Тромсе деген жеринде жарык такыр болбойт, анткени ал жакта күн ноябрдын жарымында гана Януаринин жарымында кайра көрүнөт.

Ошентип, Филипстин кылганы күндүн чыгышын окшоштуруу болгон.

Philips акырындык менен бир нече лед менен жасалган, бирок бир диффузордун артына катылган лампанын жарыктыгын жогорулатат. Алардын убактысы толук жарыктыгына чейин 30 мүнөткө созулат.

Philips ойготуучу чырактары анча кымбат эмес, бирок анын бир эле түсү бар жана кичине көрүнөт. Мен жакшыраак кыла алам деп ойлойм.

2 -кадам: Көбүрөөк түс

More Color
More Color

Менин ойгонуу жарыгым төрт түстү колдонот: ак, кызыл, көк жана жашыл. Адегенде ак леддер, андан кийин кызылдар келип, бир нече көк жана жашыл леддер. Менин идеям, мен бир аз актан баштап, бир аздан кийин кызылга кошуп, акырында көк менен жашылга аралаштырып, жарыктын көбөйүшүн эле эмес, таңкы жарыктын түсүнүн өзгөрүшүн да окшоштура алам. Мен чындыгында таңкы жарыкка окшош экенине ишенбейм, бирок мен азыркыдай түстүү дисплейди жакшы көрөм.

Меники да Philipsтин ойготуучу жарыгына караганда ылдамыраак, Philips жарыгынын 30 мүнөтүнүн ордуна меники 0% дан 100% га чейин 5 мүнөткө жетпейт. Ошентип, менин күнүм тезирээк чыгат.

ЭСКЕРТҮҮ:

Ойгонуу жарыгымдын сүрөттөрүн тартуу өтө кыйын, мен бир нече камера жана смартфондор менен аракет кылдым, бирок мен жасаган бардык сүрөттөр адилеттүүлүккө жатпайт.

3 -кадам: Сигмоиддик ийри сызык жана "чечим"

Sigmoid Curve, Flickering жана
Sigmoid Curve, Flickering жана

Албетте, мен жарыктандырууну мүмкүн болушунча жылмакай кылгым келди. Адамдын көзү сезгичтиги боюнча логарифмдик, башкача айтканда, караңгыда алар күндүзгү жарыкка караганда сезгич келет. Жарыктын деңгээли төмөн болгондо өтө кичине өсүшү, жарык 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 сигналын кааладым жана БУУда үч чыгуу каналы бар таймер жок..

Реалдуу убакыт сааты

Убакыт DS1307 реалдуу убакытта окулат, ал 32768 Гц кристаллында иштейт жана 3В камдык батареясы бар.

Учурдагы убакытты, күндү жана ойгонуу убактысын коюу эки баскыч менен жасалат жана 16 х 2 ЖК символдуу дисплейде көрсөтүлөт. Менин уктоочу бөлмөмдү түнкүсүн караңгылатуу үчүн, ЖК дисплейдин арткы жарыгы ледтер арткы жарыктан жарык болгондо жана убакытты, күндү жана ойгонуу убактысын койгондо гана күйгүзүлөт.

Күч

Кубат эски ноутбуктун энергия булагынан келет, меники 12В өндүрөт жана 3А жеткире алат. Эгерде сизде башка энергия булагы бар болсо, анда резисторлорду линия менен катар тууралоо керек болушу мүмкүн. (Төмөндө караңыз)

Ледс

Ледтер 12В камсыздоого туташкан, калган 5V боюнча 7805 линиялык жөндөгүч менен жасалган электроника. Схемада мен TO220 жөндөгүчүн колдоном деп айтылат, бул микроконтроллердин кереги жок, дисплей жана реалдуу убакыт сааты бир нече миллиамптарды колдонот. Менин саатым 7805тин кичинекей TO92 версиясын колдонот, ал 150мА жеткире алат.

Жетектөөчү саптарды которуу N-канал MOSFETs менен жүргүзүлөт. Дагы, схемада мен колдонгондон башка түзмөктөр көрсөтүлгөн. Менде жаңыраак IRLZ34N MOSFETтердин ордуна абдан эски үч BUZ11 MOSFET бар болчу. Алар жакшы иштейт

Албетте, MOSFET'тер жана кубаттуулуктар агымды башкара ала турган болсо, сиз каалаганча көп лед кошо аласыз. Схемада мен каалаган түстөгү бир гана жипти тарттым, чындыгында ошол түстүн башка саптарына параллель болгон бир нече түс бар.

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

Резисторлор (Леддер үчүн)
Резисторлор (Леддер үчүн)

Жетектелген саптардагы резисторлор жөнүндө. Ак жана көк леддер, адатта, толук жарык болгондо, алардын үстүндө 2.8В чыңалууга ээ.

Кызыл леддерде болгону 1.8 В, менин жашыл ледтерде 2В толук жарыкта.

Дагы бир нерсе, алардын толук жарыгы бирдей эмес. Ошентип, аларды бирдей жарык кылуу үчүн кээ бир эксперименттер керек болду (менин көзүмө). Ледтерди толук жарыктыкта бирдей жарык кылуу менен, алар дагы төмөнкү деңгээлдерде бирдей жаркырап көрүнөт, импульстун туурасы сигналы аларды ар дайым толук жарыктыкта күйгүзөт, бирок узагыраак жана кыска мезгилдерде сиздин көзүңүз орточо көрсөткүчкө кам көрөт.

Мындай эсептөө менен баштаңыз. Электр энергиясы менен камсыздоо (менин учурда) 12В.

Сериядагы төрт ак ледке 4 x 2.8V = 11.2V керек, бул резистор үчүн 0.8V калтырат.

Мен алардын 30мАда жетишерлик жарык экенин байкадым, андыктан резистор мындай болушу керек:

0,8 / 0,03 = 26,6 Ом. Схемада мен 22 омдук резисторду койгондугумду көрүп, леддерди бир аз жарык кылдым.

Көк ледтер 30мАда өтө жаркыраган болчу, бирок 15 мАдагы ак ледтерге салыштырмалуу, аларда 15мАда 2,8В болгон, андыктан эсептөө 4х 2,8В = 11,2В кайра 0,8В калтырып кеткен.

0.8 / 0.015 = 53.3 ом, ошондуктан мен 47 омдук резисторду тандадым.

Менин кызыл ледтерим да 15 мА те башкаларга окшош жарык болушу керек, бирок алардын үстүндө 1.8В гана бар. Ошентип, мен дагы серияларды коюп, дагы эле резистор үчүн "бөлмө" болушу мүмкүн.

Алты кызыл лед мага 6 x 1.8 = 10.8V берди, андыктан резистордун үстүндө 12 - 10.8 = 1.2V

1.2 / 0.015 = 80 ом, мен аны 68 омго айландырдым. Башкалар сыяктуу эле, кичине жарык.

Мен колдонгон жашыл ледтер 20мАга жакын башкалар сыяктуу жарык. Мага бир нечеси керек эле (көк түстөгүдөй) жана мен төртөөнү катар кылып коюуну чечтим. 20мАда алардын үстүндө 2, 1В бар, 3 x 2.1 = 8.4V берет

12 - 8.4 = 3.6V каршылык үчүн. Жана 3.6 / 0.02 = 180 Ом.

Эгерде сиз бул ойготкучту түзсөңүз, анда сизде электр энергиясынын бирдей болушу күмөн, сиз леддердин санын жана керектүү резисторлорду тууралашыңыз керек болот.

Кичинекей мисал. Айтыңызчы, сизде 20В берген кубаттуулук бар. Мен 6 көк (жана ак) леддерди сериялык түрдө, 6 x 3V = 18V, резистор үчүн 2В орнотууну тандамакмын. Жана сизге айткым келет, сизге жарыктыгы 40мА. Резистор 2V / 0.04 = 50 Ом болушу керек, 47 Ом резистору жакшы болот.

Мен кадимки (5мм) светодиоддор менен 50мАдан ашпоого кеңеш берем. Кээ бирөөлөр көп нерсени чече алышат, бирок мен коопсуз тарапта болгум келет.

6 -кадам: Программалык камсыздоо

Бардык кодду бул жерден көчүрүп алсаңыз болот:

gitlab.com/WilkoL/wakeup_light_stm8s103

булак кодун ачык кармаңыз, эгерде түшүндүрмөнү ээрчигиңиз келсе, бул көрсөтмөнүн калган бөлүгүнүн жанында.

Main.c

Main.c адегенде саатты, таймерлерди жана башка перифериялык түзүлүштөрдү орнотот. Мен жазган "айдоочулардын" көпчүлүгү STMicroelectronicsтин Стандарттык Китепканасын колдонуп жазышкан жана эгер сизде алар боюнча кандайдыр бир суроолор болсо, аны комментарийге инструкциянын астына жазыңыз.

Eeprom

Мен тексттерди STM8S103 eepromуна комментарий катары коюу үчүн колдонулган "көрсөтүлүүчү текстти" калтырдым. Менде баардык код үчүн флеш -эс жетиштүү экенине ишенбедим, андыктан программанын бардык флеши болушу үчүн eepromго мүмкүн болушунча көбүрөөк коюуга аракет кылдым. Акыр -аягы, бул кереги жок болуп чыкты жана мен текстти жаркыратып жылдырдым. Бирок мен аны main.c файлындагы комментарий катары калтырдым. Кийинчерээк окшош нерсени жасашым керек болгондо, аны алуу жакшы (башка долбоордо)

Eeprom дагы эле колдонулат, бирок ойгонуу убактысын сактоо үчүн гана.

Бир секундда

Кошумча жабдууларды орноткондон кийин, код бир секунддун өткөнүн текшерет (таймер менен жасалат).

Меню

Эгер андай болсо, анда ал баскычтын басылганын текшерет, эгер ошондой болсо, анда ал учурдагы убакытты, жуманын күнүн жана ойгонуу убакытын орното турган менюга кирет. Унутпаңыз, 5 мүнөткө чейин толук жарыктыкка өтүү керек, андыктан ойгонуу убакытын бир аз эртерээк коюңуз.

Ойгонуу убактысы eepromдо сакталат, андыктан электр жарыгы өчкөндөн кийин да ал сизди качан ойгото турганын "билет". Албетте, учурдагы убакыт реалдуу убакытта сакталат.

Учурдагы жана ойгонуу убактысын салыштыруу

Эч кандай баскыч басылбаса, ал учурдагы убакытты текшерет жана аны ойгонуу убактысы жана иш күнү менен салыштырат. Мен аны дем алышта ойготушун каалабайм:-)

Көбүнчө эч нерсе кылуунун кажети жок, андыктан ал "led" өзгөрмөсүн ӨЧҮКкө башка күйгүзөт. Бул өзгөрмө таймерден келген "change_intensity" сигналы менен бирге текшерилет жана секундасына 244 жолу активдүү. Ошентип, "leds" өзгөрмөсү күйгүзүлгөндө, интенсивдүүлүгү секундасына 244 эсе, ал өчүк болгондо секундасына 244 эсе төмөндөйт. Бирок жогорулоо бир кадам менен жүрөт, мында төмөндөө 16 кадамда болот, бул ойгонуу жарыгы үмүт кылганда, ал 16 эсе тезирээк өчөт, бирок баары бирдей.

Тегиздик жана эс тутумдан

Жылмактык Sigmoid ийри эсептөөсүнөн келип чыгат. Эсептөө өтө жөнөкөй, бирок exp () функциясынан улам өзгөрмөлүү чекиттерде (эки эсе) жасалышы керек, sigmoid.c файлын караңыз.

Стандарттык кырдаалда Cosmic компилятору / шилтемеси өзгөрмөлүү чекит өзгөрмөлөрүн колдобойт. Аны күйгүзүү оңой (аны тапкандан кийин), бирок коддун өлчөмүнүн көбөйүшү менен коштолот. Бул жогорулоо кодду sprintf () функциясы менен айкалышканда флеш -эске туура келтирүү үчүн өтө көп болгон. Жана бул функция сандарды дисплей үчүн текстке айландыруу үчүн керек.

Itoa ()

Бул көйгөйдү чечүү үчүн мен itoa () функциясын түздүм. Бул Integer To Ascii функциясы, ал абдан кеңири таралган, бирок STMicroelectronics стандарттык китепканасына же Космикалык китепканаларга кирбейт.

7 -кадам: IKEA (аларсыз биз эмне кылмакпыз)

IKEA (аларсыз биз эмне кылмакпыз)
IKEA (аларсыз биз эмне кылмакпыз)
IKEA (аларсыз биз эмне кылмакпыз)
IKEA (аларсыз биз эмне кылмакпыз)
IKEA (аларсыз биз эмне кылмакпыз)
IKEA (аларсыз биз эмне кылмакпыз)

Сүрөт IKEAдан сатылып алынган. Бул 50 х 40см өлчөмүндөгү Рибба алкагы. Бул алкак өтө калың жана бул анын артында электрониканы жашыруу үчүн сонун кылат. Плакаттын же сүрөттүн ордуна мен тешилген катуу дисктин бир бөлүгүн койдум. Аны аппараттык дүкөндөн сатып алсаңыз болот, аны кээде "керебет тактасы" деп аташат. Анын кичинекей тешиктери бар, бул аны леддерди коюу үчүн идеалдуу кылган. Тилекке каршы, менин тактайымдын тешиктери 5 ммден бир аз чоңураак болгондуктан, леддерди "орнотуу" үчүн ысык желимди колдонууга туура келди.

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

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

Сунушталууда: