Mundarija:

Uyg'onish nuri: 7 qadam (rasmlar bilan)
Uyg'onish nuri: 7 qadam (rasmlar bilan)

Video: Uyg'onish nuri: 7 qadam (rasmlar bilan)

Video: Uyg'onish nuri: 7 qadam (rasmlar bilan)
Video: maktab qizlaridan raqs 2024, Iyul
Anonim
Uyg'onish nuri
Uyg'onish nuri

Men yozganimdek, Shimoliy yarim sharda qishning o'rtasi, bu qisqa kunlar va uzoq tunlarni anglatadi. Men soat 06: 00da turishga odatlanganman, yozda esa quyosh porlay boshlaydi. Qishda, agar biz bulutli bo'lmagan kunni nasib qilsa, soat 09:00 da yorug'lik paydo bo'ladi (bu tez -tez emas).

Bir muncha vaqt oldin men Norvegiyada quyoshli tongni simulyatsiya qilish uchun ishlatilgan Philips tomonidan ishlab chiqarilgan "uyg'onish nuri" haqida o'qidim. Men hech qachon sotib olmaganman, lekin men uni yasash haqida o'ylardim, chunki uni o'zingiz yasash shunchaki sotib olishdan ko'ra qiziqroq.

Ta'minot:

"Ribba" rasm ramkasi IKEA -dan 50 x 40 sm

apparat do'konidan teshilgan qattiq taxta

Ebay yoki boshqalar orqali STM8S103 ishlab chiqish taxtasi

DS1307 real vaqtda soat (Mouser, Farnell, Konrad va boshqalar)

32768 Gts soat kristalli (Mouser, Farnell, Konrad va boshqalar)

3V lityum mos keladigan + tasodifiy ushlagich

BUZ11 yoki IRLZ34N N-kanalli MOSFETlar (3x)

BC549 (yoki boshqa NPN tranzistorlari)

xohlagancha oq, qizil, ko'k, yashil va boshqalar

ba'zi rezistorlar va kondansatörler (sxemaga qarang)

Powerbrick, 12V dan 20V gacha, 3A yoki undan ko'p (masalan, eski noutbuk quvvat manbai)

1 -qadam: O'rningdan turishni osonroq qilish

O'rnidan turishni osonroq qilish
O'rnidan turishni osonroq qilish

Gap shundaki, ertalab, hali qorong'ida yotoqdan turish qiyin. Va agar siz arktik doiraning yaqinida yoki hatto tepasida yashasangiz, qorong'i bo'ladi. Norvegiyada Tromsö kabi joylarda umuman yorug'lik bo'lmaydi, chunki u erda quyosh noyabr oyining yarmida botadi, faqat Yanuari yarmida paydo bo'ladi.

Shunday qilib, Flibs quyosh chiqishini taqlid qildi.

Flibs chiroqning yorqinligini asta -sekin oshiradi, bu chiroq bir necha yorug'likdan yasalgan, lekin bitta diffuzor orqasida yashiringan. Ularning to'liq yorqinligi 30 daqiqani tashkil qiladi.

Philips uyg'otish chiroqlari unchalik qimmat emas, lekin u bitta rangga ega va biroz kichik ko'rinadi. O'ylaymanki, men yaxshiroq qila olaman.

2 -qadam: ko'proq rang

Ko'proq rang
Ko'proq rang

Mening uyg'onish chirog'imda oq, qizil, ko'k va yashil to'rtta rang ishlatiladi. Birinchi navbatda oq chiroqlarni, so'ngra qizillarini keltiring va bir nechta ko'k va yashil chiroqlarni oling. Mening fikrim shundan iborat ediki, men nafaqat yorqinlikni oshirishni, balki ertalabki yorug'lik rangining o'zgarishini simulyatsiya qila olardim, bir oz oqdan boshlayman, birozdan keyin qizil qo'shaman va oxirida ko'k va yashil rangga aralashaman. Ishonchim komilki, u haqiqatan ham ertalabki nurga o'xshaydi, lekin menga rangli displey hozirgidek yoqadi.

Meniki ham Philips uyg'onish chiroqidan ko'ra tezroq, Philips chiroqining 30 daqiqasi o'rniga, meniki 5 daqiqadan kamroq vaqt ichida 0% dan 100% nashrida bo'ladi. Shunday qilib, mening quyoshim tezroq chiqadi.

ESLATMA:

Uyg'ongan yorug'likimni suratga olish juda qiyin, men bir nechta kamera va smartfonlar bilan sinab ko'rdim, lekin men yaratgan barcha rasmlar adolatga to'g'ri kelmaydi.

3 -qadam: Sigmasimon egri, miltillovchi va "aniqlik"

Sigmasimon egri, miltillovchi va
Sigmasimon egri, miltillovchi va

Albatta, men iloji boricha porlashni xohladim. Inson ko'zlari sezgirlikda logarifmikdir, ya'ni to'liq qorong'uda ular kunduzgi yorug'likdan ko'ra sezgirroqdir. Agar yorug'lik darajasi past bo'lsa, yorug'likning juda kichik o'sishi, xuddi yorug'lik 40% yorug'lik bo'lganida, xuddi katta qadamni sezadi. Bunga erishish uchun men Sigmoid (yoki S-egri) deb nomlangan maxsus egri chizig'idan foydalanardim, bu egri chiziq eksponensial egri chiziqdan boshlanadi, u yarim darajaga qaytadi. Men bu intensivlikni oshirishning (va kamaytirishning) juda yaxshi usuli ekanligini topdim.

Mikrokontrollerning (va taymerlarning) soat chastotasi 16 MGts va men uchta impuls kengligi signalini (PWM) yaratish uchun TIMER2 (65536) maksimal piksellar sonini ishlataman. Shuning uchun pulslar sekundiga 16000000 /65536 = 244 marta keladi. Bu miltillashni ko'rish uchun ko'z chegarasidan ancha yuqori.

Shunday qilib, LEDlar STM8S103 mikrokontrollerining 16 bitli PWM signallari bilan ta'minlangan. Hech bo'lmaganda, bu PWM signali 1 ta puls uzunligida, qolgan 65535 ta puls uzunligi o'chirilgan bo'lishi mumkin.

Shunday qilib, o'sha PM signaliga ulangan chiroqlar vaqtning 1/65536-chi qismida bo'ladi: 0,0015%

Maksimal darajada ular 65536/65536-chi: 100%.

4 -qadam: elektronika

Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika
Elektronika

Mikrokontroller

Uyg'otuvchi nurning miyasi STMicroelectronics kompaniyasining STM8S103 mikrokontrolleridir. Men ish uchun etarli imkoniyatlarga ega bo'lgan qismlardan foydalanishni yaxshi ko'raman. Oddiy vazifani bajarish uchun STM32 mikrokontrollerlarini (mening boshqa sevimlilarim) ishlatish shart emas, lekin Arduino UNO etarli emas edi, chunki men 16 bitli uchta PWM signalini xohlardim va UNOda uchta chiqish kanalli taymer yo'q..

Haqiqiy vaqt soati

Vaqt 32768 Gts kristalli bilan ishlaydigan va 3V zaxira batareyali DS1307 real vaqtli soatidan o'qiladi.

Joriy vaqtni, kunni va uyg'onish vaqtini sozlash ikkita tugma yordamida amalga oshiriladi va 16 x 2 o'lchamli LCD displeyda ko'rsatiladi. Yotoqxonamni tunda qorong'i ushlab turish uchun, LCD displeyning orqa nuri faqat yorug'lik orqa yorug'likdan ko'ra yorqinroq bo'lganda va siz vaqt, kun va uyg'onish vaqtini o'rnatganingizda yoqiladi.

Quvvat

