- सामग्री की आवश्यकता:
- RTC क्या है ??
- DS3231 RTC को MSP430 से जोड़ना:
- RTC मॉड्यूल के लिए प्रोग्रामिंग MSP430:
इस ट्यूटोरियल में हम MSP430 के साथ RTC मॉड्यूल DS3231 को बदलकर एक डिजिटल घड़ी बनाएंगे और 16x2 एलसीडी पर समय और तारीख प्रदर्शित करेंगे। MSP-EXP430G2 टेक्सास इंस्ट्रूमेंट्स द्वारा उनके माइक्रोकंट्रोलर्स का उपयोग करने के तरीके को सीखने और अभ्यास करने के लिए प्रदान किया गया एक डेवलपमेंट टूल उर्फ लॉन्चपैड है। यह बोर्ड MSP430 वैल्यू लाइन श्रेणी के अंतर्गत आता है, जहाँ हम सभी MSP430 श्रृंखला माइक्रोकंट्रोलर प्रोग्राम कर सकते हैं। यदि आप MSP के लिए नए हैं, तो MSP430 ट्यूटोरियल के साथ हमारी शुरुआत करें।
सामग्री की आवश्यकता:
- MSP430
- DS3231 RTC मॉड्यूल
- पॉट -10 k
- एलसीडी मॉड्यूल 16 * 2
- तारों को जोड़ना
- ब्रेड बोर्ड
RTC क्या है ??
DS3231 एक RTC (रियल टाइम क्लॉक) मॉड्यूल है। इसका उपयोग अधिकांश इलेक्ट्रॉनिक्स परियोजनाओं के लिए तारीख और समय बनाए रखने के लिए किया जाता है। इस मॉड्यूल की अपनी सिक्का सेल बिजली आपूर्ति है, जिसके उपयोग से यह मुख्य पावर को हटाए जाने पर भी दिनांक और समय को बनाए रखता है या MCU एक हार्ड रीसेट के माध्यम से चला गया है। इसलिए एक बार जब हम इस मॉड्यूल में दिनांक और समय निर्धारित करते हैं तो यह हमेशा इसका ट्रैक रखेगा। कई प्रकार के RTC IC उपलब्ध हैं जैसे DS1307, DS3231 आदि।
हमने पहले नीचे की परियोजनाओं में अन्य माइक्रोकंट्रोलर के साथ आरटीसी का उपयोग किया है:
नोट: पहली बार इस मॉड्यूल का उपयोग करते समय आपको तारीख और समय निर्धारित करना होगा। आप RTC IC DS1307 का भी उपयोग कर सकते हैं, हमने पहले Arduino के साथ DS1307 का उपयोग किया है।
DS3231 RTC को MSP430 से जोड़ना:
MSP430 माइक्रोकंट्रोलर आधारित डिजिटल घड़ी के लिए सर्किट आरेख नीचे दिया गया है। जैसा कि पहले बताया गया था कि DS3231 I2C संचार की सहायता से काम करता है, इसलिए इसमें एक सीरियल क्लॉक (SCL) और एक सीरियल डेटा (SDA) पिन होगा, जिसे हमारे MSP430 पर I2C पिन से जोड़ा जाना है जो कि पिन 9 (पिन 2.1) है, एससीएल) और पिन 10 (पिन 2.2, एसडीए)।
MSP430 3.3V Vcc देता है लेकिन हमें इसे LCD और RTC मॉड्यूल से जोड़ने के लिए 5V की आवश्यकता है। तो, हम एक हैक का उपयोग करेंगे, यूएसबी केबल कनेक्टर के पास टीपी 1 नामक एक जम्पर उपलब्ध है। आप वहां से 5V ले सकते हैं।
सर्किट आरेख:
RTC मॉड्यूल के लिए प्रोग्रामिंग MSP430:
यहां हम प्रोग्रामिंग के लिए एनर्जिया आईडीई का उपयोग कर रहे हैं। यह Arduino IDE के समान है और उपयोग में आसान है। यदि आप एमएसपी और एनर्जिया के लिए नए हैं, तो एनर्जिया आईडीई का उपयोग करके एमएसपी के साथ शुरुआत करें। आरटीसी मॉड्यूल को इंटरफ़ेस करने के लिए हमें इस बोर्ड के लिए पुस्तकालय की आवश्यकता है। इस लिंक से RTC लाइब्रेरी डाउनलोड करें और इसे इंस्टॉल करें।
हमें वायर (I2C संचार के लिए प्रयुक्त) और लिक्विड क्रिस्टल लाइब्रेरी की भी आवश्यकता है, जो एनर्जिया आईडीई में पूर्वस्थापित हैं।
इस लेख के अंत में MSP430 डिजिटल घड़ी के लिए पूरा कोड दिया गया है। कोड सरल और आसानी से समझने योग्य है। यहां हम इसके कुछ हिस्सों की व्याख्या कर रहे हैं।
सबसे पहले, हमें आवश्यक पुस्तकालयों को शामिल करना होगा।
नीचे पुस्तकालय RTC मॉड्यूल और MSP430 के बीच I2C संचार के लिए है। एसडीए और एससीके पिन पहले से ही इस पुस्तकालय में परिभाषित हैं, इसलिए हमें इन पिनों को अलग से घोषित करने की आवश्यकता नहीं है।
#शामिल
फिर हमने RTC घड़ी के लिए RTClib.h लाइब्रेरी और LCD कार्यों के लिए LiquidCrystal.h को शामिल किया है।
#include "RTClib.h" #include
इसके बाद, हमें अपने आरटीसी मॉड्यूल को आरंभ करने के लिए एक उदाहरण बनाना होगा।
RTC_DS3231 rtc;
फिर आकार 7 की एक सरणी बनाएं और उसमें नाम के साथ सभी सात दिनों को स्टोर करें।
char daysffTheWeek = {"रविवार", "सोमवार", "मंगलवार", "बुधवार", "गुरुवार", "शुक्रवार", "शनिवार"};
यहाँ एलसीडी डिस्प्ले द्वारा उपयोग किए जाने वाले MSP430 की पिन घोषणा है: (RS (P2.0), EN (P1.4), D4 (P1.5), D5 (P2.3), D6 (P2.4), D7 (P2.5)
लिक्विड क्रिस्टल (8, 6, 7,11,12,13);
में शून्य सेटअप () , हम एलसीडी स्क्रीन और आरटीसी के लिए इंटरफ़ेस प्रारंभ और प्रदर्शन के आयाम (चौड़ाई और ऊंचाई) निर्दिष्ट किया है, है शुरू ()
किसी भी अन्य पुस्तकालय आदेशों से पहले कहा जाता है की जरूरत है।
शून्य सेटअप () { lcd.begin (16, 2); lcd.setCursor (3,0); lcd.print ("आरटीसी क्लॉक"); देरी (3000); lcd.clear (); rtc.begin (); // rtc.adjust (DateTime (F (__ DATE__), F (__ TIME__))); }
अब, प्रदर्शन पर दिखाया गया समय सही है, लेकिन एक समस्या है, हर बार जब आप अपने माइक्रोकंट्रोलर को पुनरारंभ / रीसेट करते हैं, तो एलसीडी उस समय को दिखाएगा जिस पर आपने कोड अपलोड किया था। ऐसा इसलिए है क्योंकि rtc.adjust () फ़ंक्शन ने आपके कंप्यूटर का समय संग्रहीत किया है, इसलिए जब आप रीसेट करते हैं, तो यह उस समय से शुरू होता है।
इस समस्या को ठीक करने के लिए, पहले rtc.adjust () फ़ंक्शन के साथ प्रोग्राम अपलोड करें । फिर, तुरंत उसी लाइन पर टिप्पणी करें और प्रोग्राम को फिर से अपलोड करें। अब, आपकी तिथि और समय निर्धारित है और माइक्रोकंट्रोलर को रीसेट करने से प्रभावित नहीं होगा।
में पाश समारोह हमें बुलाया पूर्वनिर्धारित चर में आरटीसी मॉड्यूल और दुकान से तारीख और समय लगता है अब और का उपयोग कर एलसीडी पर प्रदर्शित lcd.print () समारोह।
शून्य लूप () { दिनांक समय अब = rtc.now (); lcd.clear (); lcd.setCursor (3,0); lcd.print (now.day (), DEC); lcd.print ("/");… ……।
पूरा कोड और वीडियो नीचे दिया गया है।