- अवयव आवश्यक
- 4-अंक 7 खंड प्रदर्शन
- 74HC595 शिफ्ट रजिस्टर आईसी
- DS3231 RTC मॉड्यूल
- सर्किट आरेख
- मल्टीप्लेक्सिंग सेवन सेगमेंट डिस्प्ले के लिए Arduino UNO प्रोग्रामिंग
डिजिटल दीवार घड़ियाँ अब अधिक लोकप्रिय हो रही हैं और वे एनालॉग घड़ी से बेहतर हैं क्योंकि यह घंटे, मिनट और सेकंड में सटीक समय प्रदान करती है और मूल्यों को पढ़ने में आसान है। कुछ डिजिटल घड़ियों में कई सुविधाएं भी होती हैं जैसे तापमान, आर्द्रता, कई अलार्म सेट करना आदि। अधिकांश डिजिटल घड़ियों में सात खंड डिस्प्ले का उपयोग होता है।
हमने पहले कई डिजिटल घड़ियों सर्किट का निर्माण या तो 7 सेगमेंट डिस्प्ले या 16x2 एलसीडी का उपयोग करके किया था। यहां आप AVR आधारित डिजिटल घड़ी के पूर्ण पीसीबी डिजाइन कर सकते हैं। यह ट्यूटोरियल Arduino UNO का उपयोग करके चार-7 खंड प्रदर्शित करके और HH: MM प्रारूप में समय प्रदर्शित करके डिजिटल घड़ी बनाने के बारे में है।
अवयव आवश्यक
- 4-अंक 7 खंड प्रदर्शन
- 74HC595 आईसी
- DS3231 RTC मॉड्यूल
- Arduino UNO
- ब्रेड बोर्ड
- तारों को जोड़ना
4-अंक 7 खंड प्रदर्शन
4-डिजिट 7 सेगमेंट डिस्प्ले में चार सात सेगमेंट डिस्प्ले एक साथ जुड़े हैं या हम कह सकते हैं कि एक साथ मल्टीप्लेक्स है। उनका उपयोग संख्यात्मक मूल्यों और दशमलव और बृहदान्त्र के साथ कुछ अक्षर प्रदर्शित करने के लिए किया जाता है। डिस्प्ले का इस्तेमाल दोनों दिशा में किया जा सकता है। चार अंक डिजिटल घड़ियां बनाने के लिए उपयोगी होते हैं या 0 से 9999 तक की संख्या गिनते हैं। नीचे 4 अंक 7 अंक डिस्प्ले के लिए आंतरिक आरेख है।
प्रत्येक खंड में व्यक्तिगत एलईडी नियंत्रण के साथ एक एलईडी है। कॉमन एनोड और कॉमन कैथोड जैसे सात सेगमेंट डिस्प्ले दो प्रकार के होते हैं । उपरोक्त छवि सामान्य एनोड प्रकार 7 सेगमेंट डिस्प्ले को दिखाती है।
आम एनोड
आम एनोड में, सभी 8 एल ई डी के सभी सकारात्मक टर्मिनलों (एनोड्स) को एक साथ जोड़ा जाता है, जिसका नाम COM है। और सभी नकारात्मक टर्मिनल अकेले या माइक्रोकंट्रोलर पिन से जुड़े हुए हैं। माइक्रोकंट्रोलर का उपयोग करके, यदि तर्क एलओयू विशेष एलईडी सेगमेंट को रोशन करने के लिए सेट किया गया है और ऑफ एलईडी को चालू करने के लिए तर्क उच्च सेट किया गया है।
आम कैथोड
कॉमन कैथोड में, सभी 8 एल ई डी के सभी नकारात्मक टर्मिनलों (कैथोड) को एक साथ जोड़ा जाता है, जिसका नाम COM है। और सभी सकारात्मक टर्मिनलों को अकेले छोड़ दिया जाता है या माइक्रोकंट्रोलर पिन से जुड़ा होता है। माइक्रोकंट्रोलर का उपयोग करके, यदि एलईडी को रोशन करने के लिए तर्क उच्च सेट करें और बंद एलईडी को चालू करने के लिए कम सेट करें।
यहां 7 सेगमेंट डिस्प्ले के बारे में अधिक जानें और जांचें कि यह अन्य माइक्रोकंट्रोलर्स के साथ कैसे हस्तक्षेप किया जा सकता है:
- Arduino के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- रास्पबेरी पाई के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- ARM7-LPC2148 के साथ सात खंड प्रदर्शन Interfacing
- PIC माइक्रोकंट्रोलर के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
- 8051 माइक्रोकंट्रोलर के साथ 7 सेगमेंट डिस्प्ले इंटरफेसिंग
74HC595 शिफ्ट रजिस्टर आईसी
आईसी 74HC595 भी 8-बिट धारावाहिक में के रूप में जाना - समानांतर बाहर शिफ्ट रजिस्टर। यह आईसी सीरियल में डेटा इनपुट प्राप्त कर सकता है और समानांतर में 8 आउटपुट पिन को नियंत्रित कर सकता है। यह माइक्रोकंट्रोलर से उपयोग किए गए पिंस को कम करने में उपयोगी है। आप सभी 74HC595 शिफ्ट रजिस्टर संबंधित परियोजनाओं को यहाँ पा सकते हैं।
74HC595 आईसी के कार्य:
यह IC IC के 8 आउटपुट पिंस को नियंत्रित करने के लिए माइक्रोकंट्रोलर के साथ क्लॉक, डेटा और लैच जैसे तीन पिन का उपयोग करता है। घड़ी का उपयोग माइक्रोकंट्रोलर से लगातार दालों को प्रदान करने के लिए किया जाता है और डेटा पिन का उपयोग डेटा भेजने के लिए किया जाता है जैसे कि संबंधित घड़ी के समय आउटपुट को चालू या बंद करने की आवश्यकता होती है।
बाहर पिन:
पिन नम्बर |
पिन नाम |
विवरण |
1,2,3,4,5,6,7 |
आउटपुट पिंस (Q1 से Q7) |
74HC595 में 8 आउटपुट पिन हैं जिनमें से 7 ये पिन हैं। उन्हें क्रमिक रूप से नियंत्रित किया जा सकता है |
। |
भूमि |
माइक्रोकंट्रोलर के ग्राउंड से जुड़े |
९ |
(Q7) सीरियल आउटपुट |
इस पिन का उपयोग कैस्केडिंग के रूप में एक से अधिक 74HC595 को जोड़ने के लिए किया जाता है |
१० |
(MR) मास्टर रीसेट |
कम के रूप में सभी आउटपुट रीसेट करता है। सामान्य ऑपरेशन के लिए उच्च आयोजित किया जाना चाहिए |
1 1 |
(SH_CP) घड़ी |
यह क्लॉक पिन है जिसमें एमसीयू / एमपीयू से क्लॉक सिग्नल देना होता है |
१२ |
(ST_CP) कुंडी |
Latch pin का उपयोग आउटपुट पिन में डेटा को अपडेट करने के लिए किया जाता है। यह सक्रिय उच्च है |
१३ |
(OE) आउटपुट सक्षम करें |
आउटपुट इनेबल का उपयोग आउटपुट को बंद करने के लिए किया जाता है। सामान्य ऑपरेशन के लिए कम आयोजित किया जाना चाहिए |
१४ |
(डीएस) सीरियल डेटा |
यह वह पिन है जिस पर डेटा भेजा जाता है, जिसके आधार पर 8 आउटपुट नियंत्रित होते हैं |
१५ |
(प्रश्न ०) आउटपुट |
पहला आउटपुट पिन। |
१६ |
Vcc |
यह पिन आईसी को शक्ति देता है, आमतौर पर + 5 वी का उपयोग किया जाता है। |
DS3231 RTC मॉड्यूल
DS3231 एक RTC मॉड्यूल है । RTC का मतलब रियल टाइम क्लॉक है। सर्किट संचालित न होने पर भी समय और तारीख को याद रखने के लिए इस मॉड्यूल का उपयोग किया जाता है। बाहरी शक्ति की अनुपस्थिति में मॉड्यूल को चलाने के लिए इसमें बैटरी बैकअप CR2032 है। इस मॉड्यूल में एक तापमान सेंसर भी शामिल है। मॉड्यूल का उपयोग एम्बेडेड परियोजनाओं में किया जा सकता है जैसे कि तापमान संकेतक के साथ डिजिटल घड़ी बनाना आदि। यहां कुछ उपयोगी परियोजनाएं हैं:
- Arduino का उपयोग कर स्वचालित पालतू फीडर
- Interfacing RTC मॉड्यूल (DS3231) PIC माइक्रोकंट्रोलर के साथ: डिजिटल घड़ी
- MSP430 के साथ Interfacing RTC मॉड्यूल (DS3231): डिजिटल घड़ी
- ES3232 DS3231 मॉड्यूल का उपयोग करके रियल टाइम क्लॉक
- AVR माइक्रोकंट्रोलर Atmega16 और DS3231 RTC का उपयोग करके पीसीबी पर डिजिटल वॉल क्लॉक
DS3231 का पिनआउट:
पिन नाम |
उपयोग |
वीसीसी |
शक्ति स्रोत के सकारात्मक से जुड़े |
GND |
जमीन से जुड़ा हुआ |
एसडीए |
सीरियल डेटा पिन (I2C) |
एससीएल |
सीरियल क्लॉक पिन (I2C) |
SQW |
स्क्वायर वेव आउटपुट पिन |
32 कि |
32K थरथरानवाला उत्पादन |
सुविधाएँ और विनिर्देशों:
- आरटीसी सेकंड, मिनट, घंटे और वर्ष गिनता है
- 3ºC सटीकता के साथ डिजिटल तापमान सेंसर
- एजिंग ट्रिम के लिए रजिस्टर करें
- 400Khz I2C इंटरफ़ेस
- कम बिजली की खपत
- दो से तीन साल के जीवन के साथ CR2032 बैटरी बैकअप
- ऑपरेटिंग वोल्टेज: 2.3 से 5.5 वी
सर्किट आरेख
DS3231 RTC और Arduino UNO के बीच सर्किट कनेक्शन:
DS3231 |
Arduino UNO |
वीसीसी |
5 वी |
GND |
GND |
एसडीए |
ए 4 |
एससीएल |
ए 4 |
74HC595 IC और Arduino Uno के बीच सर्किट कनेक्शन:
74HC595 आईसी |
Arduino UNO |
11-SH_CP (SRCLK) |
६ |
12-ST_CP (RCLK) |
५ |
14-DS (डेटा) |
४ |
13-OE (कुंडी) |
GND |
8-जीएनडी |
GND |
10-एमआर (एसआरसीएलआर) |
+ 5 वी |
16-वीसीसी |
+ 5 वी |
आईसी 74HC595 और 4-अंक सात खंड और Arduino UNO के बीच सर्किट कनेक्शन:
4-डिजिटसेवेनशिप |
आईसी 74HC595 |
Arduino UNO |
ए |
क्रि ० प्र० — देना |
- |
ख |
Q1 |
- |
सी |
Q2 |
- |
घ |
Q3 |
- |
इ |
Q4 |
- |
एफ |
क्यू 5 |
- |
जी |
Q6 |
- |
डी 1 |
- |
१० |
डी 2 |
- |
1 1 |
डी 3 |
- |
१२ |
डी 4 |
- |
९ |
मल्टीप्लेक्सिंग सेवन सेगमेंट डिस्प्ले के लिए Arduino UNO प्रोग्रामिंग
इस ट्यूटोरियल के अंत में पूरा कोड और वर्किंग वीडियो संलग्न है। प्रोग्रामिंग अनुभाग में, आरटीसी मॉड्यूल से 210 प्रारूप में समय (घंटे और मिनट) कैसे लिया जाता है और फिर इसे 4-अंकीय 7 सेगमेंट डिस्प्ले में प्रदर्शित करने के लिए संबंधित प्रारूप में परिवर्तित किया जाता है।
Ar32ino UNO के साथ DS3231 RTC मॉड्यूल को इंटरफ़ेस करने के लिए Arduino UNO की I2C बस का उपयोग किया जाता है। एक पुस्तकालय कहा जाता है
इस अवधारणा में, घंटे और मिनट को आरटीसी से पहले लिया जाता है और उन्हें 0930 (09:30 बजे) की तरह एक साथ जोड़ दिया जाता है और फिर व्यक्तिगत अंकों को हजार, सौ, दसियों, इकाई की तरह अलग किया जाता है और व्यक्तिगत अंक 0 जैसे द्विआधारी प्रारूप में परिवर्तित हो जाते हैं। 63 (0111111) में। यह बाइनरी कोड एक शिफ्ट रजिस्टर को भेजा जाता है और फिर शिफ्ट रजिस्टर से सात-सेगमेंट में, डिजिट 0 को सात सेगमेंट डिस्प्ले में सफलतापूर्वक प्रदर्शित करता है। इस तरह, चार अंकों को गुणा किया जाता है और घंटे और मिनट को प्रदर्शित किया जाता है।
प्रारंभ में, आवश्यक पुस्तकालय में DS3231 पुस्तकालय और वायर लाइब्रेरी (I2C पुस्तकालय) शामिल हैं।
#शामिल
पिंस को सात खंड नियंत्रण के लिए परिभाषित किया गया है। ये नियंत्रण प्रदर्शन को मल्टीप्लेक्स करने में महत्वपूर्ण भूमिका निभाएंगे ।
# डेफिन लैपपिन 5 # डिफाइन क्लॉकपिन 6 # डाटा फाइल 4 # डिफाइन डॉट 2
आरटीसी से लिए गए परिवर्तित या कच्चे परिणाम को संग्रहीत करने के लिए चर घोषित किए जाते हैं।
इंट एच; // चर इंट घंटे के लिए घोषित चर ; // मिनट इंट हजारों के लिए घोषित चर ; इंट सैकड़ों; int दसियों; इंट यूनिट; बूल h24; बूल पीएम;
कक्षा DS3231 के लिए अगली वस्तु को आगे की लाइनों में उपयोग को सरल बनाने के लिए RTC घोषित किया गया है।
DS3231 RTC;
जैसा कि RTC मॉड्यूल I2C संचार का उपयोग करके Arduino के साथ हस्तक्षेप करता है। तो, आरटीसी के डिफ़ॉल्ट पते में I2C संचार शुरू करने के लिए wire.begin () का उपयोग किया जाता है क्योंकि कोई अन्य I2C मॉड्यूल नहीं हैं।
तार.बेगिन ();
पिन मोड परिभाषित कर रहे हैं, चाहे GPIO उत्पादन या इनपुट के रूप में व्यवहार करेगा।
पिनमोड (9, OUTPUT); पिनमोड (10, OUTPUT); पिनमोड (11, OUTPUT); पिनमोड (12, OUTPUT); पिनमोड (latchPin, OUTPUT); पिनमोड (क्लॉकपिन, आउटपूट); पिनमोड (डेटापिन, आउटपूट); pinMode (डॉट, OUTPUT);
लूप असीम रूप से चलता है और आरटीसी डीएस 3231 मॉड्यूल से घंटे और मिनट में समय लगता है। 'h24' 210 प्रारूप चर को इंगित करता है।
int h = RTC.getHour (h24, PM); int m = RTC.getMinute ();
फिर घंटे और मिनट को एक संख्या के रूप में संयोजित किया जाता है (उदाहरण यदि घंटे 10 है और न्यूनतम 60 है तो संख्या 10 * 100 = 1000 + 60 = 1060 है)।
int संख्या = h * 100 + m;
संख्या से अलग-अलग अंक प्राप्त कर रहे हैं (उदाहरण के 1060- 1 हजार, 0 hundered है, 1 दसवें है और 0 पिछले अंक है)। अंकों को अलग करने के लिए, मापांक ऑपरेटर का उपयोग किया जाता है। उदाहरण के लिए, 1060 में 1 तो 1060/1000 = 1.06% 10 = 1) मिलेगा। इसलिए अलग-अलग अंक को अलग-अलग चर में संग्रहित किया जाता है।
int हजारों = संख्या / 1000% 10; int सैकड़ों = संख्या / 100% 10; int दहाई = संख्या / १०% १०; int इकाई = संख्या% 10;
उसके बाद प्रत्येक व्यक्तिगत अंक के लिए एक स्विच केस स्टेटमेंट उन्हें संबंधित प्रारूप (बाइनरी प्रारूप) में परिवर्तित करने और 7-खंड में प्रदर्शित करने के लिए शिफ्ट रजिस्टर के माध्यम से बाहर भेजने के लिए परिभाषित किया गया है। उदाहरण के लिए (1 अंक के लिए इसे 06 (0000 0110) में बदल दिया जाता है)। ताकि इसे शिफ्ट के माध्यम से बाहर भेजा जाए और 1 अंक 7-सेगमेंट (0 एलओडब्ल्यू के लिए, 1 हाई के लिए) में प्रदर्शित किया जाए।
स्विच (टी) { केस 0: यूनिट = 63; टूटना; केस 1: यूनिट = 06; टूटना; केस 2: यूनिट = 91; टूटना; केस 3: यूनिट = 79; टूटना; स्थिति 4: इकाई = 102; टूटना; केस 5: यूनिट = 109; टूटना; केस 6: यूनिट = 125; केस 7: यूनिट = 07; टूटना; केस 8: यूनिट = 127; टूटना; केस 9: यूनिट = 103; टूटना; }
फिर बाइनरी फॉर्मेट में अलग-अलग अंकों को पहले MSB के साथ 'शिफ्टआउट' फंक्शन के जरिए भेजा जाता है और संबंधित डिजिट पिन को हाई और लैच पिन को हाई बनाया जाता है।
digitalWrite (9, LOW); digitalWrite (latchPin, LOW); shiftOut (dataPin, clockPin, MSBFIRST, हजारों); digitalWrite (latchPin, HIGH); digitalWrite (9, उच्च); देरी (5);
इससे पूरा कोड खत्म हो जाता है। फ़ंक्शन स्पष्टीकरण के अधिकांश कोड लाइन के पास कोड टिप्पणी अनुभाग में दिए गए हैं। घड़ी की आवृत्ति, मल्टीप्लेक्सिंग के समय और गुणवत्ता का दृश्य तय करेगी यदि निम्न घड़ी का उपयोग किया जाता है, तो टिमटिमा को देखा जा सकता है, जैसे कि यदि घड़ी की गति अधिक है, तो ऐसी झिलमिलाहट नहीं होगी और एक स्थिर समय देखा जा सकता है ।
ध्यान दें कि आरटीसी मॉड्यूल का उपयोग करने के लिए, I2C बस वोल्टेज को बनाए रखना होगा। किसी भी सुझाव को देने के लिए या यदि आपको कोई संदेह है तो कृपया नीचे टिप्पणी करें।