Quvvat eski noutbuk quvvat manbaidan keladi, meniki 12V ishlab chiqaradi va 3A etkazib bera oladi. Agar sizda boshqa quvvat manbai bo'lsa, rezistorlarni simi chiziqlari bilan ketma-ket sozlash zarur bo'lishi mumkin. (Pastga qarang)

Ledlar

Ledlar 12V quvvat manbaiga ulangan, qolganlari 5V da 7805 chiziqli regulyator bilan ishlangan. Sxemada aytilishicha, men TO220 regulyatoridan foydalanaman, bu kerak emas, chunki mikrokontroller, displey va real vaqtda soat bir necha milliamperdan foydalanadi. Mening soatim 7805 ning 150mA quvvatiga ega bo'lgan TO92 kichikroq versiyasidan foydalanadi.

Led simlarini almashtirish N-kanalli MOSFET-lar yordamida amalga oshiriladi. Shunga qaramay, sxemada men ishlatganimdan boshqa qurilmalar ko'rsatilgan. Menda yangi IRLZ34N MOSFETlari o'rniga aynan uchta juda eski BUZ11 MOSFET bor edi. Ular yaxshi ishlaydi

Albatta, MOSFETlar va quvvat manbai oqimni boshqarishi mumkin ekan, siz xohlagancha ko'p LEDni qo'yishingiz mumkin. Sxemada men har qanday rangdagi bitta ipni chizganman, aslida bu rangning boshqa qatorlariga parallel ravishda bir nechta rang bor.

5 -qadam: Rezistorlar (Ledlar uchun)

Rezistorlar (Ledlar uchun)
Rezistorlar (Ledlar uchun)

Etakchi simlardagi rezistorlar haqida. Oq va ko'k chiroqlarning to'liq yorqinligida odatda 2,8V kuchlanishli bo'ladi.

Qizil chiroqlarda atigi 1,8 V, mening yashil chiroqlarimda 2 V to'liq yorqinlikda.

Yana bir narsa shundaki, ularning to'liq yorqinligi bir xil emas. Shunday qilib, ularni bir xil darajada yorqin qilish uchun bir oz tajriba o'tkazish kerak edi (ko'zlarimga). Chiroqlarni to'liq yorqinlikda bir xil darajada yorug 'qilib, ular past darajalarda ham bir xil darajada ravshan ko'rinadi, puls kengligi signali ularni har doim to'liq ravshanlikda yoqadi, lekin uzoqroq va qisqa vaqtlarda sizning ko'zlaringiz o'rtacha ko'rsatkichga e'tibor beradi.

Bunday hisob -kitob bilan boshlang. Quvvat manbai (mening holimda) 12V beradi.

To'rtta oq chiroqli ketma -ket 4 x 2,8V = 11,2V kuchlanish talab qilinadi, bu qarshilik uchun 0,8V qoldiradi.

Men ular 30 mA da etarlicha yorqin ekanligini aniqladim, shuning uchun qarshilik quyidagicha bo'lishi kerak:

0,8 / 0,03 = 26,6 ohm. Sxemada men 22 ohmli rezistorni qo'yganimni ko'rasiz, bu esa chiroqlarni biroz yorqinroq qiladi.

Moviy chiroqlar 30 mA da juda yorug 'edi, lekin 15 mA oq lampalarga qaraganda, ular 15 mA da 2,8 V ga yaqin edi, shuning uchun hisob 4 x 2,8 V = 11,2 V bo'lib, yana 0,8 V ni qoldiradi.

0,8 / 0,015 = 53,3 ohm, shuning uchun men 47 ohmli rezistorni tanladim.

Mening qizil lampalarim ham 15 mA teldan boshqalarga o'xshamas darajada yorug 'bo'lishi kerak, lekin ularning oqimida faqat 1,8 V bor. Shunday qilib, men ko'proq ketma -ket qo'yishim mumkin edi va qarshilik uchun hali ham "joy" bo'lishi mumkin edi.

Oltita qizil chiroq menga 6 x 1,8 = 10,8 V berdi, shuning uchun qarshilik 12 - 10,8 = 1,2 V edi.

1.2 / 0.015 = 80 ohm, men uni 68 ohmga aylantirdim. Boshqalar kabi, bir oz yorqinroq.

Men ishlatgan yashil chiroqlar 20 mA atrofida bo'lgani kabi yorqinroq. Menga bir nechtasi kerak edi (xuddi ko'klar kabi) va men to'rttasini ketma -ket qo'yishni tanladim. 20 mA da ularning ustidan 2, 1 V, 3 x 2.1 = 8.4 V beradi

Rezistor uchun 12 - 8,4 = 3,6V. Va 3,6 / 0,02 = 180 ohm.

Agar siz bu uyg'otuvchi chiroqni qursangiz, sizda bir xil quvvat manbai bo'lishi ehtimoldan yiroq emas, siz ketma -ket LEDlar sonini va kerakli rezistorlarni sozlashingiz kerak bo'ladi.

Kichik bir misol. Aytaylik, sizda 20V kuchlanish beradigan quvvat manbai bor. Men qarshilik uchun 6 x 3V = 18V, shuning uchun ketma -ket 6 ko'k (va oq) LEDni o'rnatishni tanladim. Aytaylik, sizga 40mA yorug'lik yoqadi. Rezistor 2V / 0,04 = 50 ohm bo'lishi kerak, 47 ohmli qarshilik yaxshi bo'ladi.

Men oddiy (5 mm) lampalar bilan 50mA dan oshmaslikni maslahat beraman. Ba'zilar ko'proq narsani qila oladi, lekin men xavfsiz tomonda bo'lishni yaxshi ko'raman.

6 -qadam: dasturiy ta'minot

Barcha kodlarni quyidagi manzillardan yuklab olish mumkin:

gitlab.com/WilkoL/wakeup_light_stm8s103

Agar siz tushuntirishga amal qilishni xohlasangiz, manba kodini ochiq saqlang.

Asosiy c

Main.c birinchi navbatda soat, taymer va boshqa tashqi qurilmalarni o'rnatadi. Men yozgan "haydovchilar" ning ko'pchiligi STMicroelectronics standart kutubxonasidan foydalangan holda yozgan va agar sizda ular haqida savollaringiz bo'lsa, uni ko'rsatmalar ostidagi izohda yozing.

Eeprom

Men matnlarni STM8S103 eepromiga izoh sifatida qo'yadigan "ko'rsatish uchun matn" kodini qoldirdim. Menda barcha kodlar uchun etarli flesh -xotira borligiga ishonchim komil emas edi, shuning uchun men dastur uchun barcha fleshka ega bo'lishi uchun iloji boricha eeprom -ga qo'yishga harakat qildim. Oxir -oqibat, bu kerak emas edi va men matnni miltillashga o'tkazdim. Lekin men uni main.c faylidagi sharhlangan matn sifatida qoldirdim. Keyinchalik shunga o'xshash narsani qilishim kerak bo'lganda, uni olish juda yoqimli (boshqa loyihada)

Eeprom hali ham ishlatiladi, lekin faqat uyg'onish vaqtini saqlash uchun.

Bir soniyada

Qo'shimcha qurilmalarni o'rnatgandan so'ng, kod bir soniya o'tganligini tekshiradi (taymer yordamida).

Menyu

Agar shunday bo'lsa, u tugma bosilganligini tekshiradi, agar shunday bo'lsa, u joriy vaqtni, haftaning kunini va uyg'onish vaqtini belgilaydigan menyuga kiradi. Yodingizda bo'lsin, to'liq yorqinlikka 5 daqiqa vaqt ketadi, shuning uchun uyg'onish vaqtini biroz oldinroq belgilang.

Uyg'onish vaqti eepromda saqlanadi, shuning uchun hatto elektr uzilib qolgandan keyin ham u sizni qachon uyg'otishni "biladi". Joriy vaqt, albatta, real vaqtda saqlanadi.

Joriy va uyg'onish vaqtini solishtiring

Hech qanday tugma bosilmaganda, u joriy vaqtni tekshiradi va uni uyg'onish vaqti va ish kuni bilan taqqoslaydi. Dam olish kunlari meni uyg'otishini xohlamayman:-)

Ko'pincha hech narsa qilishning hojati yo'q, shuning uchun u "LEDlar" o'zgaruvchisini OFF holatiga qo'yadi. Bu o'zgaruvchi taymerdan keladigan "o'zgarish_ intensivligi" signali bilan birgalikda tekshiriladi va sekundiga 244 marta faol bo'ladi. "Led" o'zgaruvchisi yoqilganda, intensivligi sekundiga 244 marta, o'chirilganda esa 244 marta kamayadi. Ammo o'sish bir bosqichda bo'ladi, bu pasayish 16 -qadamda, ya'ni uyg'onish nuri o'z vazifasini bajarganida, u 16 barobar tezroq, lekin baribir silliq o'chadi.

Yumshoqlik va xotiradan tashqarida

Silliqlik Sigmoid egri chizig'idan kelib chiqadi. Hisoblash juda oddiy, lekin exp () funktsiyasi tufayli suzuvchi nuqta o'zgaruvchilarida (ikki baravar) bajarilishi kerak, sigmoid.c faylini ko'ring.

Oddiy holatda, Cosmic kompilyatori / bog'lovchisi o'zgaruvchan nuqta o'zgaruvchilarini qo'llab -quvvatlamaydi. Uni yoqish oson (topganingizdan so'ng), lekin u kodning kattalashishi bilan birga keladi. Bu o'sish kodni sprintf () funktsiyasi bilan birlashganda flesh xotiraga joylashtirish uchun juda ko'p edi. Va bu funksiya raqamlarni displey uchun matnga aylantirish uchun kerak.

Itoa ()

Ushbu muammoni hal qilish uchun men itoa () funktsiyasini yaratdim. Bu Integer to Ascii funktsiyasi, u juda keng tarqalgan, lekin STMicroelectronics standart kutubxonasiga yoki Kosmik kutubxonalariga kiritilmagan.

7 -qadam: IKEA (ularsiz nima qilardik)

IKEA (ularsiz nima qilardik)
IKEA (ularsiz nima qilardik)
IKEA (ularsiz nima qilardik)
IKEA (ularsiz nima qilardik)
IKEA (ularsiz nima qilardik)
IKEA (ularsiz nima qilardik)

Rasm IKEA -dan sotib olingan. Bu 50x40 sm o'lchamdagi Ribba ramkasi. Bu ramka juda qalin va bu uning orqasida elektronikani yashirish uchun ajoyib qiladi. Afishaning yoki rasmning o'rniga men teshilgan qattiq taxtani qo'ydim. Siz uni apparat do'konidan sotib olishingiz mumkin, u erda uni ba'zida "ko'rpa -to'shak" deb atashadi, uning ichida kichik teshiklari bor, bu uni LEDni qo'yish uchun ideal holga keltirgan. Afsuski, mening taxtamdagi teshiklar 5 mm dan biroz kattaroq edi, shuning uchun men chiroqlarni "o'rnatish" uchun issiq yopishtiruvchi ishlatishim kerak edi.

Men qattiq taxtaning markazida 16x2 displey uchun to'rtburchaklar teshik qildim va ichkariga bosdim. Bu displeyda barcha elektronikasi bo'lgan tenglikni osilgan, u boshqa hech narsaga o'rnatilmagan.

Teshikli qattiq taxta qora rangga bo'yalgan, lekin matning orqasida. Vaqt va sanani belgilash uchun men tugmachalarga ikkita teshik ochdim, chunki ramka juda qalin, men tugmachalarni etarlicha yopishtirib olish uchun ramkaning ichki qismidagi teshiklarni kengaytirishga majbur bo'ldim.

Tavsiya: