विषयसूची:

60 हर्ट्ज अरुडिनो क्लॉक: 8 कदम
60 हर्ट्ज अरुडिनो क्लॉक: 8 कदम

वीडियो: 60 हर्ट्ज अरुडिनो क्लॉक: 8 कदम

वीडियो: 60 हर्ट्ज अरुडिनो क्लॉक: 8 कदम
वीडियो: अरुडिनो मास्टरक्लास | 90 मिनट में पूर्ण प्रोग्रामिंग कार्यशाला! 2024, नवंबर
Anonim
60 हर्ट्ज अरुडिनो क्लॉक
60 हर्ट्ज अरुडिनो क्लॉक

यह Arduino आधारित डिजिटल घड़ी 60Hz पावर लाइन द्वारा सिंक्रोनाइज़ की जाती है। इसमें एक साधारण और सस्ता कॉमन एनोड 4 अंक 7 सेगमेंट डिस्प्ले है जो घंटे और मिनट दिखाता है। यह पता लगाने के लिए एक क्रॉस ओवर डिटेक्टर का उपयोग करता है कि आने वाली 60 हर्ट्ज साइन लहर शून्य वोल्टेज बिंदु को पार करती है और 60 हर्ट्ज वर्ग तरंग प्राप्त करती है।

कम समयावधि में बिजली लाइन से आने वाली साइन वेव की आवृत्ति लोड के कारण बहुत कम भिन्न हो सकती है, लेकिन लंबी अवधि में यह औसत 60Hz बहुत सटीक रूप से होती है। हम इसका लाभ उठाकर अपनी घड़ी को सिंक्रोनाइज़ करने के लिए एक टाइमिंग सोर्स प्राप्त कर सकते हैं।

चरण 1: चरण 1: स्कीमैटिक्स

चरण 1: स्कीमैटिक्स
चरण 1: स्कीमैटिक्स

सर्किट के दो संस्करण हैं, इस पर निर्भर करते हुए कि आप एक ट्रांसफॉर्मर का उपयोग केंद्र नल के साथ करना चाहते हैं या एक बिना, किसी भी मामले में सर्किट ऑपरेशन लगभग समान है। इस बिल्ड के लिए मैंने एक वॉल एडॉप्टर (कोई सेंटर टैप नहीं) का इस्तेमाल किया जो 12V AC को आउटपुट करता है। मैं सर्किट विवरण के लिए इस डिज़ाइन (डिजिटल क्लॉक1 सर्किट आरेख) का उपयोग करूंगा। ध्यान दें कि एक वॉल एडॉप्टर का उपयोग करना महत्वपूर्ण है जो 12V AC को आउटपुट करता है न कि 12V DC को ताकि हम समय के लिए AC साइन वेव में टैप कर सकें। आप शायद एक ट्रांसफॉर्मर का भी उपयोग कर सकते हैं जो 9वी एसी का उत्पादन करता है, आर 19 को हटाता है और इसे काम पर भी लाता है, लेकिन 12 वी बहुत सामान्य रूप से उपलब्ध है। इस प्रकार सर्किट काम करता है:

60Hz पर 120V AC को ट्रांसफॉर्मर TR1 द्वारा 12V AC में बदला जाता है। इसे डायोड D4 में फीड किया जाता है और सुधारा जाता है ताकि कैपेसिटर C3 द्वारा केवल + ve वोल्टेज को फीड किया जाए, और रिपल के साथ लगभग DC को स्मूद किया जाए। C3 पर वोल्टेज को रोकनेवाला R19 के माध्यम से 7805 वोल्टेज नियामक (U6) को खिलाया जाता है। R19 का उपयोग C3 पर वोल्टेज को कम करने के लिए किया जाता है जिसे मेरे मामले में लगभग 15VDC पर मापा गया था। इसे ७८०५ द्वारा विनियमित किया जा सकता है लेकिन इनपुट के इस स्तर के साथ ७८०५ को लगभग १०वीडीसी गिरना चाहिए और परिणामस्वरूप यह काफी गर्म हो जाता है। वोल्टेज को लगभग 10VDC तक गिराने के लिए R19 का उपयोग करके हम U6 को बहुत अधिक गर्म होने से रोकते हैं। तो यह एक कुशल बिजली रूपांतरण तकनीक नहीं है, लेकिन यह हमारे उद्देश्यों के लिए काम करती है। नोट: यहां कम से कम 1/2W रेसिस्टर या अधिक का उपयोग करें। सर्किट लगभग 55 एमए खींचता है, इसलिए R19 में बिजली अपव्यय P=I**2*R या P = 55ma x 55ma x 120 ओम = 0.363W के आधार पर लगभग 1/3W है। अगला U6 5V पावर लाइन पर किसी भी शोर को फ़िल्टर करने के लिए आउटपुट पर C4 और C5 के साथ शुद्ध 5V DC आउटपुट करता है। यह 5V DC बोर्ड के सभी IC को पावर देता है। TR1 से हम अनफ़िल्टर्ड एसी सिग्नल का एक नमूना भी लेते हैं और इसे पोटेंशियोमीटर RV1 में फीड करते हैं जिसका उपयोग क्रॉस ओवर डिटेक्टर को दिए गए स्तर को समायोजित करने के लिए किया जाता है। R18 और R17 आने वाले AC वोल्टेज के स्तर को और कम करने के लिए एक वोल्टेज डिवाइडर बनाते हैं। याद रखें कि यह 12V AC पर आ रहा है और हमें इसे 5 V से कम करने की आवश्यकता है ताकि यह हमारे क्रॉस ओवर डिटेक्टर के साथ काम करे जो कि केवल है 5VDC द्वारा संचालित। R15 और R16 वर्तमान सीमा प्रदान करते हैं जबकि D1 और D2 का उद्देश्य op-amp U5 की ओवरड्राइविंग को रोकना है। कॉन्फ़िगरेशन में दिखाया गया है कि पिन 1 पर U5 का आउटपुट +5V और 0V के बीच वैकल्पिक होगा, हर बार आने वाली साइन लहर सकारात्मक से नकारात्मक में बदल जाती है। यह एक 60 हर्ट्ज वर्ग तरंग उत्पन्न करता है जिसे माइक्रोकंट्रोलर, U4 को खिलाया जाता है। U4 पर लोड किया गया प्रोग्राम तब घड़ी को हर मिनट और घंटे बढ़ाने के लिए इस 60Hz वर्ग तरंग का उपयोग करता है। यह कैसे किया जाता है इसकी चर्चा सॉफ्टवेयर प्रोग्राम के अनुभाग में और सॉफ्टवेयर टिप्पणियों में की जाएगी। U7 74HC595 शिफ्ट रजिस्टर का उपयोग किया जाता है क्योंकि हमारे पास माइक्रोप्रोसेसर पर सीमित संख्या में डिजिटल पिन होते हैं, इसलिए इसका उपयोग आउटपुट की संख्या का विस्तार करने के लिए किया जाता है। हम माइक्रोप्रोसेसर पर 4 डिजिटल पिन का उपयोग करते हैं लेकिन 74HC595 के माध्यम से डिस्प्ले पर 7 सेगमेंट को नियंत्रित कर सकते हैं। यह माइक्रोकंट्रोलर में संग्रहीत बिट्स के पूर्व निर्धारित पैटर्न को स्थानांतरित करके पूरा किया जाता है, और जो प्रत्येक अंक को शिफ्ट रजिस्टर में प्रदर्शित करता है। यहां इस्तेमाल किया जाने वाला डिस्प्ले सामान्य एनोड है, इसलिए हमें एक सेगमेंट को चालू करने के लिए 74HC595 से निकलने वाले सिग्नल स्तरों को उल्टा करना होगा। जब 74HC595 आउटपुट पिन से निकलने वाले सिग्नल पर एक सेगमेंट को चालू किया जाना चाहिए, तो आउटपुट पिन +5V पर होगा, लेकिन हमें उस डिस्प्ले सेगमेंट को चालू करने के लिए 0V पर होने वाले पिन की आवश्यकता होती है। तो ऐसा करने के लिए हमें हेक्स इनवर्टर U2 और U3 की आवश्यकता है। दुर्भाग्य से एक इन्वर्टर आईसी केवल 6 व्युत्क्रमों को संभाल सकता है, इसलिए हमें उनमें से दो की आवश्यकता है, भले ही दूसरे पर हम केवल 6 गेटों में से एक का उपयोग करते हैं। दुर्भाग्य से बेकार। आप पूछ सकते हैं कि क्यों न यहां एक सामान्य कैथोड प्रकार के डिस्प्ले का उपयोग किया जाए और U2 और U3 को समाप्त किया जाए? खैर जवाब यह है कि आप कर सकते हैं, मेरे पास मेरे भागों की आपूर्ति में एक सामान्य एनोड प्रकार है। यदि आप एक सामान्य कैथोड प्रकार के डिस्प्ले का उपयोग करना चाहते हैं या करना चाहते हैं तो U2 और U3 को हटा दें और Q1 - Q4 को फिर से तार दें ताकि ट्रांजिस्टर कलेक्टर डिस्प्ले पिन से जुड़े हों और ट्रांजिस्टर एमिटर जमीन से जुड़े हों। Q1 - Q4 नियंत्रित करता है कि चार 7-सेगमेंट डिस्प्ले में से कौन सा सक्रिय है। यह ट्रांजिस्टर Q1 - Q4 के आधार से जुड़े पिन के माध्यम से माइक्रोकंट्रोलर द्वारा नियंत्रित किया जाता है। जब वास्तव में घड़ी का उपयोग करने की बात आती है तो सही घड़ी समय को मैन्युअल रूप से सेट करने के लिए वृद्धि और सेट बटन का उपयोग किया जाएगा। जब सेट बटन को एक बार दबाया जाता है तो इंक्रीमेंट बटन का उपयोग डिस्प्ले पर दिखाए गए घंटों को पूरा करने के लिए किया जा सकता है। जब सेट बटन को फिर से दबाया जाता है, तो इंक्रीमेंट बटन का उपयोग डिस्प्ले पर दिखाए गए मिनटों को पूरा करने के लिए किया जा सकता है। जब सेट बटन को तीसरी बार दबाया जाता है, तो समय निर्धारित हो जाता है। R13 और R14 उपयोग में न होने पर इन बटनों से जुड़े माइक्रोकंट्रोलर पिन को कम खींचते हैं। ध्यान दें कि यहां हमने विशिष्ट Arduino UNO प्रोटोटाइप बोर्ड से U4 (Atmega328p) लिया है और इसे अपने बाकी सर्किट के साथ प्रोटोटाइप बोर्ड पर रखा है। ऐसा करने के लिए हमें कम से कम क्रिस्टल X1 और कैपेसिटर C1 और C2 प्रदान करना चाहिए ताकि माइक्रोकंट्रोलर के लिए एक घड़ी स्रोत प्रदान किया जा सके, पिन 1, रीसेट पिन, उच्च और 5VDC पावर प्रदान करें।

