- 7-सेगमेंट और 4-अंक 7-सेगमेंट डिस्प्ले मॉड्यूल:
- रास्पबेरी पाई के साथ 4-अंकीय 7-खंड मॉड्यूल कनेक्ट करना:
- अपने रास्पबेरी पाई प्रोग्रामिंग:
- रास्पबेरी पाई का उपयोग करके 4-अंक 7-खंड पर समय प्रदर्शित करें:
हम सभी जानते हैं कि रास्पबेरी पाई एआरएम माइक्रोप्रोसेसर पर आधारित एक अद्भुत विकास मंच है। अपनी उच्च कम्प्यूटेशनल शक्ति के साथ यह इलेक्ट्रॉनिक्स शौकीनों या छात्रों के हाथों में अद्भुत काम कर सकता है। यह सब तभी संभव हो सकता है जब हम यह जानते हैं कि वास्तविक दुनिया के साथ बातचीत कैसे करें और कुछ आउटपुट डिवाइस के माध्यम से डेटा का विश्लेषण करें। कई सेंसर हैं जो वास्तविक समय की दुनिया से कुछ मापदंडों का पता लगा सकते हैं और इसे एक डिजिटल दुनिया में स्थानांतरित कर सकते हैं और हम उन्हें एलसीडी स्क्रीन या कुछ अन्य डिस्प्ले में देखने का विश्लेषण करते हैं। लेकिन, डेटा की छोटी मात्रा को प्रदर्शित करने के लिए पीआई के साथ एलसीडी स्क्रीन का उपयोग करना हमेशा किफायती नहीं होगा। यह वह जगह है जहाँ हम 16x2 अल्फ़ान्यूमेरिक एलसीडी डिस्प्ले या 7-सेगमेंट डिस्प्ले का उपयोग करना पसंद करते हैं। हमने पहले ही सीखा है कि रास्पबेरी पाई के साथ एक अल्फ़ान्यूमेरिक एलसीडी और एक एकल खंड 7-खंड प्रदर्शन का उपयोग कैसे करें। आज हम करेंगेरास्पबेरी पाई के साथ इंटरफ़ेस 4-अंकीय सात खंड प्रदर्शन मॉड्यूल और उस पर समय प्रदर्शित करें ।
हालाँकि 16x2 अल्फ़ान्यूमेरिक एलसीडी 7-सेगमेंट डिस्प्ले की तुलना में बहुत अधिक आरामदायक है, फिर भी कुछ परिदृश्य हैं जहां 7-सेगमेंट का डिस्प्ले एलसीडी डिस्प्ले की तुलना में बेहतर होगा। एलसीडी कम चरित्र के आकार के दोष से ग्रस्त है और यदि आप कुछ संख्यात्मक मूल्यों को प्रदर्शित करने की योजना बना रहे हैं तो यह आपके प्रोजेक्ट के लिए ओवरकिल होगा। 7-सेगमेंट में खराब रोशनी की स्थिति के खिलाफ भी लाभ है और इसे एक सामान्य एलसीडी स्क्रीन की तुलना में लेगर एंगल से देखा जा सकता है। तो, हम इसे जानना शुरू करते हैं।
7-सेगमेंट और 4-अंक 7-सेगमेंट डिस्प्ले मॉड्यूल:
7 सेगमेंट डिस्प्ले में इसके सात सेगमेंट हैं और प्रत्येक सेगमेंट में इसी सेगमेंट को लाइट करके नंबर प्रदर्शित करने के लिए इसके अंदर एक एलईडी है। जैसे अगर आप 7-सेगमेंट को "5" नंबर दिखाना चाहते हैं, तो आपको उनके संबंधित पिनों को ऊंचा करके सेगमेंट a, f, g, c और d को चमकाना होगा। 7-सेगमेंट डिस्प्ले के दो प्रकार हैं: कॉमन कैथोड और कॉमन एनोड, यहां हम कॉमन कैथोड सात सेगमेंट डिस्प्ले का उपयोग कर रहे हैं । यहां 7 सेगमेंट डिस्प्ले के बारे में अधिक जानें।
अब हम जानते हैं कि एक एकल 7-खंड प्रदर्शन पर हमारे वांछित संख्यात्मक चरित्र को कैसे प्रदर्शित किया जाए। लेकिन, यह बहुत स्पष्ट है कि हमें किसी भी जानकारी को संप्रेषित करने के लिए एक से अधिक 7-सेगमेंट डिस्प्ले की आवश्यकता होगी जो एक से अधिक अंकों का हो। इसलिए, इस ट्यूटोरियल में हम नीचे दिखाए गए अनुसार 4-अंकीय 7-सेगमेंट डिस्प्ले मॉड्यूल का उपयोग करेंगे।
जैसा कि हम देख सकते हैं कि फोर सेवन सेगमेंट डिस्प्ले एक साथ जुड़े हुए हैं। हम जानते हैं कि प्रत्येक 7-सेगमेंट मॉड्यूल में 10 पिन होंगे और 4 सात सेगमेंट के डिस्प्ले के लिए कुल मिलाकर 40 पिन होंगे और डॉट बोर्ड पर किसी को भी सोल्डर करना आसान होगा, इसलिए मैं किसी को भी मॉड्यूल खरीदने की सलाह दूंगा या 4-अंकों के 7-सेगमेंट डिस्प्ले का उपयोग करने के लिए अपना स्वयं का पीसीबी बनाएं। उसी के लिए कनेक्शन योजनाबद्ध नीचे दिखाया गया है:
यह समझने के लिए कि 4-अंकीय सात सेगमेंट मॉड्यूल कैसे काम करते हैं, हमें उपरोक्त योजनाबद्धताओं पर गौर करना होगा, क्योंकि दिखाया गया है कि सभी चार डिस्प्ले का A पिन B के लिए A और A के समान है। तो, मूल रूप से यदि ए पर ट्रिगर होता है, तो सभी चार ए को उच्च दाएं जाना चाहिए?
लेकिन, ऐसा नहीं होता है। हमारे पास D0 से D3 (D0, D1, D2 और D3) में अतिरिक्त चार पिन हैं जिन्हें नियंत्रित करने के लिए इस्तेमाल किया जा सकता है जो चारों में से प्रदर्शित होते हैं जो उच्च स्तर पर जाने चाहिए। उदाहरण के लिए: यदि मुझे अपने आउटपुट की आवश्यकता केवल दूसरे डिस्प्ले पर मौजूद है, तो अन्य पिन (D0, D2, और D3) को कम रखते हुए केवल D1 को उच्च बनाया जाना चाहिए। बस हम यह चुन सकते हैं कि किस डिस्प्ले को D0 से D3 तक पिन का उपयोग करके सक्रिय होना है और A से DP तक पिन का उपयोग करके किस चरित्र को प्रदर्शित करना है।
रास्पबेरी पाई के साथ 4-अंकीय 7-खंड मॉड्यूल कनेक्ट करना:
आइए देखें कि कैसे, हम इस 4-अंकीय 7-खंड मॉड्यूल को हमारे रास्पबेरी पाई के साथ जोड़ सकते हैं। नीचे दिखाए गए अनुसार 7-सेगमेंट मॉड्यूल में 16 पिन हैं। आप मॉड्यूल कम हो सकता है, लेकिन चिंता मत करो यह अभी भी सुनिश्चित करने के लिए निम्नलिखित होगा
- 7 या 8 खंड पिन (यहां 1 से 8 तक शुरू होने वाले पिन)
- ग्राउंड पिन (यहां पिन 11)
- 4 अंक पिन (यहाँ 13 से 16 पिन)
नीचे दिया गया है रास्पबेरी पाई के साथ 4-अंकीय सात खंड डिस्प्ले मॉड्यूल को जोड़कर रास्पबेरी पाई डिजिटल घड़ी के लिए योजनाबद्ध है :
निम्न तालिका आपको कनेक्शन बनाने में मदद करेगी और इसे ऊपर दिखाए गए योजना के अनुसार होने के लिए सत्यापित करेगी।
एस.एन.ओ. |
Rsp Pi GPIO नंबर |
Rsp Pi PIN नंबर |
Name-खंड नाम |
7-सेग पिन नंबर (यहां इस मॉड्यूल में) |
1 |
GPIO 26 |
पिन ३ 37 |
खंड ए |
1 |
२ |
GPIO 19 |
पिन 35 |
खंड ख |
२ |
३ |
GPIO 13 |
पिन 33 |
खंड सी |
३ |
४ |
GPIO 6 |
पिन ३१ |
खंड डी |
४ |
५ |
GPIO 5 |
पिन २ ९ |
खंड ई |
५ |
६ |
GPIO 11 |
पिन २३ |
खंड च |
६ |
। |
जीपीआईओ ९ |
पिन २१ |
खंड जी |
। |
। |
GPIO 10 |
पिन १ ९ |
खंड डीपी |
। |
९ |
GPIO 7 |
पिन २६ |
अंक 1 |
१३ |
१० |
GPIO 8 |
पिन २४ |
अंक २ |
१४ |
1 1 |
GPIO 25 |
पिन २२ |
अंक 3 |
१५ |
१२ |
GPIO 24 |
पिन १ 18 |
अंक 4 |
१६ |
१३ |
भूमि |
भूमि |
भूमि |
1 1 |
अपने मॉड्यूल पर पिनों की पहचान करें और आप कनेक्शन के साथ आगे बढ़ने के लिए सभी अच्छे हैं। रास्पबेरी पाई में GPIO पिन को खोलना थोड़ा चुनौतीपूर्ण काम हो सकता है इसलिए मैंने आपको GPIO पिन के लिए यह चित्र प्रदान किया है।
अपने रास्पबेरी पाई प्रोग्रामिंग:
यहां हम आरपीआई प्रोग्रामिंग के लिए पायथन प्रोग्रामिंग भाषा का उपयोग कर रहे हैं । आपके रास्पबेरी पाई को प्रोग्राम करने के कई तरीके हैं। इस ट्यूटोरियल में हम पायथन 3 आईडीई का उपयोग कर रहे हैं, क्योंकि यह सबसे अधिक उपयोग किया जाता है। पूरा अजगर कार्यक्रम इस ट्यूटोरियल के अंत में दिया जाता है। कार्यक्रम के बारे में अधिक जानें और रास्पबेरी पाई में कोड चलाएं।
हम इस परियोजना के लिए PYHTON कार्यक्रम में उपयोग करने जा रहे कुछ कमांड के बारे में बात करेंगे, पहले हम लाइब्रेरी से GPIO फ़ाइल आयात करने जा रहे हैं, नीचे फ़ंक्शन हमें PI के GPIO पिन को प्रोग्राम करने में सक्षम बनाता है। हम "GPIO" का नाम भी "IO" कर रहे हैं, इसलिए जब भी हम GPIO पिन को संदर्भित करना चाहते हैं, तो हम 'IO' शब्द का उपयोग करेंगे। हमने Rsp Pi से समय के मूल्य को पढ़ने के लिए समय और डेटाटाइम आयात किया है ।
आयात RPi.GPIO GPIO आयात समय के रूप में, डेटाटाइम
कभी-कभी, जब GPIO पिन, जिसे हम उपयोग करने की कोशिश कर रहे हैं, हो सकता है कि वह कुछ अन्य कार्य कर रहा हो। उस स्थिति में, हम कार्यक्रम को निष्पादित करते समय चेतावनी प्राप्त करेंगे। नीचे कमांड पीआई को चेतावनी को अनदेखा करने और कार्यक्रम के साथ आगे बढ़ने के लिए कहता है ।
IO.setwarnings (गलत)
हम पीआई के GPIO पिन का उल्लेख कर सकते हैं, या तो बोर्ड पर पिन नंबर या उनके फ़ंक्शन नंबर के द्वारा। बोर्ड पर 'PIN 29' की तरह 'GPIO5' है। इसलिए हम यहां बताते हैं कि या तो हम यहां '29' या '5' द्वारा पिन का प्रतिनिधित्व करने जा रहे हैं। GPIO.BCM का मतलब है कि हम GPIO5 पिन 29 के लिए 5 का उपयोग करेंगे।
IO.setmode (GPIO.BCM)
हमेशा की तरह हमें पिंस को इनिशियलाइज़ करके शुरू करना चाहिए, यहाँ सेगमेंट पिन और डिजिट पिन दोनों आउटपुट पिन हैं । प्रोग्रामिंग उद्देश्य के लिए हम खंड पिन के लिए सरणियाँ बनाते हैं और उन्हें GPIO.OUT के रूप में घोषित करने के बाद उन्हें '0' से आरंभ करते हैं
खंड 8 में खंड के लिए खंड 8 = (26,19,13,6,5,11,9,10): GPIO.setup (खंड, GPIO.OUT) GPIO.output (खंड, 0)
इसी तरह अंक पिन के लिए हम उन्हें आउटपुट पिन घोषित करते हैं और डिफ़ॉल्ट रूप से उन्हें '0' बनाते हैं
#Digit 1 GPIO.setup (7, GPIO.OUT) GPIO.output (7, 0) #Off शुरू में #Digit 2 GPIO.setup (8, GPIO.OUT) GPIO.output (8, 0, #Off शुरू में # डेटा) 3 GPIO.setup (25, GPIO.OUT) GPIO.output (25, 0) # शुरू में # पुराना 4 GPIO.setup (24, GPIO.OUT) GPIO.output (24, 0) # प्रारंभ में देखें
हमें प्रत्येक खंड को सात खंड के डिस्प्ले पर प्रदर्शित करने के लिए एरेज़ बनाना होगा । एक नंबर को प्रदर्शित करने के लिए हमें सभी 7 सेगमेंट पिंस (डॉट पिन को बाहर रखा गया) को नियंत्रित करना होगा, यानी उन्हें या तो बंद करना होगा या चालू करना होगा। उदाहरण के लिए संख्या 5 को प्रदर्शित करने के लिए हमने निम्नलिखित व्यवस्था की है
एस.एन.ओ. |
Rsp Pi GPIO नंबर |
Name-खंड नाम |
'5' प्रदर्शित करने की स्थिति। (0-> ऑफ़, 1-> ऑन) |
1 |
GPIO 26 |
खंड ए |
1 |
२ |
GPIO 19 |
खंड ख |
1 |
३ |
GPIO 13 |
खंड सी |
० |
४ |
GPIO 6 |
खंड डी |
1 |
५ |
GPIO 5 |
खंड ई |
1 |
६ |
GPIO 11 |
खंड च |
० |
। |
जीपीआईओ ९ |
खंड जी |
1 |
इसी तरह हमारे पास सभी संख्याओं और वर्णमालाओं के लिए अनुक्रम संख्या है। आप स्वयं लिख सकते हैं या नीचे दिए गए चार्ट का उपयोग कर सकते हैं।
इन आंकड़ों के साथ हम अपने अजगर कार्यक्रम में प्रत्येक संख्या के लिए सरणियों का निर्माण कर सकते हैं जैसा कि नीचे दिखाया गया है।
नल = शून्य = एक = दो = तीन = चार = पाँच = छः = सात = आठ = नौ =
आप का पालन करें कार्यक्रम हमारे 7-खंड प्रदर्शित करने के लिए प्रत्येक वर्ण प्रदर्शित करने के लिए एक समारोह नहीं होगा लेकिन, चलो अब के लिए इसे छोड़कर में मिल जबकि अनंत लूप। जहां रास्पबेरी पाई से वर्तमान समय को पढ़ें और चार चर के बीच समय के मूल्य को विभाजित करें । उदाहरण के लिए यदि समय 10.45 है तो चर h1 में 1, h2 का 0, m1 का 4vand m2 होगा 5 होगा।
अब = datetime.datetime.now () घंटे = अब। आपका मिनट = अब। मिनट 1 / घंटा / 10 h2 = घंटा% 10 m1 = मिनट / 10 m2 = मिनट% 10 प्रिंट (h1, h2, m1, m2)
हमें इन चार चर मानों को क्रमशः अपने चार अंकों पर प्रदर्शित करना है। किसी अंक के लिए चर का मान लिखने के लिए हम निम्नलिखित पंक्तियों का उपयोग कर सकते हैं। यहाँ हम इसे उच्च बनाते हुए अंक 1 पर प्रदर्शित करते हैं तो खंड प्रदर्शन पर चर में मूल्य प्रदर्शित करने के लिए फ़ंक्शन print_segment (चर) को बुलाया जाएगा। आप सोच रहे होंगे कि उसके बाद हमारे पास देरी क्यों है और हम इसके बाद इस अंक को बंद क्यों करते हैं।
GPIO.output (7, 1) # डिजिट पर एक प्रिंट_सेगमेंट (h1) #Print h1 सेगमेंट के समय पर। स्लीप (विलंब_ समय) GPIO.output (7, 0) #Turn से डिजीट वन
कारण यह है, जैसा कि हम जानते हैं कि हम एक समय में केवल एक अंक प्रदर्शित कर सकते हैं, लेकिन हमारे पास प्रदर्शित करने के लिए चार अंक हैं और केवल अगर सभी चार अंक प्रदर्शित किए जाते हैं तो पूर्ण चार अंकों की संख्या उपयोगकर्ता के लिए दिखाई देगी।
तो, एक ही समय में सभी 4 अंक कैसे प्रदर्शित करते हैं ?
हमारे लिए भाग्यशाली है कि हमारा एमपीयू एक मानव आंख की तुलना में बहुत तेज है, इसलिए हम वास्तव में क्या करते हैं: हम एक समय में एक अंक प्रदर्शित करते हैं लेकिन हम इसे बहुत तेजी से करते हैं जैसा कि ऊपर दिखाया गया है ।
हम एक अंक का चयन करते हैं, यह 2ms (चर में देरी_ समय) के लिए प्रतीक्षा करता है ताकि MPU और 7-खंड इसे संसाधित कर सकें और फिर उस अंक को बंद कर अगले अंक पर ले जाएं और अंतिम अंक तक पहुंचने तक ऐसा ही करें। 2ms की देरी को एक मानव आंख से नहीं देखा जा सकता है और सभी चार अंक एक ही समय में दिखाई देते हैं।
यह जानने के लिए आखिरी चीज कि प्रिंट_सेक्ट (चर) फ़ंक्शन कैसे काम करता है। इस फ़ंक्शन के अंदर हम उन सरणियों का उपयोग करते हैं जिन्हें हमने अब तक घोषित किया है। इसलिए जो भी चर हम इस फ़ंक्शन को भेजते हैं, उसमें (0-9) के बीच का मान होना चाहिए, चर वर्ण इस मान को प्राप्त करेगा और वास्तविक मूल्य के लिए इसकी तुलना करेगा। यहां चर की तुलना '1' से की जाती है। इसी प्रकार हम सभी संख्याओं की तुलना 0 से 9 तक करते हैं। यदि यह एक ऐसा मैच है, तो हम एरे का उपयोग करते हैं और प्रत्येक मूल्य को नीचे दिखाए गए संबंधित खंडों को निर्दिष्ट करते हैं।
डिफ प्रिंट_सेगमेंट (करेक्टर): यदि करेक्टर == 1: i फॉर रेंज में (7): GPIO.output (सेगमेंट 8, वन)
रास्पबेरी पाई का उपयोग करके 4-अंक 7-खंड पर समय प्रदर्शित करें:
कनेक्शन बनाने और अपने रास्पबेरी पाई को तदनुसार कार्यक्रम करने के लिए यहां दिए गए योजनाबद्ध और कोड का उपयोग करें। सब कुछ हो जाने के बाद, बस प्रोग्राम लॉन्च करें और आपको सात सेगमेंट डिस्प्ले में वर्तमान समय प्रदर्शित होना चाहिए। लेकिन, इससे पहले कुछ चीजें हैं जिन्हें आपको जांचना होगा
- सुनिश्चित करें कि आपने अपना रास्पबेरी पाई चालू समय के साथ सेट किया है अगर यह ऑफ़लाइन समय पर चल रहा है।
- एडॉप्टर से अपने रास्पबेरी पाई को पावर करें और अपने लैपटॉप / कंप्यूटर के साथ न करें क्योंकि 7-सेगमेंट डिस्प्ले द्वारा खींची गई वर्तमान की मात्रा अधिक है और आपका यूएसबी पोर्ट इसे स्रोत नहीं कर सकता है।
यदि सब कुछ उम्मीद के मुताबिक काम कर रहा है, तो आपको नीचे ऐसा कुछ ढूंढना चाहिए।
इस रास्पबेरी पाई घड़ी का पूरा काम नीचे दिए गए वीडियो पर भी देखा जा सकता है । आशा है कि आप इस परियोजना को पसंद करेंगे और एक निर्माण का आनंद लेंगे। मुझे पता है कि आप क्या सोचते हैं या अगर आपको मदद की ज़रूरत है।