यह Arduino आधारित रियल टाइम घड़ी RTC IC DS1307 का उपयोग करके वास्तविक समय प्रदर्शित करने के लिए एक डिजिटल घड़ी है जो I2C प्रोटोकॉल पर काम करती है। वास्तविक समय की घड़ी का मतलब है कि यह बिजली की विफलता के बाद भी चलता है। जब शक्ति को फिर से जोड़ा जाता है, तो यह उस समय और अवधि के लिए वास्तविक समय को दर्शाता है जब वह बंद अवस्था में था। इस Arduino अलार्म घड़ी परियोजना में हमने समय को प्रदर्शित करने के लिए 16x2 एलसीडी मॉड्यूल का उपयोग किया है - "घंटा, मिनट, सेकंड, तिथि, महीना और वर्ष" प्रारूप। एक अलार्म विकल्प भी जोड़ा गया है और हम अलार्म समय सेट कर सकते हैं। एक बार अलार्म समय जब यह आर्डिनो के आंतरिक EEPROM में सहेजा जाता है, तो यह रीसेट या बिजली की विफलता के बाद भी बचा रहता है। वास्तविक समय की घड़ियाँ आमतौर पर हमारे कंप्यूटर, घरों, कार्यालयों और इलेक्ट्रॉनिक्स डिवाइस में उपयोग की जाती हैं ताकि उन्हें वास्तविक समय के साथ अपडेट रखा जा सके।
I2C प्रोटोकॉल एक प्रणाली में दो तारों का उपयोग करके दो या अधिक उपकरणों को जोड़ने की एक विधि है, और इसलिए इस प्रोटोकॉल को दो तार प्रोटोकॉल भी कहा जाता है । इसका उपयोग 127 डिवाइसों को एक डिवाइस या प्रोसेसर से संवाद करने के लिए किया जा सकता है। I2C उपकरणों के अधिकांश on100Khz आवृत्ति चलाते हैं।
गुलाम (दास प्राप्त करने की विधि) के लिए डेटा लेखन मास्टर के लिए कदम
- दास को START शर्त भेजता है।
- दास का पता दास को भेज देता है।
- दास को बिट (0) भेजें।
- दास से एसीके बिट प्राप्त किया
- शब्दों को दास को संबोधित करता है।
- दास से एसीके बिट प्राप्त किया
- गुलाम करने के लिए डेटा भेजता है।
- दास से एसीके बिट प्राप्त किया।
- और अंतिम दास को STOP शर्त भेजता है।
दास से मास्टर तक डेटा पढ़ने के चरण (दास संचारण मोड)
- दास को START शर्त भेजता है।
- दास का पता दास को भेज देता है।
- पठन बिट (1) दास को भेजें।
- दास से एसीके बिट प्राप्त किया
- दास से डेटा प्राप्त किया
- दास से एसीके बिट प्राप्त किया।
- गुलाम करने के लिए STOP शर्त भेजता है।
इस RTC DS1307 IC आधारित डिजिटल घड़ी के निर्माण के लिए, हमने यहाँ Arduino Pro Mini का उपयोग किया है, लेकिन आप किसी अन्य Arduino मॉडल जैसे Arduino Uno या Arduino Nano का भी उपयोग कर सकते हैं। Arduino बोर्ड, DS1307 RTC IC के साथ, हमने समय और तिथि, एक क्रिस्टल ऑसिलेटर, 7805 वोल्टेज नियामक, एक बजर और कुछ ट्रांजिस्टर और प्रतिरोधों को प्रदर्शित करने के लिए 16x2 एलसीडी मॉड्यूल का उपयोग किया है।
सर्किट आरेख और विवरण
इस Arduino आधारित डिजिटल क्लॉक सर्किट में, हमने तीन प्रमुख घटकों का उपयोग किया है जो IC DS1307, Arduino Pro Mini Board और 16x2 LCD मॉड्यूल हैं।
यहाँ arduino का उपयोग ds1307 से पढ़ने के समय के लिए किया जाता है और इसे 16x2 LCD पर प्रदर्शित किया जाता है। DS1307 arduino को 2 लाइनों का उपयोग करके समय / तारीख भेजता है। अलार्म संकेत के लिए बजर का भी उपयोग किया जाता है, जो अलार्म सक्रिय होने पर बीप करता है। इस रियल टाइम क्लॉक के कामकाज को समझने के लिए एक ब्लॉक आरेख नीचे दिखाया गया है।
जैसा कि आप सर्किट आरेख में देख सकते हैं, DS1307 चिप पिन SDA और SCL arduino पिंस SDA और SCL से जुड़े हुए हैं, पुल अप रेसिस्टर्स के साथ जो डेटा और घड़ी लाइनों पर डिफ़ॉल्ट मान उच्च रखते हैं। 32.768KHz क्रिस्टल थरथरानवाला 1 सेकंड की देरी पैदा करने के लिए DS1307 चिप के साथ जुड़ा हुआ है, और एक 3 वोल्ट बैटरी DS1307 के 3 आरडी (बैट) को पिन करने के लिए भी जुड़ा हुआ है जो बिजली की विफलता के बाद भी समय को चालू रखता है। 16x2 LCD 4-बिट मोड में arduino के साथ जुड़ा हुआ है। कंट्रोल पिन RS, RW और En सीधे Arduino pin 2, GND और 3. से जुड़े होते हैं और डेटा पिन D0-D7, Arduino के 4, 5, 6, 7 से जुड़ा होता है। एक बजर एक आधार पर 1 k रोकनेवाला होने वाले NPN BC547 ट्रांजिस्टर के माध्यम से arduino पिन नंबर 13 के साथ जुड़ा हुआ है।
तीन बटन अर्थात् सेट, INC और अगला का उपयोग सक्रिय लो मोड में 12, 11 और 10 के arduino को अलार्म सेट करने के लिए किया जाता है। जब हम सेट प्रेस करते हैं, अलार्म सेट मोड सक्रिय होता है और अब हमें INC बटन का उपयोग करके अलार्म सेट करने की आवश्यकता है और अगला बटन डिजिट में जाने के लिए उपयोग किया जाता है। अलार्म के साथ इस वास्तविक समय घड़ी का पूरा ब्रेडबोर्ड सेटअप नीचे छवि में दिखाया गया है। आप AVR माइक्रोकंट्रोलर के साथ डिजिटल अलार्म घड़ी पर एक विस्तृत ट्यूटोरियल भी देख सकते हैं।
कार्यक्रम विवरण
इस वास्तविक समय घड़ी के लिए प्रोग्राम करने के लिए, हमने DS1307 से समय / तिथि निकालने के लिए और एलसीडी पर प्रदर्शित करने के लिए कुछ पुस्तकालयों का उपयोग किया है, जो नीचे दिए गए हैं:
और आरटीसी, एलसीडी और इनपुट आउटपुट का इनिशियलाइज़ेशन सेटअप लूप में किया जाता है।
बाकी चीजें जैसे समय पढ़ना, अलार्म सेट करना लूप लूप सेक्शन में किया जाता है।