विषयसूची:

वेकअप लाइट: 7 कदम (चित्रों के साथ)
वेकअप लाइट: 7 कदम (चित्रों के साथ)

वीडियो: वेकअप लाइट: 7 कदम (चित्रों के साथ)

वीडियो: वेकअप लाइट: 7 कदम (चित्रों के साथ)
वीडियो: Mother’s Day Drawing Easy Steps | Mother and Child in Moon Light | scenery 2024, नवंबर
Anonim
वेकअप लाइट
वेकअप लाइट

जैसा कि मैंने इस निर्देश को लिखा है, यह उत्तरी गोलार्ध में मध्य सर्दियों का है और इसका मतलब है कि छोटे दिन और लंबी रातें। मुझे 06:00 बजे उठने की आदत है और गर्मियों में तब तक सूरज चमकने लगेगा। सर्दियों में हालांकि, यह 09:00 बजे प्रकाश हो जाता है यदि हम भाग्यशाली हैं कि एक दिन बादल नहीं है (जो अक्सर नहीं होता है)।

कुछ समय पहले मैंने फिलिप्स द्वारा बनाई गई "वेकअप लाइट" के बारे में पढ़ा था जिसका उपयोग नॉर्वे में एक धूप वाली सुबह का अनुकरण करने के लिए किया गया था। मैंने कभी एक नहीं खरीदा, लेकिन मैं एक बनाने के बारे में सोचता रहा क्योंकि इसे खुद बनाना सिर्फ इसे खरीदने से ज्यादा मजेदार है।

आपूर्ति:

आईकेईए से चित्र फ़्रेम "रिब्बा" 50 x 40 सेमी

हार्डवेयर स्टोर से छिद्रित हार्डबोर्ड

Ebay या अन्य के माध्यम से STM8S103 विकास बोर्ड

DS1307 रीयल टाइम क्लॉक (माउसर, फ़ार्नेल, कॉनराड, आदि)

32768 हर्ट्ज घड़ी क्रिस्टल (माउसर, फार्नेल, कॉनराड, आदि)

3V लिथियम कॉइनसेल + कॉइनसेल होल्डर

BUZ11 या IRLZ34N एन-चैनल MOSFETs (3x)

BC549 (या कोई अन्य NPN ट्रांजिस्टर)

जितने चाहें उतने सफेद, लाल, नीले, हरे, आदि का नेतृत्व करें

कुछ प्रतिरोधक और संधारित्र (योजनाबद्ध देखें)

पॉवरब्रिक, १२वी से २०वी, ३ए या अधिक (जैसे पुराने लैपटॉप पॉवरसप्लाई)

चरण 1: इसे (थोड़ा) उठना आसान बनाना

इसे बनाना (थोड़ा) उठना आसान
इसे बनाना (थोड़ा) उठना आसान

विचार यह है कि सुबह जब अंधेरा होता है तब बिस्तर से उठना मुश्किल होता है। और अगर आप आर्कटिक सर्कल के करीब या उससे भी ऊपर रहते हैं तो यह बहुत लंबा अंधेरा होगा। नॉर्वे में ट्रोम्सो जैसी जगहों पर इसे बिल्कुल भी प्रकाश नहीं मिलेगा क्योंकि वहां सूरज आधा नवंबर को ही आधे रास्ते में फिर से प्रकट होने के लिए सेट करता है।

तो फिलिप्स ने जो किया वह सूर्य के उदय का अनुकरण था।

फिलिप्स धीरे-धीरे एक दीपक की चमक बढ़ाता है, जो संभवत: कई एलईडी के साथ बनाया गया है लेकिन एक एकल विसारक के पीछे छिपा हुआ है। उनका ऑफ से फुल ब्राइटनेस तक का समय 30 मिनट का होता है।

फिलिप्स की वेकअप लाइटें इतनी महंगी नहीं हैं, लेकिन इसमें सिर्फ एक ही रंग है और यह थोड़ा छोटा दिखता है। मुझे लगता है कि मैं बेहतर कर सकता हूं।

चरण 2: अधिक रंग

अधिक रंग
अधिक रंग

मेरी वेकअप लाइट चार रंगों का उपयोग करती है, सफेद, लाल, नीला और हरा। पहले सफेद एलईडी आते हैं, फिर लाल रंग के होते हैं, और कुछ नीले और हरे रंग के होते हैं। मेरा विचार यह था कि मैं न केवल चमक में वृद्धि का अनुकरण कर सकता था, बल्कि सुबह के हल्के रंग की शिफ्टिंग को भी थोड़ा सफेद से शुरू करके, थोड़ी देर बाद लाल रंग में जोड़कर और अंत में नीले और हरे रंग में मिला सकता था। मुझे यकीन नहीं है कि यह वास्तव में वास्तविक सुबह की रोशनी जैसा दिखता है, लेकिन मुझे रंगीन डिस्प्ले पसंद है जैसा कि अभी है।

मेरा फिलिप्स वेकअप लाइट से भी तेज है, फिलिप्स लाइट के 30 मिनट के बजाय, मेरा 5 मिनट से भी कम समय में 0% से 100% चमक जाता है। तो मेरा सूरज बहुत तेजी से उगता है।

ध्यान दें:

अपने वेकअप लाइट की तस्वीरें बनाना बहुत कठिन है, मैंने कई कैमरों और स्मार्टफोन के साथ कोशिश की लेकिन मेरे द्वारा बनाई गई सभी तस्वीरें वास्तविक चीज़ के साथ न्याय नहीं करती हैं।

चरण 3: सिग्मॉइड वक्र, झिलमिलाहट और "संकल्प"

सिग्मॉइड वक्र, झिलमिलाहट और
सिग्मॉइड वक्र, झिलमिलाहट और

बेशक मैं ब्राइटनिंग को जितना संभव हो उतना आसान बनाना चाहता था। मानव आंखें संवेदनशीलता में लघुगणक हैं, जिसका अर्थ है कि पूर्ण अंधेरे में वे पूरे दिन के उजाले की तुलना में अधिक संवेदनशील होते हैं। जब स्तर कम होता है तो चमक में बहुत कम वृद्धि "महसूस" करती है, जब प्रकाश 40% चमक पर होता है तो बहुत बड़ा कदम होता है। इसे प्राप्त करने के लिए मैंने सिग्मॉइड (या एस-वक्र) नामक एक विशेष वक्र का उपयोग किया, यह वक्र एक घातीय वक्र के रूप में शुरू होता है जो आधा स्तर फिर से बंद हो जाता है। मैंने पाया कि यह तीव्रता को बढ़ाने (और घटाने) का एक बहुत अच्छा तरीका है।

माइक्रोकंट्रोलर (और टाइमर) की घड़ी आवृत्ति 16 मेगाहर्ट्ज है और मैं तीन पल्स चौड़ाई सिग्नल (पीडब्लूएम) बनाने के लिए टाइमर 2 (65536) के अधिकतम रिज़ॉल्यूशन का उपयोग करता हूं। इसलिए दालें 16000000/65536=244 बार प्रति सेकेंड आती हैं। यह किसी भी झिलमिलाहट को देखने के लिए आंखों की सीमा से बहुत ऊपर है।

तो एल ई डी को पीडब्लूएम सिग्नल के साथ खिलाया जाता है जो एसटीएम 8 एस 103 माइक्रोकंट्रोलर के इस 16 बिट्टीमर के साथ बनाया गया है। कम से कम यह पीडब्लूएम सिग्नल चालू हो सकता है 1 पल्स लंबाई लंबी और शेष 65535 पल्स लंबाई बंद है।

तो उस पीएम सिग्नल से जुड़े एलईडी समय के 1/65536-वें पर होंगे: 0.0015%

अधिकतम पर वे ६५५३६/65536-वें समय पर हैं: १००%।

चरण 4: इलेक्ट्रॉनिक्स

इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स
इलेक्ट्रानिक्स

microcontroller

वेकअप लाइट का मस्तिष्क STMicroelectronics का एक STM8S103 माइक्रोकंट्रोलर है। मैं ऐसे हिस्सों का उपयोग करना पसंद करता हूं जिनमें नौकरी के लिए पर्याप्त क्षमताएं हों। एक साधारण कार्य के लिए यह STM32 माइक्रोकंट्रोलर (मेरे अन्य पसंदीदा) का उपयोग करने के लिए आवश्यक नहीं है, लेकिन एक Arduino UNO पर्याप्त नहीं था क्योंकि मुझे 16 बिट रिज़ॉल्यूशन के साथ तीन PWM सिग्नल चाहिए थे और UNO पर तीन आउटपुट चैनलों के साथ कोई टाइमर नहीं है।.

वास्तविक समय घड़ी

समय को DS1307 रीयल टाइम क्लॉक से पढ़ा जाता है जो 32768 Hz क्रिस्टल के साथ काम करता है और इसमें 3V बैकअप बैटरी होती है।

वर्तमान समय, दिन और जागने के समय की सेटिंग दो बटनों के साथ की जाती है और 16 x 2 एलसीडी कैरेक्टर डिस्प्ले दिखाया जाता है। रात में मेरे बेडरूम को वास्तव में अंधेरा रखने के लिए, एलसीडी डिस्प्ले की बैकलाइट केवल तभी चालू होती है जब एलईडी बैकलाइट की तुलना में तेज होती है और जब आप समय, दिन और जागने का समय निर्धारित कर रहे होते हैं।

शक्ति

बिजली एक पुराने लैपटॉप बिजली की आपूर्ति से आती है, मेरा 12 वी का उत्पादन करता है और 3 ए वितरित कर सकता है। जब आपके पास एक और बिजली की आपूर्ति होती है, तो प्रतिरोधों को एलईडी-स्ट्रिंग्स के साथ श्रृंखला में समायोजित करना आवश्यक हो सकता है। (निचे देखो)

एल ई डी

एल ई डी 12 वी आपूर्ति से जुड़े हुए हैं, बाकी इलेक्ट्रॉनिक्स 5 वी पर 7805 रैखिक नियामक के साथ बने हैं। योजनाबद्ध में यह कहता है कि मैं एक TO220 नियामक का उपयोग करता हूं, जिसकी आवश्यकता नहीं है क्योंकि माइक्रोकंट्रोलर, डिस्प्ले और रीयल टाइम घड़ी केवल कुछ मिलीमीटर का उपयोग करती है। मेरी घड़ी 150mA की आपूर्ति करने में सक्षम 7805 के छोटे TO92 संस्करण का उपयोग करती है।

एलईडी-स्ट्रिंग्स का स्विचिंग एन-चैनल एमओएसएफईटी के साथ किया जाता है। फिर से, योजनाबद्ध में यह मेरे द्वारा उपयोग किए जाने वाले अन्य उपकरणों को दिखाता है। मेरे पास नए IRLZ34N MOSFETs के बजाय बिल्कुल तीन बहुत पुराने BUZ11 MOSFETs थे। वे ठीक काम करते हैं

बेशक आप जितने चाहें उतने एलईडी लगा सकते हैं, जब तक कि MOSFETs और powerupply करंट को हैंडल कर सकते हैं। योजनाबद्ध में मैंने किसी भी रंग की सिर्फ एक स्ट्रिंग खींची है, वास्तव में उस रंग के अन्य तारों के समानांतर कई रंग हैं।

चरण 5: प्रतिरोधक (एल ई डी के लिए)

प्रतिरोधों (एल ई डी के लिए)
प्रतिरोधों (एल ई डी के लिए)

एलईडी स्ट्रिंग्स में प्रतिरोधों के बारे में। सफेद और नीले रंग की एलईडी में आमतौर पर 2.8V का वोल्टेज होता है, जब वे पूरी चमक में होते हैं।

लाल एलईडी में सिर्फ 1.8V है, मेरे हरे रंग के एलईडी में पूरी चमक पर 2V है।

एक और बात यह है कि उनकी पूरी चमक एक जैसी नहीं है। इसलिए उन्हें (मेरी नज़र में) समान रूप से उज्ज्वल बनाने के लिए कुछ प्रयोग करने पड़े। एल ई डी को पूर्ण चमक पर समान रूप से उज्ज्वल बनाकर, वे निचले स्तरों पर भी समान रूप से उज्ज्वल दिखेंगे, पल्स चौड़ाई संकेत हमेशा उन्हें पूर्ण चमक पर स्विच करता है लेकिन लंबे और कम समय के दौरान, आपकी आंखें औसत का ख्याल रखती हैं।

इस तरह की गणना से शुरू करें। बिजली की आपूर्ति (मेरे मामले में) 12V वितरित करती है।

श्रृंखला में चार सफेद एलईडी को 4 x 2.8V = 11.2V की आवश्यकता होती है, यह रोकनेवाला के लिए 0.8V छोड़ देता है।

मैंने पाया था कि वे 30mA पर काफी चमकीले थे इसलिए रोकनेवाला होना चाहिए:

0.8 / 0.03 = 26.6 ओम। योजनाबद्ध में आप देखते हैं कि मैंने 22 ओम अवरोधक लगाया है, जिससे एल ई डी थोड़ा सा चमकीला हो गया है।

नीली एलईडी 30mA पर बहुत उज्ज्वल थी, लेकिन 15 mA पर सफेद एलईडी की तुलना में, उनके पास 15mA पर लगभग 2.8V भी था, इसलिए गणना 4 x 2.8V = 11.2V फिर से 0.8V छोड़कर

०.८/०.०१५ = ५३.३ ओम इसलिए मैंने ४७ ओम अवरोधक चुना।

मेरे लाल एलईडी को भी कुछ 15 mA ते की आवश्यकता होती है जो दूसरों की तरह समान रूप से उज्ज्वल होते हैं, लेकिन उस समय उनके पास केवल 1.8V होता है। तो मैं श्रृंखला में और अधिक डाल सकता था और अभी भी प्रतिरोधी के लिए कुछ "कमरा" है।

छह लाल एलईडी ने मुझे 6 x 1.8 = 10.8V दिया, इसलिए रोकनेवाला पर 12 - 10.8 = 1.2V. था

१.२/०.०१५ = ८० ओम, मैंने इसे ६८ ओम बना दिया। दूसरों की तरह, थोड़ा सा उज्जवल।

मैंने जिन हरे रंग की एलईडी का इस्तेमाल किया, वे लगभग 20mA की तरह ही चमकीली हैं। मुझे बस कुछ (नीले रंग की तरह) की जरूरत थी और मैंने श्रृंखला में चार लगाने का फैसला किया। 20mA पर उनके ऊपर 2, 1V है, जो 3 x 2.1 = 8.4V दे रहा है

रोकनेवाला के लिए 12 - 8.4 = 3.6V। और 3.6 / 0.02 = 180 ओम।

यदि आप इस वेकअप लाइट का निर्माण करते हैं तो यह संभावना नहीं है कि आपके पास समान बिजली की आपूर्ति है, आपको श्रृंखला में एलईडी की संख्या और आवश्यक प्रतिरोधों को समायोजित करना होगा।

एक छोटा सा उदाहरण। मान लें कि आपके पास एक पॉवर सप्लाई है जो 20V देता है। मैंने श्रृंखला में ६ नीले (और सफेद) एल ई डी सेट करना चुना, ६ x ३ वी = १८ वी तो २ वी रोकनेवाला के लिए। और मान लें कि आपको 40mA पर चमक पसंद है। रोकनेवाला तब 2V / 0.04 = 50 ओम होना चाहिए, एक 47 ओम अवरोधक ठीक रहेगा।

मैं सलाह देता हूं कि साधारण (5 मिमी) एलईडी के साथ 50mA से अधिक न जाएं। कुछ और संभाल सकते हैं, लेकिन मुझे सुरक्षित पक्ष में रहना पसंद है।

चरण 6: सॉफ्टवेयर

सभी कोड यहां से डाउनलोड किए जा सकते हैं:

gitlab.com/WilkoL/wakeup_light_stm8s103

यदि आप स्पष्टीकरण का पालन करना चाहते हैं, तो इस निर्देश के बाकी हिस्सों के बगल में स्रोत कोड खुला रखें।

Main.c

Main.c पहले घड़ी, टाइमर और अन्य बाह्य उपकरणों को सेट करता है। अधिकांश "ड्राइवर" मैंने STMicroelectronics से मानक पुस्तकालय का उपयोग करते हुए लिखे थे और यदि आपके पास उनके बारे में कोई प्रश्न हैं, तो इसे निर्देश के नीचे एक टिप्पणी में लिखें।

ईप्रोम

मैंने "टेक्स्ट टू डिस्प्ले" कोड छोड़ा था जिसे मैं टिप्पणियों के रूप में STM8S103 के eeprom में टेक्स्ट डालने के लिए उपयोग करता था। मुझे यकीन नहीं था कि मेरे पास मेरे सभी कोड के लिए पर्याप्त फ्लैश मेमोरी है, इसलिए मैंने प्रोग्राम के लिए सभी फ्लैश रखने के लिए जितना संभव हो सके ईप्रोम में डालने की कोशिश की। अंत में यह आवश्यक नहीं साबित हुआ और मैंने टेक्स्ट को फ्लैश करने के लिए स्थानांतरित कर दिया। लेकिन मैंने इसे main.c फाइल में कमेंट आउट टेक्स्ट के रूप में छोड़ दिया। यह होना अच्छा है, जब मुझे बाद में कुछ ऐसा ही करने की आवश्यकता होती है (किसी अन्य प्रोजेक्ट में)

eeprom अभी भी उपयोग किया जाता है, लेकिन केवल वेक-अप-टाइम को संग्रहीत करने के लिए।

एक बार एक सेकंड

बाह्य उपकरणों को स्थापित करने के बाद कोड जांचता है कि क्या एक सेकंड बीत चुका है (एक टाइमर के साथ किया गया)।

मेन्यू

यदि ऐसा है तो यह जांचता है कि क्या कोई बटन दबाया गया था, यदि ऐसा है तो यह उस मेनू में प्रवेश करता है जहां आप वर्तमान समय, सप्ताह का दिन और जागने का समय निर्धारित कर सकते हैं। याद रखें कि ऑफ से फुल ब्राइटनेस में जाने में लगभग 5 मिनट का समय लगता है, इसलिए वेकअप टाइम थोड़ा पहले सेट करें।

जागने का समय eeprom में संग्रहीत किया जाता है ताकि बिजली आउटेज के बाद भी यह "जान सके" कि आपको कब जगाना है। वर्तमान समय निश्चित रूप से वास्तविक समय घड़ी में संग्रहीत है।

वर्तमान और जागने के समय की तुलना करें

जब कोई बटन नहीं दबाया गया तो यह वर्तमान समय की जांच करता है और इसकी तुलना वेकअप समय और कार्यदिवस से करता है। मैं नहीं चाहता कि यह मुझे सप्ताहांत में जगाए:-)

अधिकांश समय कुछ भी करने की आवश्यकता नहीं होती है, इसलिए यह चर "एलईडी" को बंद करने के लिए और चालू करने के लिए सेट करता है। इस चर को "change_intensity" सिग्नल के साथ एक साथ चेक किया जाता है, जो एक टाइमर से भी आ रहा है और प्रति सेकंड 244 बार सक्रिय है। इसलिए जब "एलईडी" चर चालू होता है तो तीव्रता प्रति सेकंड 244 गुना बढ़ जाती है और जब यह बंद हो जाती है तो प्रति सेकंड 244 गुना घट जाती है। लेकिन वृद्धि एकल चरणों में होती है जहां कमी 16 के चरणों में होती है, जिसका अर्थ है कि जब वेकअप लाइट ने उम्मीद से अपना काम किया है, तो यह 16 गुना तेज लेकिन फिर भी सुचारू रूप से बंद हो जाती है।

चिकनाई और स्मृति से बाहर

चिकनाई सिग्मॉइड वक्र गणना से आती है। गणना काफी सरल है लेकिन इसे क्स्प () फ़ंक्शन के कारण फ्लोटिंग पॉइंट वेरिएबल्स (डबल्स) में करने की आवश्यकता है, फ़ाइल देखें sigmoid.c.

मानक स्थिति में कॉस्मिक कंपाइलर/लिंकर के पास फ्लोटिंग पॉइंट वेरिएबल्स के लिए समर्थन नहीं है। इसे चालू करना आसान है (एक बार जब आप इसे पा लेते हैं) लेकिन यह कोड आकार में वृद्धि के साथ आता है। स्प्रिंटफ () फ़ंक्शन के साथ संयुक्त होने पर कोड को फ्लैश मेमोरी में फिट करने के लिए यह वृद्धि बहुत अधिक थी। और डिस्प्ले के लिए नंबरों को टेक्स्ट में बदलने के लिए उस फंक्शन की जरूरत होती है।

इटोआ ()

इस समस्या का समाधान करने के लिए मैंने itoa() फ़ंक्शन बनाया है। यह एक Integer To Ascii फ़ंक्शन है जो सामान्य है, लेकिन STMicroelectronics मानक पुस्तकालय के साथ शामिल नहीं है, न ही कॉस्मिक पुस्तकालयों के साथ।

चरण 7: आईकेईए (हम उनके बिना क्या करेंगे)

आईकेईए (हम उनके बिना क्या करेंगे)
आईकेईए (हम उनके बिना क्या करेंगे)
आईकेईए (हम उनके बिना क्या करेंगे)
आईकेईए (हम उनके बिना क्या करेंगे)
आईकेईए (हम उनके बिना क्या करेंगे)
आईकेईए (हम उनके बिना क्या करेंगे)

से तस्वीर आईकेईए से खरीदी गई थी। यह 50 x 40 सेमी का रिब्बा फ्रेम है। यह फ्रेम काफी मोटा है और यह इसके पीछे इलेक्ट्रॉनिक्स को छिपाने के लिए बहुत अच्छा बनाता है। एक पोस्टर या तस्वीर के बजाय मैंने छिद्रित हार्डबोर्ड के एक टुकड़े में डाल दिया। आप इसे हार्डवेयर स्टोर पर खरीद सकते हैं जहां इसे कभी-कभी "बेड बोर्ड" कहा जाता है, इसमें छोटे छेद होते हैं जो इसे एलईडी लगाने के लिए आदर्श बनाते हैं। दुर्भाग्य से मेरे बोर्ड में छेद 5 मिमी से थोड़े बड़े थे इसलिए मुझे एलईडी को "माउंट" करने के लिए गर्म-गोंद का उपयोग करना पड़ा।

मैंने 16x2 डिस्प्ले के लिए हार्ड बोर्ड के केंद्र में एक आयताकार छेद बनाया और इसे दबाया। सभी इलेक्ट्रॉनिक्स के साथ पीसीबी इस डिस्प्ले पर लटका हुआ है, यह किसी और चीज पर नहीं लगा है।

छिद्रित हार्डबोर्ड को काले रंग से पेंट किया गया था और लेकिन चटाई के पीछे। मैंने समय और तारीख निर्धारित करने के लिए बटनों के लिए फ्रेम में दो छेद ड्रिल किए, क्योंकि फ्रेम काफी मोटा है, इसलिए बटन को पर्याप्त रूप से चिपकाने के लिए मुझे फ्रेम के अंदर के छेदों को चौड़ा करना पड़ा।

सिफारिश की: