विषयसूची:

गुप्त दीवार घड़ी: 27 कदम (चित्रों के साथ)
गुप्त दीवार घड़ी: 27 कदम (चित्रों के साथ)

वीडियो: गुप्त दीवार घड़ी: 27 कदम (चित्रों के साथ)

वीडियो: गुप्त दीवार घड़ी: 27 कदम (चित्रों के साथ)
वीडियो: छत में कहाँ हिडन और लटक बीम दें | Where to Provide Hidden and Latak beam in Roof? 2024, जुलाई
Anonim
गुप्त दीवार घड़ी
गुप्त दीवार घड़ी

समय बीत जाता है जिसे हम नियंत्रित नहीं कर सकते। यह उसी दर पर होता है जब हम सो रहे होते हैं, जाग रहे होते हैं, ऊब जाते हैं या लगे रहते हैं। वर्तमान घटनाओं के साथ, यह याद रखना महत्वपूर्ण है कि समय बीत जाएगा। जबकि हम समय बीतने का इंतजार कर रहे हैं, क्यों न कुछ ऐसा बनाया जाए जो समय बीतने को देखने के लिए और अधिक आकर्षक बना दे।

यह घड़ी बर्लिन, जर्मनी में पाए जाने वाले मेनजेनलेहरुहर से प्रेरित थी और इसे उसी तरह से पढ़ा जा सकता है। मूल की तरह, यह प्रकाशित, रंगीन क्षेत्रों के माध्यम से समय बताता है।

इसमें 96 एलईडी हैं जो 52 'अंक' क्षेत्रों को रोशन करती हैं। मूल के विपरीत, इसमें एक गोलाकार डिज़ाइन होता है जिसमें क्षैतिज बार लेआउट के बजाय सेकंड रिंग शामिल होता है। बाहरी बैंड मध्य बिंदु के साथ सेकंड को इंगित करता है, अगले दो बैंड मिनटों को इंगित करते हैं, अंतिम आंतरिक बैंड घंटों को इंगित करते हैं।

यदि आपके हाथ में कुछ स्क्रैप सामग्री और अतिरिक्त समय है, तो इस समय का उपयोग कुछ ऐसा बनाने के लिए क्यों न करें जो इसे दिखाएगा!

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

छवि
छवि

चरण 1: घड़ी को कैसे पढ़ें

घड़ी को आंतरिक मंडलियों से बाहरी तक पढ़ा जाता है। चार क्षेत्रों की आंतरिक रिंग दूसरी रिंग के साथ-साथ, चार क्षेत्रों के साथ-साथ पूरे पांच घंटे को दर्शाती है, जो 24 घंटे के प्रारूप में घंटे के मूल्य को प्रदर्शित करते हुए, प्रत्येक में एक पूर्ण घंटे को दर्शाती है। तीसरे वलय में ग्यारह फ़ील्ड होते हैं, जो प्रत्येक में पाँच पूर्ण मिनट दर्शाते हैं, अगली रिंग में अन्य चार फ़ील्ड होते हैं, जो प्रत्येक एक पूर्ण मिनट को चिह्नित करते हैं। अंत में 29 क्षेत्रों का बाहरी वलय सम सेकंडों को दर्शाता है, जिसमें केंद्र में प्रकाश टिमटिमाते हुए विषम (जब जलाया जाता है) या सम-संख्या (जब जला हुआ) सेकंड को दर्शाता है।

छवि
छवि

उदाहरण के लिए, उपरोक्त छवि में पांच घंटे के अंकों में से 1, एक घंटे के अंकों में से 3, पांच मिनट के अंकों में से 8, एक मिनट के अंकों में से 4, और दो दूसरे अंकों के 23 और मध्य दूसरे अंक में रोशनी होती है।

1x5 + 3x1: 8x5 + 4x1: 23x2 + 1x1 = 8:44:47 = 8:44:47 पूर्वाह्न

छवि
छवि

ऊपर दिखाया गया समय है: 3x5 + 0x1: 3x5 + 2x1: 5x2 + 1x1 = 15:17:11 = 3:17:11 अपराह्न

छवि
छवि

ऊपर दिखाया गया समय है: 3x5 + 2x1: 3x5 + 3x1: 16x2 + 1x1 = 17:18:33 = 5:18:33 अपराह्न

चरण 2: उपकरण और सामग्री

उपकरण और सामग्री
उपकरण और सामग्री
उपकरण और सामग्री
उपकरण और सामग्री
उपकरण और सामग्री
उपकरण और सामग्री

इलेक्ट्रॉनिक्स सामग्री:

  • अरुडिनो नैनो
  • वास्तविक समय घड़ी
  • पता करने योग्य एलईडी
  • बिजली का प्लग
  • बिजली का केबल
  • यूएसबी पावर प्लग
  • प्रकाश आश्रित प्रतिरोधी और संतुलित प्रतिरोधी (यदि आप इसे रात में मंद करना चाहते हैं)
  • वायर

लकड़ी की सामग्री:

  • 3/4 इंच प्लाईवुड
  • पतला प्लाईवुड
  • स्क्रैप वुड (मैंने 2x4 का उपयोग किया लेकिन दृढ़ लकड़ी भी काम करेगी)
  • रंग
  • ऐक्रेलिक 30 x 36 इंच। शीट (स्थानीय गृह सुधार स्टोर पर मिली)
  • विंडो टिंट (स्थानीय रूप से स्रोत का प्रयास करें। यदि कोई उपलब्ध नहीं है, तो आप यहां एक बड़ी शीट पा सकते हैं)
  • विंडो टिंट एप्लिकेशन फ्लूइड (मैंने स्प्रे बोतल में बेबी शैम्पू के साथ मिश्रित पानी का इस्तेमाल किया)
  • विंडेक्स
  • मीट पैक करने वाला पेपर
  • शिकंजा
  • आसंजक स्प्रे
  • गोंद
  • ग्लू स्टिक

उपकरण:

  • शासक
  • Xacto चाकू
  • फीता
  • दो तरफा टेप
  • दिशा सूचक यंत्र
  • सर्कल कटिंग जिगो
  • आरा
  • पट्टी आरा
  • स्पिंडल सैंडर
  • पाम सैंडर
  • डिस्क सैंडर
  • राउटर टेबल
  • सूआ
  • ड्रिल और ड्रिल बिट्स/ड्राइवर
  • क्लैंप
  • सोल्डरिंग आयरन
  • मिलाप
  • वायर स्ट्रिपर्स

चरण 3: टेम्प्लेट इकट्ठा करें

टेम्पलेट्स इकट्ठा करें
टेम्पलेट्स इकट्ठा करें
टेम्पलेट्स इकट्ठा करें
टेम्पलेट्स इकट्ठा करें

बड़े टेम्प्लेट के लिए, Adobe Reader में पोस्टर सेटिंग का उपयोग करके इसे प्रिंट करें। प्रत्येक पेपर के लिए हाशिये को ट्रिम करें और एक साथ टेप करें। ऊर्ध्वाधर, क्षैतिज और विकर्ण रेखाएं टेम्पलेट को संरेखित करने में मदद करेंगी। सभी पृष्ठों पर छोटी संख्याएँ होती हैं ताकि यदि वे क्रम से बाहर हो जाएँ तो उन्हें व्यवस्थित रखने में मदद मिल सके।

आवश्यक सभी टेम्प्लेट और फ़ाइलें चरण 26 में पाई जाती हैं।

चरण 4: रफ कट सर्कल

रफ कट सर्किल
रफ कट सर्किल
रफ कट सर्किल
रफ कट सर्किल

3/4 इंच की प्लाईवुड की शीट पर दो टेम्प्लेट बिछाते हुए, एक कम्पास के साथ सर्कल को जरूरत से थोड़ा बड़ा बनाएं। एक आरा का उपयोग करके, किसी न किसी आकार को काट लें।

चरण 5: आकार में कटौती

आकार में कटौती
आकार में कटौती
आकार में कटौती
आकार में कटौती

बैंडसॉ पर एक सर्कल कटिंग जिग का उपयोग करके, सर्कल को अंतिम आकार में काट लें।

चरण 6: टेम्पलेट लागू करें

टेम्प्लेट लागू करें
टेम्प्लेट लागू करें
टेम्प्लेट लागू करें
टेम्प्लेट लागू करें
टेम्प्लेट लागू करें
टेम्प्लेट लागू करें

स्प्रे चिपकने का उपयोग करके, प्रत्येक टेम्पलेट को एक सर्कल में लागू करें। टेम्पलेट के केंद्र में एक कील को सर्कल पर केन्द्रित करने के लिए डालें।

चरण 7: कट टेम्पलेट

कट टेम्पलेट
कट टेम्पलेट
कट टेम्पलेट
कट टेम्पलेट
कट टेम्पलेट
कट टेम्पलेट

एक आरा का उपयोग करके, टेम्पलेट की प्रत्येक व्यक्तिगत विंडो को काट लें। यदि आपके पास सीएनसी तक पहुंच है, तो यह कदम बहुत आसान होगा! मैंने इस प्रक्रिया में मदद करने के लिए प्रत्येक विंडो में एक छेद ड्रिल किया। जैसे ही आप काटना शुरू करते हैं, टेम्पलेट बंद होना शुरू हो सकता है। यदि ऐसा होता है, तो आप इसे टेप के छोटे टुकड़ों के साथ सुरक्षित कर सकते हैं।

चरण 8: सैंडिंग

सेंडिंग
सेंडिंग
सेंडिंग
सेंडिंग
सेंडिंग
सेंडिंग

एक छड़ी, एक स्पिंडल सैंडर, और पाम सैंडर, रेत पर लागू सैंडपेपर का उपयोग करके और आरा द्वारा छोड़े गए किसी न किसी कट को चिकना करें।

चरण 9: एलईडी के लिए ड्रिल होल्ड

एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड
एलईडी के लिए ड्रिल होल्ड

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

चरण 10: बोर्डों को मिलाएं

बोर्डों को मिलाएं
बोर्डों को मिलाएं
बोर्डों को मिलाएं
बोर्डों को मिलाएं
बोर्डों को मिलाएं
बोर्डों को मिलाएं

आगे और पीछे के बोर्ड को स्वैप करें और एलईडी बोर्ड के पीछे फ्रेम के कुछ हिस्सों को ट्रेस करें। फ्रेम को वापस एलईडी बोर्ड के सामने ले जाएं और छेद ड्रिल करें और टुकड़ों को एक साथ पेंच करें।

अधिक जानकारी के लिए छवि नोट देखें।

चरण 11: एल ई डी डालें

एल ई डी डालें
एल ई डी डालें
एल ई डी डालें
एल ई डी डालें

एलईडी बोर्ड के पीछे से एलईडी को पुश करें। छेदों में इतनी जगह होनी चाहिए कि आपको एक सर्कल से दूसरे सर्कल में जाने के अलावा किसी भी तार को काटने की जरूरत न पड़े।

पीछे से, एल ई डी केंद्र में शुरू होते हैं और फिर काउंटर क्लॉकवाइज और फिर अगली रिंग तक चलते हैं।

चरण 12: खंड 1 संलग्न करें

खंड 1 संलग्न करें
खंड 1 संलग्न करें
खंड 1 संलग्न करें
खंड 1 संलग्न करें
खंड 1 संलग्न करें
खंड 1 संलग्न करें

3/4 इंच प्लाईवुड (चरण 26 में पाया गया) पर संलग्न "सेगमेंट 1" टेम्पलेट से 9 खंडों को काटें। गोंद और क्लैंप के साथ एलईडी बोर्ड से संलग्न करें। यदि आप अधीर हैं तो आप इसे जगह में जकड़ने के लिए नाखूनों का भी उपयोग कर सकते हैं।

एक बार सूखने के बाद, किनारे को डिस्क सैंडर से फ्लश करें।

चरण 13: पेंट

रंग
रंग
रंग
रंग
रंग
रंग
रंग
रंग

एलईडी बोर्ड और फ्रेम दोनों पर स्प्रे पेंट करें। अगर मैं इसे फिर से बना रहा होता, तो मैं काले रंग के बजाय सफेद रंग का उपयोग करना चुनता क्योंकि यह लेंस के माध्यम से अधिक प्रतिबिंबित होगा।

चरण 14: खंड 2

खंड 2
खंड 2
खंड 2
खंड 2
खंड 2
खंड 2

लकड़ी से जुड़े "सेगमेंट 2" टेम्पलेट से 9 खंडों को काट लें जो कि 2 3/8 इंच मोटा है (चरण 26 में पाया गया)। मैंने दुकान के आसपास से कुछ स्क्रैप 2x4 का इस्तेमाल किया। खंडों को सुखाएं और सुनिश्चित करें कि यह बैंड क्लैंप के साथ अच्छी तरह से फिट बैठता है। यदि सब कुछ ठीक हो जाता है, तो गोंद को चिपके रहने के लिए पेंटर्स टेप के साथ बाहर को कवर करें और अगले चरण पर जाने से पहले कम से कम एक घंटे के लिए सूखने दें।

चरण 15: खंड 3

खंड 3
खंड 3
खंड 3
खंड 3
खंड 3
खंड 3

3/8 इंच मोटी स्क्रैपवुड (चरण 26 में पाया गया) से जुड़े "सेगमेंट 3" टेम्पलेट से 9 सेगमेंट काट लें। उन्हें गोंद दें ताकि खंड 2 के सीम प्रत्येक खंड 3 के बीच में हों। यह अंगूठी को मजबूत करेगा।

चरण 16: चिकनी अंगूठी और पेंट

चिकनी अंगूठी और पेंट
चिकनी अंगूठी और पेंट
चिकनी अंगूठी और पेंट
चिकनी अंगूठी और पेंट

मैंने बड़ी रिंग के कटे हुए टुकड़े से एक कस्टम सैंडिंग ब्लॉक बनाया। रिंग के अंदर और बाहर रेत करें और ग्लू अप प्रक्रिया के दौरान दिखाई देने वाली किसी भी दरार को भरें।

एक बार चिकना होने पर, काले रंग के कुछ कोट और स्पष्ट कोट लागू करें।

चरण 17: ऐक्रेलिक काटें

ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें
ऐक्रेलिक काटें

ऐक्रेलिक को 30 x 30 इंच के वर्ग में काटें और केंद्र को चिह्नित करें। ऐक्रेलिक को दो तरफा टेप के साथ संलग्न करें। फ्लश ट्रिम राउटर बिट का उपयोग करके, अतिरिक्त ऐक्रेलिक को हटा दें

चरण 18: विंडो टिंट लागू करें

विंडो टिंट लागू करें
विंडो टिंट लागू करें
विंडो टिंट लागू करें
विंडो टिंट लागू करें
विंडो टिंट लागू करें
विंडो टिंट लागू करें

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

चरण 19: डिफ्यूज़र संलग्न करें

डिफ्यूज़र संलग्न करें
डिफ्यूज़र संलग्न करें
डिफ्यूज़र संलग्न करें
डिफ्यूज़र संलग्न करें

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

चरण 20: इन्सुलेशन लागू करें

इन्सुलेशन लागू करें
इन्सुलेशन लागू करें

मैंने बिजली और डेटा लाइनों को अलग रखने के लिए बिजली के टेप का इस्तेमाल किया।

चरण 21: इकट्ठा

इकट्ठा
इकट्ठा
इकट्ठा
इकट्ठा
इकट्ठा
इकट्ठा

ऐक्रेलिक से अन्य सुरक्षात्मक परत निकालें। ऐक्रेलिक को रिंग के अंदर विंडो टिंट की तरफ ऊपर की ओर रखें। घड़ी के शेष भाग को रिंग में स्लाइड करें। रिंग के माध्यम से और एलईडी बोर्ड में एक छेद ड्रिल करते समय हल्का दबाव लागू करने के लिए एक क्लैंप का उपयोग करें। यह पीछे से लगभग 1 1/8 इंच होना चाहिए। सावधान रहें कि एलईडी में ड्रिल न करें। छेद में एक ट्रस हेड स्क्रू स्क्रू करें। घड़ी की परिधि के चारों ओर कुल आठ स्क्रू के लिए दोहराएं।

चरण 22: एंकर पॉइंट संलग्न करें

एंकर पॉइंट संलग्न करें
एंकर पॉइंट संलग्न करें

गोंद एंकर घड़ी के पीछे की ओर इशारा करता है ताकि पिछला कवर संलग्न किया जा सके। ये 3/4 इंच मोटे और लगभग 2 इंच लंबे होते हैं।

चरण 23: ड्रिल पावर और एलडीआर सेंसर छेद

ड्रिल पावर और एलडीआर सेंसर होल्स
ड्रिल पावर और एलडीआर सेंसर होल्स

पावर प्लग के लिए घड़ी के नीचे से पावर होल और लाइट डिपेंडेंट रेसिस्टर (LDR) सेंसर के लिए शीर्ष में एक छेद ड्रिल करें।

चरण 24: इलेक्ट्रॉनिक्स धारक स्थापित करें

इलेक्ट्रॉनिक्स धारक स्थापित करें
इलेक्ट्रॉनिक्स धारक स्थापित करें
इलेक्ट्रॉनिक्स धारक स्थापित करें
इलेक्ट्रॉनिक्स धारक स्थापित करें

RTC और Arduino Nano के लिए 3D प्रिंटेड होल्डर इंस्टॉल करें। सभी इलेक्ट्रॉनिक्स कनेक्ट करें जैसा कि योजनाबद्ध में दिखाया गया है।

चरण 25: पिछला कवर

पीछे का कवर
पीछे का कवर
पीछे का कवर
पीछे का कवर
पीछे का कवर
पीछे का कवर
पीछे का कवर
पीछे का कवर

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

चरण 26: कोड और फ़ाइलें

फिर से, मैं यहाँ उपयोग किए जाने वाले कई Arduino पुस्तकालयों का उपयोग करने के लिए बिल्कुल नया हूँ, इसलिए मुझे यकीन है कि उनका उपयोग करने के बेहतर तरीके हैं।

यदि परियोजना को ऊपर या नीचे किया जाता है, तो आप कितने एल ई डी का उपयोग कर रहे हैं, इसके आधार पर मैंने कोड को आसानी से अपडेट करने के लिए लिखा था। आपको बस एलईडी की शुरुआत और समाप्ति की स्थिति के साथ-साथ कितने एलईडी प्रत्येक अंक का हिस्सा हैं, अपडेट करना है।

मैंने कुछ एनिमेशन जोड़े हैं जो स्टार्टअप के साथ-साथ घंटे पर भी चलते हैं। वे बोर्ड पर मौजूद यादृच्छिक संख्या जनरेटर के आधार पर सूडो यादृच्छिक हैं।

आप घड़ी को रंगों के माध्यम से साइकिल चलाने के लिए सेट कर सकते हैं या एक पर स्थिर रह सकते हैं। आप समय को पढ़ने में मदद करने के लिए संकेतक अंक को भी हाइलाइट कर सकते हैं जैसा कि परिचय में दिखाया गया है।

अपनी इच्छानुसार कोड को संपादित करने और बदलने के लिए स्वतंत्र महसूस करें।

#शामिल "RTClib.h"

#include #define NUM_LEDS 96 #define DATA_PIN 3 #define LDR A0 RTC_DS1307 rtc; बूलियन टाइम चेंज = झूठा; बूलियन प्रिंटटाइम = झूठा; // यदि आप कंसोल में आउटपुट देखना चाहते हैं तो सही पर सेट करें। डिबगिंग के लिए सहायक। बूलियन रेडडाउन = सच; बूलियन ग्रीनडाउन = झूठा; बूलियन ब्लूडाउन = झूठा; बूलियन चक्र = झूठा; // यदि आप घड़ी के रंगों को चक्र बूलियन हाइलाइट = सच करना चाहते हैं तो सही सेट करें; // 'अंतिम अंक' को हाइलाइट करने के लिए सही सेट करें। // समय के प्रत्येक समूह के प्रारंभ और अंत के स्थान SECOND_1_LOCATION = 0; कॉन्स्ट इंट HOUR_2_START_LOCATION = 1; कॉन्स्ट इंट HOUR_2_END_LOCATION = 8; कॉन्स्ट इंट HOUR_1_START_LOCATION = 9; कॉन्स्ट इंट HOUR_1_END_LOCATION = 20; कॉन्स्ट इंट MINUTE_2_START_LOCATION = 21; कॉन्स्ट इंट MINUTE_2_END_LOCATION = 42; कॉन्स्ट इंट MINUTE_1_START_LOCATION = 43; कॉन्स्ट इंट MINUTE_1_END_LOCATION = 66; कॉन्स्ट इंट SECOND_2_START_LOCATION = 67; कॉन्स्ट इंट SECOND_2_END_LOCATION = 95; कॉन्स्ट इंट LEDS_PER_HOUR_1 = 3; कॉन्स्ट इंट LEDS_PER_HOUR_2 = 2; कॉन्स्ट इंट LEDS_PER_MINUTE_1 = 6; कॉन्स्ट इंट LEDS_PER_MINUTE_2 = 2; // मल्टीप्लायरों का उपयोग टाइम कास्ट को विभाजित करने के लिए किया जाता है int MULTIPLIER_FIVE = 5; कॉन्स्ट इंट MULTIPLIER_TWO = 2; कॉन्स्ट इंट START_UP_DELAY = 1; // स्टार्टअप एनीमेशन को तेज या धीमा करने के लिए इसे बदलें int CYCLE_SPEED = 1; // रंग बदलने के चक्र के लिए यहां दर बदलें (1 से ऊपर होना चाहिए) // चर घोषित करें int lastSecond = 0; इंट करंटऑवर = 0; इंट करंटमिनट = 0; इंट करंटसेकंड = 0; इंट घंटा1 = 0; इंट घंटा2 = 0; इंट मिनट1 = 0; इंट मिनट2 = 0; इंट सेकेंड1 = 0; इंट सेकेंड2 = 0; इंट साइकिलकाउंट = 1; फ्लोट फेडवैल्यू = २५५; फ्लोट फीडचेक = २५५; uint8_t उज्ज्वल = 255; इंट नंबरऑफएनिमेशन = 5; इंट रैंडमनेस = 0; // रंग सेट करें uint8_t लाल = 0; uint8_t हरा = 0; uint8_t नीला = २५५; uint8_t हाइलाइट_रेड = 60; uint8_t हाइलाइट_ग्रीन = 60; uint8_t हाइलाइट_ब्लू = 255; // सीआरजीबी एलईडी [NUM_LEDS] एलईडी की सरणी को परिभाषित करें; शून्य सेटअप () {Serial.begin(१९२००); FastLED.addLeds(LEDs, NUM_LEDS); LEDS.setBrightness (उज्ज्वल); FastLED.clear (); आरटीसी.बेगिन (); // समय निर्धारित करने के लिए नीचे दी गई लाइन को अनकम्मेंट करें। // rtc.adjust (दिनांक समय (२०२०, २, १९, २३, ५९, ५०)); // rtc.adjust (दिनांक समय (F(_DATE_), F(_TIME_))); // स्टार्टअप एनीमेशन चेतन (यादृच्छिकता); } शून्य लूप () {// समय प्राप्त करें दिनांक समय अब = rtc.now (); वर्तमान घंटा = अब। घंटा (); वर्तमान मिनट = अब। मिनट (); करंटसेकंड = अब।सेकंड (); समय परिवर्तन = झूठा; // आरटीसी के बिना मैन्युअल रूप से समय निर्धारित करने के लिए इनका उपयोग करें। डिबगिंग के लिए सहायक // currentHour = 5; // वर्तमान मिनट = 30; // करंटसेकंड = 30; // सभी बिट्स को शून्य पर रीसेट करें (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) {leds = CRGB::Black; } // निर्धारित समय // घंटा 1 घंटा1 सेट करें = (वर्तमान घंटा% MULTIPLIER_FIVE) * LEDS_PER_HOUR_1; // यह (int i = HOUR_1_START_LOCATION; i 0)// && घंटा1 <12) { के लिए (int i = (HOUR_1_START_LOCATION + घंटा1 - 1); i>= (HOUR_1_START_LOCATION + घंटा1 - LEDS_PER_HOUR_1); i--) { एलईडी = CRGB (हाइलाइट_रेड, हाइलाइट_ग्रीन, हाइलाइट_ब्लू); } } // घंटे 2 घंटे 2 सेट करें = (वर्तमान घंटा / MULTIPLIER_FIVE) * LEDS_PER_HOUR_2; // यह (int i = HOUR_2_START_LOCATION; i 0)// && घंटा2 <8) { के लिए (int i = (HOUR_2_START_LOCATION + घंटा2 - 1); i>= (HOUR_2_START_LOCATION + घंटा2 - LEDS_PER_HOUR_2); i--) { एलईडी = CRGB (हाइलाइट_रेड, हाइलाइट_ग्रीन, हाइलाइट_ब्लू); } } // मिनट सेट करें // मिनट 1 मिनट 1 सेट करें = (वर्तमान मिनट% MULTIPLIER_FIVE) * LEDS_PER_MINUTE_1; // यह (int i = MINUTE_1_START_LOCATION; i 0)// && min1 <24) { के लिए (int i = (MINUTE_1_START_LOCATION + min1 - 1); i>= (MINUTE_1_START_LOCATION + मिनट1 - LEDS_PER_MINUTE_1); i--) { एलईडी = CRGB (हाइलाइट_रेड, हाइलाइट_ग्रीन, हाइलाइट_ब्लू); } } // मिनट 2 मिनट 2 सेट करें = (वर्तमान मिनट / MULTIPLIER_FIVE) * LEDS_PER_MINUTE_2; // यह समय इकाई के कुल एल ई डी की गणना करेगा (int i = MINUTE_2_START_LOCATION; i 0)// && min2 <22) { के लिए (int i = (MINUTE_2_START_LOCATION + min2 - 1); i>= (MINUTE_2_START_LOCATION + मिनट2 - LEDS_PER_MINUTE_2); i--) { एलईडी = CRGB (हाइलाइट_रेड, हाइलाइट_ग्रीन, हाइलाइट_ब्लू); } } // दूसरा सेट करें अगर (currentSecond != lastSecond) {timeChange = true; } // दूसरा 1 सेकंड1 सेट करें = वर्तमान सेकेंड% MULTIPLIER_TWO; अगर (दूसरा1 == 1) { एलईडी [SECOND_1_LOCATION] = CRGB (लाल, हरा, नीला); } // दूसरा 2 सेकंड 2 सेट करें = वर्तमान सेकेंड / MULTIPLIER_TWO; for (int i = SECOND_2_START_LOCATION; i 0)// && second2 <29) { for (int i = (SECOND_2_START_LOCATION + second2 - 1); i>= (SECOND_2_START_LOCATION + second2 - 1); i--) { लेड = सीआरजीबी (हाइलाइट_रेड, हाइलाइट_ग्रीन, हाइलाइट_ब्लू); } } lastSecond = currentSecond; // कार्यक्रम के चक्रों की गणना करें और एलईडी के रंग को कभी भी CYCLE_SPEED चक्रों में बदलने के लिए सेटकलर फ़ंक्शन को कॉल करें। अगर (चक्र गणना ब्राइट) // {// फेडवैल्यू = ब्राइट; // } // और अगर (fadeValue <150) // {// fadeValue = 150; // } // LEDS.setBrightness (fadeValue); FastLED.शो (); // कंसोल पर वर्तमान समय प्रिंट करें यदि (समय बदलें == सत्य && प्रिंटटाइम == सत्य) {प्रिंटटोकोनसोल (); } } // एनिमेशन फंक्शन यहां और एनिमेशन जोड़ें जैसा कि आप चाहते हैं कि शून्य चेतन (इंट सेलेक्ट) {if (select == 0) { के लिए (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) { LEDs = CRGB(लाल, हरा, नीला); FastLED.शो (); विलंब (START_UP_DELAY); } के लिए (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) {leds = CRGB::Black; FastLED.शो (); विलंब (START_UP_DELAY); } } और अगर (सेलेक्ट == 1) { के लिए (इंट आई = 0; आई <250; आई ++) {इंट लाइट = रैंडम (95); एल ई डी [प्रकाश] = सीआरजीबी (लाल, हरा, नीला); FastLED.शो (); } } और अगर (सेलेक्ट == 2) {एलईडी [0] = सीआरजीबी (लाल, हरा, नीला); के लिए (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i++) { LEDs[SECOND_2_START_LOCATION + i] = CRGB(लाल, हरा, नीला); अगर (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) { एलईडी[MINUTE_1_START_LOCATION + i] = CRGB(लाल, हरा, नीला); } अगर (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) { एलईडी[MINUTE_2_START_LOCATION + i] = CRGB(लाल, हरा, नीला); } अगर (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) { एलईडी [HOUR_1_START_LOCATION + i] = CRGB (लाल, हरा, नीला); } अगर (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) { LEDs[HOUR_2_START_LOCATION + i] = CRGB (लाल, हरा, नीला); } देरी (34); FastLED.शो (); }} और अगर (सेलेक्ट == 3) {एलईडी [0] = सीआरजीबी (लाल, हरा, नीला); के लिए (int i = 0; i <= SECOND_2_END_LOCATION - SECOND_2_START_LOCATION; i++) { LEDs[SECOND_2_END_LOCATION - i] = CRGB(लाल, हरा, नीला); अगर (i <= (MINUTE_1_END_LOCATION - MINUTE_1_START_LOCATION)) { एलईडी[MINUTE_1_END_LOCATION - i] = CRGB (लाल, हरा, नीला); } अगर (i <= (MINUTE_2_END_LOCATION - MINUTE_2_START_LOCATION)) { LEDs[MINUTE_2_END_LOCATION - i] = CRGB (लाल, हरा, नीला); } अगर (i <= (HOUR_1_END_LOCATION - HOUR_1_START_LOCATION)) { LEDs[HOUR_1_END_LOCATION - i] = CRGB (लाल, हरा, नीला); } अगर (i <= (HOUR_2_END_LOCATION - HOUR_2_START_LOCATION)) { LEDs[HOUR_2_END_LOCATION - i] = CRGB (लाल, हरा,नीला); } देरी (34); FastLED.शो (); } } और अगर (सेलेक्ट == 4) { के लिए (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) { LEDs = CRGB::Black; } FastLED.show(); देरी (200); के लिए (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) {leds = CRGB (लाल, हरा, नीला); } FastLED.show(); देरी (200); के लिए (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) {leds = CRGB::Black; } FastLED.show(); देरी (200); के लिए (int i = SECOND_1_LOCATION; i <= SECOND_2_END_LOCATION; i++) {leds = CRGB (लाल, हरा, नीला); } FastLED.show(); देरी (200); के लिए (int i = SECOND_2_END_LOCATION; i>= SECOND_1_LOCATION; i--) {leds = CRGB::Black; } FastLED.show(); देरी (200); } } // कलर साइकलिंग फंक्शन शून्य सेटकोलर (बूलियन साइकिल कलर्स) {अगर (साइकिलकलर्स == ट्रू) {अगर (रेडडाउन == ट्रू && ग्रीनडाउन == गलत) {रेड++; हरा--; अगर (हरा <= 0) {लाल = 255; रेडडाउन = झूठा; ग्रीनडाउन = सच; } } और अगर (ग्रीनडाउन == ट्रू && ब्लूडाउन == असत्य) {ग्रीन++; नीला--; अगर (नीला <= 0) {हरा = 255; ग्रीनडाउन = झूठा; ब्लूडाउन = सच; } } और अगर (ब्लूडाउन == ट्रू && रेडडाउन == असत्य) {नीला++; लाल--; अगर (लाल <= 0) {नीला = 255; ब्लूडाउन = झूठा; रेडडाउन = सच; } } } और {लाल = 0; हरा = 0; नीला = 255; } } // सीरियल मॉनिटर फंक्शन पर प्रिंट करें शून्य प्रिंटटॉकोनसोल () { सीरियल.प्रिंट ("वर्तमान समय:"); सीरियल.प्रिंट (वर्तमान घंटा); सीरियल.प्रिंट (":"); सीरियल.प्रिंट (वर्तमान मिनट); सीरियल.प्रिंट (":"); Serial.println(currentSecond); सीरियल.प्रिंट्लन (""); के लिए (int i = HOUR_2_START_LOCATION; i <= HOUR_2_END_LOCATION; i++) { Serial.print(leds); अगर (i% 2 == 0) {Serial.print(""); } } सीरियल.प्रिंट्लन (""); के लिए (int i = HOUR_1_START_LOCATION; i <= HOUR_1_END_LOCATION; i++) { Serial.print(leds); अगर (((i - HOUR_1_START_LOCATION + 1)% 3) == 0) { Serial.print(""); } } सीरियल.प्रिंट्लन (""); के लिए (int i = MINUTE_2_START_LOCATION; i <= MINUTE_2_END_LOCATION; i++) { Serial.print(leds); अगर (((i - MINUTE_2_START_LOCATION) + 1)% 2 == 0) { सीरियल.प्रिंट (""); } } सीरियल.प्रिंट्लन (""); के लिए (int i = MINUTE_1_START_LOCATION; i <= MINUTE_1_END_LOCATION; i++) { Serial.print(leds); अगर (((i - MINUTE_1_START_LOCATION) + 1)% 6 == 0) { सीरियल.प्रिंट (""); } } सीरियल.प्रिंट्लन (""); के लिए (int i = SECOND_2_START_LOCATION; i <= SECOND_2_END_LOCATION; i++) { Serial.print(leds); सीरियल.प्रिंट (""); } सीरियल.प्रिंट्लन (""); Serial.println (एलईडी[SECOND_1_LOCATION]); सीरियल.प्रिंट्लन (); for (int i = 0; i < NUM_LEDS; i++) { Serial.print(leds); } सीरियल.प्रिंट्लन (); सीरियल.प्रिंट्लन (); }

चरण 27: आनंद लें

छवि
छवि

अंत में, यह घड़ी देखने में अद्भुत है और एक बार जब आप इसे पकड़ लेते हैं, तो इसे पढ़ना अपेक्षाकृत आसान हो जाता है। यदि आप अपना स्वयं का घड़ी प्रोजेक्ट बनाते हैं, तो मुझे बताएं!

सिफारिश की: