इस ट्यूटोरियल में हम Arduino Uno का उपयोग कर एक 8x8 LED मैट्रिक्स स्क्रॉलिंग डिस्प्ले डिज़ाइन करने जा रहे हैं, जो स्क्रॉलिंग अल्फाबेट्स दिखाएगा।
8x8 एलईडी मैट्रिक्स में 64 एलईडी (लाइट एमिटिंग डायोड) शामिल हैं जो मैट्रिक्स के रूप में व्यवस्थित होते हैं, इसलिए इसका नाम एलईडी मैट्रिक्स है। हम इन 64 एल ई डी को परफेक्टबोर्ड या डीओटी पीसीबी पर टांका लगाकर इस मैट्रिक्स को बनाने जा रहे हैं। एल ई डी किसी भी रंग का हो सकता है, उन लोगों को चुनें जो आपके साथ उपलब्ध हैं। फिर हम Arduino के लिए इन 64 एल ई डी मैट्रिक्स को नियंत्रित करने के लिए एक कार्यक्रम लिखेंगे। संयुक्त राष्ट्र संघ, कार्यक्रम के अनुसार, स्क्रॉलिंग में पात्रों को दिखाने के लिए उपयुक्त एल ई डी को अधिकार देता है।
आवश्यक घटक:
- अरुडिनो उनो
- 64 एल ई डी
- टांका लगाने वाले अन्य उपकरणों के साथ परफॉरमेंस
- 1K 1 रोकनेवाला (8 टुकड़े)
- बिजली की आपूर्ति (5v)
सर्किट और कार्य विवरण:
मैट्रिक्स फॉर्म में 64 एलईडी व्यवस्थित हैं। तो हमारे पास 8 कॉलम और 8 पंक्तियाँ हैं। उन पंक्तियों और स्तंभों पर, एक पंक्ति के सभी सकारात्मक टर्मिनलों को एक साथ लाया जाता है। प्रत्येक पंक्ति के लिए, उस पंक्ति में सभी 8 एलईडी के लिए एक सामान्य सकारात्मक टर्मिनल है । यह नीचे दिए गए आंकड़े में दिखाया गया है,
तो 8 पंक्तियों के लिए हमारे पास 8 सामान्य सकारात्मक टर्मिनल हैं। पहली पंक्ति पर विचार करें, जैसा कि चित्र में देखा गया है, D57 से D64 तक 8 एल ई डी में एक सामान्य सकारात्मक टर्मिनल है और इसे 'POSITIVE0' द्वारा दर्शाया गया है। अब अगर हम मैट्रिक्स के पहले ROW में एक या सभी एल ई डी की चमक चाहते हैं, तो हमें LED मैट्रिक्स के PIN0 को पावर देना चाहिए। इसी तरह अगर हम किसी भी ROW में किसी LED (या सभी) को चमकाना चाहते हैं तो हमें उस संबंधित पंक्ति के संबंधित कॉमन पॉजिटिव टर्मिनल पिन को पावर करने की आवश्यकता होती है।
यह अभी खत्म नहीं हुआ है और सिर्फ MATRIX ROWS को सकारात्मक आपूर्ति के साथ छोड़ने से कुछ हासिल नहीं होगा। हमें एल ई डी निगेटिव को चमकाने के लिए जमीन पर उतारने की जरूरत है। तो 8x8 एलईडी मैट्रिक्स में, किसी भी कॉलम में एलईडी के सभी नकारात्मक टर्मिनलों को एक साथ आठ कॉमन नेगेटिव टर्मिनल बनाने के लिए लाया जाता है , जैसे पहले कॉलम में सभी नकारात्मक टर्मिनल एक साथ PIN-A1 (NEGATIVE7) से जुड़े होते हैं। यह नीचे दिए गए आंकड़े में दिखाया गया है:
परफ़ॉर्म पर एलईडी को टांका लगाने के दौरान इन पिनों पर ध्यान देना चाहिए।
अब अगर हमें पहले कॉलम में कोई एलईडी लगाने की आवश्यकता है तो हम MATRIX के PIN-A1 (NEGATIVE7) को ग्राउंड करेंगे, और यह सभी एलईडी को पहले कॉलम में ग्राउंड करेगा। एक ही प्रक्रिया अन्य सभी सात सामान्य नकारात्मक स्तंभों के लिए जाती है।
चूंकि अब आप जानते हैं कि कॉमन पॉजिटिव और कॉमन निगेटिव कैसे काम करता है। आइए उन्हें एक साथ देखने के लिए कि वे एक साथ कैसे काम करते हैं और स्क्रॉलिंग 8x8 एलईडी मैट्रिक्स डिस्प्ले के लिए अंतिम सर्किट इस तरह दिखाई देगा:
मल्टीप्लेक्सिंग का उपयोग कर ड्राइविंग 8x8 एलईडी मैट्रिक्स:
अब हम कहते हैं कि हम LED57 को चालू करना चाहते हैं, फिर हमें UNO के PIN0 को पावर करने और UNO के पिन -8 को ग्राउंड करने की आवश्यकता है। अब LED57 और LED50 दोनों को चालू करने के लिए, हमें PIN0, PIN1 को पावर करने और PIN8, PIN9 को ग्राउंड करने की आवश्यकता है। लेकिन ऐसा करने से न केवल D57, D50 बल्कि D49, D58 भी चालू हो जाएंगे। इससे बचने के लिए हम मल्टीप्लेक्सिंग नामक तकनीक का उपयोग करते हैं । हमने पहले से ही इस मल्टीप्लेक्स तकनीक पर 8x8 एलईडी मैट्रिक्स में विस्तार से चर्चा की है; विस्तृत विवरण के लिए उस लेख को देखें। यहां हम मल्टीप्लेक्सिंग के बारे में संक्षेप में बता रहे हैं।
मानव आंख 30 HZ से अधिक आवृत्ति पर कब्जा नहीं कर सकती है। यही कारण है कि एक एलईडी 30HZ या उससे अधिक की दर से लगातार चालू और बंद रहता है। आंख एलईडी को लगातार देखती है। हालांकि यह मामला नहीं है और एलईडी वास्तव में लगातार चालू और बंद होगा। इस तकनीक को मल्टीप्लेक्सिंग कहा जाता है ।
उदाहरण के लिए मान लें, हम केवल D57 और D58 को चालू किए बिना LED57 और LED50 को चालू करना चाहते हैं। ट्रिक है, हम पहले LED57 को चालू करने के लिए पहली पंक्ति को शक्ति प्रदान करेंगे और 1mSEC की प्रतीक्षा करेंगे, और फिर हम इसे बंद कर देंगे। फिर हम LED50 को चालू करने के लिए दूसरी पंक्ति को शक्ति प्रदान करेंगे और 1mSEC की प्रतीक्षा करेंगे फिर इसे बंद कर देंगे। यह चक्र उच्च आवृत्ति के साथ लगातार चलता रहता है और LED57 और LED50 तेजी से चालू और बंद हो रहे हैं और दोनों एल ई डी हमारी आंख पर लगातार दिखाई देंगे। इसका मतलब है कि हम एक समय में केवल एक पंक्ति को बिजली प्रदान कर रहे हैं, अन्य पंक्तियों में अन्य एल ई डी चालू करने की संभावना को समाप्त करते हैं। हम सभी पात्रों को दिखाने के लिए इस तकनीक का उपयोग करेंगे।
मल्टीप्लेक्सिंग की इस जटिलता को ध्यान में रखने के लिए LedControlMS.h नामक एक लाइब्रेरी भी है, जहाँ आपको केवल उस वर्ण या संख्या को दर्ज करना होगा जिसे आप LED मैट्रिक्स पर प्रिंट करना चाहते हैं, इस Arduino LED मैट्रिक्स को MAX7219 प्रोजेक्ट के साथ और अधिक विस्तार से जाँचें।
प्रोग्रामिंग स्पष्टीकरण:
हमारे कोड में, हमने प्रत्येक वर्ण के लिए दशमलव मान लिखा है और इन मूल्यों को Arduino में क्रमादेशित किया है। कार्यक्रम ने प्रत्येक 0.2 सेकंड के लिए इन मूल्यों को अगली पंक्ति में स्थानांतरित करने के लिए लिखा है, इसे पात्रों की स्क्रॉलिंग के रूप में ऊपर की ओर देखा जाएगा, यह बहुत सरल है।
प्रदर्शित किए जाने वाले वर्णों को बदलने के लिए, बस नीचे दिए गए वर्ण मानों के अनुसार मूल्य को चर अल्फा सरणी में बदलें, 24,60,102,126,102,102,102,102,0,0,0, // A 124,102,102,124,102,102,124,0,0,0, // B 60,102,96,96,96,102,60,0, 0,0, // C 120,108,102,102,102,108,120,0, 0,0, // D 126,96,96,96,96,96,126,0, 0,0, // E 126,96,96,120,96,96,96,0, 0,0, // F 60,102,96,110,110,102,60,60। 0, 0,0, // G 102,102,102,126,102,102,102,0, 0,0, // H 60,24,24,24,24,24,60,0, 0,0, // I 30,12,12,12, 12,108,56,0, 0,0, // J 102,108,120,112,120,108,102,0, 0,0, // K 96,96,96,96,96,96,126,0, 0,0, // L 99,119,127,107,99,99 99,99,0, 0,0, // M 102,118,126,126,110,102,102,0, 0,0, // N 60,102,102,102,102,102,60,0, 0,0, // O 124,102,102,124,96,96,96,0, 0,0, // P 60,102,102,102,102,60,14,0, 0,0, // Q 124,102,102,124,120,108,102,0, 0,0, // R 60,102,96,60,6,102,60,0, 0,0, // S 126, 24,24,24,24,24,24,0, 0,0, // T 102,102,102,102,102,102,60,0, 0,0, // U 102,102,102,102,102,60,24,0, 0,0, // V 99,99,99,107,127,119,99,0, 0,0, // डब्ल्यू 102,102,60,24,60,102,102,0, 0,0, // X 102,102,102,60,24,24,24,0, 0,0, // Y 126,6,12, 24,48,96,126,0, 0,0, // Z
जैसा यदि आप चाहते हैं एलईडी मैट्रिक्स पर पिता को प्रदर्शित तो पहले में वर्ण मूल्यों की जगह चार अल्फा उपरोक्त सूची में से के लिए पात्रों डी, ए और डी मूल्यों डालकर सरणी:
char ALPHA = {0,0,0,0,0,0,0,0,0,0,0, 120,108,102,102,102,108,120,0,0,0, 24,60,102,126,102,102,102,0,0, 120,108,102,102,102,108,120,0,0,0, 0, 0,0,0,0,0,0,0,0,0,0,0};
कुल मूल्य अब 5 * 10 = 50 मान हैं, इसलिए
बदलें, के लिए (int x = 0; x <142; x ++) // 150-8 (अतिप्रवाह रोकने के लिए) {…….. साथ, (int x = 0; x <42; x ++) // 50-8 के लिए (ओवरफ्लो रोकने के लिए) {……..
तो आपको बस नंबर बदलने की जरूरत है।
इसके साथ आपने प्रोग्रामिंग की है और अब आप 8x8 LED मैट्रिक्स पर किसी भी टेक्स्ट को स्क्रॉल कर सकते हैं, एक प्रदर्शन वीडियो के साथ नीचे दिए गए पूर्ण कोड की जांच कर सकते हैं ।