चरण 2: चरण 2: ब्रेडबोर्ड प्रोटोटाइप

चरण 2: ब्रेडबोर्ड प्रोटोटाइप
चरण 2: ब्रेडबोर्ड प्रोटोटाइप
चरण 2: ब्रेडबोर्ड प्रोटोटाइप
चरण 2: ब्रेडबोर्ड प्रोटोटाइप

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

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

चरण 3: चरण 3: अंतिम निर्माण

चरण 3: अंतिम निर्माण
चरण 3: अंतिम निर्माण
चरण 3: अंतिम निर्माण
चरण 3: अंतिम निर्माण

सर्किट का निर्माण प्रोटोटाइप बोर्ड के एक टुकड़े पर किया गया है और #30 AWG वायर रैप वायर का उपयोग करके पॉइंट टू पॉइंट वायर्ड किया गया है। यह एक कठिन और विश्वसनीय परिणाम प्रदान करता है। क्योंकि ट्रांसफार्मर मेरे पास केबल के अंत में एक पुरुष 5 मिमी प्लग है, मैंने एक कस्टम बनाने के लिए 1/2 चौड़ी फ्लैट एल्यूमीनियम पट्टी के एक टुकड़े को काटने, झुकने और ड्रिलिंग करके बोर्ड के पीछे संबंधित महिला संदूक को घुमाया। ब्रैकेट और फिर इसे छोटे 4-40 नट और बोल्ट के साथ बोर्ड पर बोल्ट किया। आप बस कनेक्टर को काट सकते हैं और शेष बिजली के तारों को बोर्ड में मिला सकते हैं और अपने आप को लगभग 20 मिनट के काम से बचा सकते हैं, लेकिन मैं नहीं चाहता था कि ट्रांसफार्मर स्थायी रूप से जुड़ा हो बोर्ड पर।

चरण 4: चरण 4: प्रदर्शन के लिए एक सॉकेट बनाना और इसे पैर देना

चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना
चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना
चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना
चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना
चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना
चरण 4: डिस्प्ले के लिए सॉकेट बनाना और इसे पैर देना

चूंकि डिस्प्ले में 16 पिन होते हैं, प्रत्येक तरफ 8 पिन होते हैं, एक पिन स्पेसिंग के साथ जो मानक 16 पिन आईसी सॉकेट से बड़ा होता है, हमें डिस्प्ले को फिट करने के लिए सॉकेट आकार को समायोजित करने की आवश्यकता होती है। आप सॉकेट के दोनों किनारों को जोड़ने वाले प्लास्टिक को काटने के लिए तार कटर की एक जोड़ी का उपयोग करके ऐसा कर सकते हैं, उन्हें अलग कर सकते हैं और उन्हें बोर्ड में अलग-अलग मिलाप कर सकते हैं जो डिस्प्ले पर पिन की दूरी से मेल खाता है। ऐसा करना फायदेमंद है ताकि आपको सीधे डिस्प्ले पिन में मिलाप न करना पड़े और डिस्प्ले को अत्यधिक गर्मी में उजागर करना पड़े। आप उस सॉकेट को देख सकते हैं जो मैंने ऊपर की तस्वीर में बोर्ड के शीर्ष पर किया है।

डिस्प्ले को ठीक से खड़ा करने के लिए मैंने प्रोटोटाइप बोर्ड के निचले दो कोने के छेद में दो 1 बोल्ट लगाए, जैसा कि एक साधारण स्टैंड बनाने के लिए तस्वीरों में दिखाया गया है। यह बहुत टिप्पी था, इसलिए यदि आप ऐसा करते हैं, तो आप कर सकते हैं इसे स्थिर करने के लिए बोल्ट के पीछे कुछ भारी डालना चाहते हैं।

चरण 5: चरण 5: सर्किट बोर्ड की वायरिंग की जाँच करना और कैलिब्रेट करने की तैयारी करना

चरण 5: सर्किट बोर्ड की वायरिंग की जाँच करना और कैलिब्रेट करने की तैयारी करना
चरण 5: सर्किट बोर्ड की वायरिंग की जाँच करना और कैलिब्रेट करने की तैयारी करना

एक बार जब सर्किट बोर्ड को तार-तार कर दिया जाता है, लेकिन आईसी में प्लग करने या इसे प्रदर्शित करने या पावर करने से पहले, डीवीएम के साथ बोर्ड कनेक्शन की जांच करना एक अच्छा विचार है। आप अधिकांश डीवीएम सेट कर सकते हैं ताकि निरंतरता होने पर वे बीप करें। इस मोड में अपना डीवीएम सेट करें और फिर अपने सर्किट आरेख का पालन करते हुए, जितना संभव हो उतने सर्किट कनेक्शन जांचें। +5V और ग्राउंड पॉइंट के बीच एक ओपन सर्किट या उसके करीब की जाँच करें। दृष्टि से जांचें कि सभी घटक सही पिन से जुड़े हैं।

इसके बाद अपने ट्रांसफॉर्मर को सर्किट से कनेक्ट करें और इसे पावर दें। किसी भी IC या डिस्प्ले को प्लग इन करने से पहले जांच लें कि आपके पास 5V पावर रेल पर स्कोप या DVM के साथ बिल्कुल 5V DC है। अगले चरण की तैयारी में केवल Op-Amp U5 IC में अगला प्लग करें। यहां हम जांच करेंगे कि हमारा क्रॉस ओवर सर्किट एक वर्ग तरंग उत्पन्न कर रहा है और एक साफ 60 हर्ट्ज सिग्नल के लिए पोटेंशियोमीटर RV1 को समायोजित करें।

चरण 6: चरण 6: सर्किट अंशांकन

चरण 6: सर्किट अंशांकन
चरण 6: सर्किट अंशांकन
चरण 6: सर्किट अंशांकन
चरण 6: सर्किट अंशांकन

क्रॉस ओवर डिटेक्टर को फीड करने वाले सिग्नल के सही स्तर के लिए पोटेंशियोमीटर RV1 को समायोजित करने के लिए केवल अंशांकन किया जाना है। इसे करने के दो तरीके हैं:

1. U5 के पिन 1 पर स्कोप प्रोब लगाएं और स्कोप प्रोब ग्राउंड वायर को सर्किट ग्राउंड से जोड़ना सुनिश्चित करें। अगला RV1 तब तक समायोजित करें जब तक आपके पास एक साफ वर्ग तरंग न हो जैसा कि ऊपर चित्र में दिखाया गया है। यदि आप RV1 को एक या दूसरे तरीके से बहुत दूर समायोजित करते हैं तो आपके पास या तो कोई वर्ग तरंग या विकृत वर्ग तरंग नहीं होगी। सुनिश्चित करें कि वर्ग तरंग की आवृत्ति 60 हर्ट्ज है। यदि आपके पास आधुनिक दायरा है तो शायद यह आपको आवृत्ति बताएगा। यदि आपके पास मेरे जैसा प्राचीन दायरा है तो सुनिश्चित करें कि वर्ग तरंग अवधि लगभग 16.66ms या 1/60 सेकेंड है। 2. फ़्रीक्वेंसी मोड में फ़्रीक्वेंसी काउंटर या DVM का उपयोग करके U5 के पिन 1 पर फ़्रीक्वेंसी को मापें और RV1 को ठीक 60 Hz के लिए समायोजित करें। एक बार यह कैलिब्रेशन हो जाने के बाद, सर्किट को बंद कर दें और सर्किट निर्माण को पूरा करने के लिए सभी IC और डिस्प्ले को प्लग इन करें।

चरण 7: चरण 7: Arduino प्रोग्राम

कार्यक्रम पूरी तरह से टिप्पणी की गई है ताकि आप हर कदम के विवरण का पता लगा सकें। कार्यक्रम की जटिलता के कारण प्रत्येक चरण का वर्णन करना कठिन है, लेकिन बहुत उच्च स्तर पर यह इस प्रकार काम करता है:

माइक्रोप्रोसेसर आने वाली 60 हर्ट्ज वर्ग तरंग प्राप्त करता है और 60 चक्रों की गणना करता है और प्रत्येक 60 चक्रों के बाद सेकंड की गिनती में वृद्धि करता है। एक बार जब सेकंड की गिनती 60 सेकंड या 3600 चक्र तक पहुंच जाती है, तो मिनटों की गिनती बढ़ जाती है और सेकंड की गिनती शून्य पर रीसेट हो जाती है। एक बार जब मिनटों की गिनती 60 मिनट तक पहुँच जाती है तो घंटों की गिनती बढ़ जाती है और मिनटों की गिनती शून्य पर रीसेट हो जाती है। घंटे की गिनती 13 घंटे के बाद 1 पर रीसेट हो जाती है, इसलिए यह 12 घंटे की घड़ी है। यदि आप 24 घंटे की घड़ी चाहते हैं तो 24 घंटे के बाद घंटे को शून्य पर रीसेट करने के लिए प्रोग्राम को बदलें। यह एक प्रायोगिक परियोजना है, इसलिए मैंने सेट और इंक्रीमेंट बटन पर स्विच बाउंस को दबाने के लिए Do-While लूप का उपयोग करने का प्रयास किया। यह काफी अच्छा काम करता है। जब सेट बटन को एक बार दबाया जाता है, तो इंक्रीमेंट बटन का उपयोग डिस्प्ले पर दिखाए गए घंटों को पूरा करने के लिए किया जा सकता है। जब सेट बटन को फिर से दबाया जाता है, तो इंक्रीमेंट बटन का उपयोग डिस्प्ले पर दिखाए गए मिनटों को पूरा करने के लिए किया जा सकता है। जब सेट बटन को तीसरी बार दबाया जाता है, तो समय निर्धारित हो जाता है और घड़ी चलने लगती है। 0 और 1 के पैटर्न जो 7-सेगमेंट डिस्प्ले पर प्रत्येक नंबर को प्रदर्शित करने के लिए उपयोग किए जाते हैं, उन्हें सेवन_सेग नामक सरणी में संग्रहीत किया जाता है। वर्तमान घड़ी के समय के आधार पर, इन पैटर्नों को 74HC595 IC में फीड किया जाता है और डिस्प्ले पर भेजा जाता है। इस डेटा को प्राप्त करने के लिए किसी एक समय में डिस्प्ले के 4 अंकों में से कौन सा चालू होता है, इसे माइक्रोप्रोसेसर द्वारा डिस्प्ले डिग 1, 2, 3, 4 पिन के माध्यम से नियंत्रित किया जाता है। जब सर्किट संचालित होता है, तो प्रोग्राम पहले टेस्ट_क्लॉक नामक एक टेस्ट रूटीन चलाता है जो 0 से 9 तक की गिनती के साथ प्रत्येक डिस्प्ले को रोशन करने के लिए सही अंक भेजता है। इसलिए यदि आप इसे पावर अप करते समय देखते हैं तो आप जानते हैं कि आपने सब कुछ सही ढंग से बनाया है.

चरण 8: चरण 8: PCBWay ऑफ़र

यह इस पोस्ट को समाप्त करता है, लेकिन इस परियोजना का प्रायोजक PCBWay है, जो उस समय अपनी 5 वीं वर्षगांठ मना रहा है। इसे https://www.pcbway.com/anniversary5sales.html पर देखें और यह न भूलें कि उनकी असेंबली सेवा अब $30 जितनी कम है।

सिफारिश की: