विषयसूची:

5x4 एलईडी डिस्प्ले मैट्रिक्स बेसिक स्टैम्प 2 (बीएस2) और चार्लीप्लेक्सिंग का उपयोग करना: 7 कदम
5x4 एलईडी डिस्प्ले मैट्रिक्स बेसिक स्टैम्प 2 (बीएस2) और चार्लीप्लेक्सिंग का उपयोग करना: 7 कदम

वीडियो: 5x4 एलईडी डिस्प्ले मैट्रिक्स बेसिक स्टैम्प 2 (बीएस2) और चार्लीप्लेक्सिंग का उपयोग करना: 7 कदम

वीडियो: 5x4 एलईडी डिस्प्ले मैट्रिक्स बेसिक स्टैम्प 2 (बीएस2) और चार्लीप्लेक्सिंग का उपयोग करना: 7 कदम
वीडियो: 5x4 LED Matrix Charlieplexing wtih Basic Stamp 2 (bs2) 2024, नवंबर
Anonim
5x4 एलईडी डिस्प्ले मैट्रिक्स एक बेसिक स्टैम्प 2 (बीएस 2) और चार्लीप्लेक्सिंग का उपयोग करना
5x4 एलईडी डिस्प्ले मैट्रिक्स एक बेसिक स्टैम्प 2 (बीएस 2) और चार्लीप्लेक्सिंग का उपयोग करना

क्या एक बेसिक स्टैम्प 2 और कुछ अतिरिक्त एल ई डी बैठे हैं? चार्लीप्लेक्सिंग की अवधारणा के साथ क्यों न खेलें और केवल 5 पिन का उपयोग करके आउटपुट बनाएं।

इस निर्देश के लिए मैं BS2e का उपयोग करूँगा लेकिन BS2 परिवार के किसी भी सदस्य को काम करना चाहिए।

चरण 1: चार्लीप्लेक्सिंग: क्या, क्यों और कैसे?

आइए पहले इसका कारण जानें। मूल स्टाम्प 2 के साथ चार्लीप्लेक्सिंग का उपयोग क्यों करें? --- अवधारणा का प्रमाण: जानें कि चार्लीप्लेक्सिंग कैसे काम करता है और बीएस 2 के बारे में कुछ सीखें। यह बाद में तेज़ 8-पिन चिप्स का उपयोग करके मेरे लिए उपयोगी हो सकता है (उनमें से केवल 5 i/o होंगे)।---उपयोगी कारण: मूल रूप से कोई नहीं है। BS2 ध्यान देने योग्य झिलमिलाहट के बिना प्रदर्शित करने के लिए बहुत धीमा है। चार्लीप्लेक्सिंग क्या है? --- चार्लीप्लेक्सिंग एक छोटी संख्या में माइक्रोप्रोसेसर i/o पिन के साथ बड़ी संख्या में एलईडी चलाने की एक विधि है। मैंने www.instructables.com से charlieplexing के बारे में सीखा और आप यह भी कर सकते हैं:Charlieplexing LEDs- सिद्धांतकुछ माइक्रोकंट्रोलर पिन से बहुत सारे LED कैसे चलाएं। विकिपीडिया पर भी: चार्लीप्लेक्सिंग मैं ५ आई/ओ पिन के साथ २० एलईडी कैसे चला सकता हूं?--- कृपया "चार्लीप्लेक्सिंग क्या है?" के तहत तीन लिंक पढ़ें। यह मुझे पहले से कहीं ज्यादा बेहतर तरीके से समझाता है। चार्लीप्लेक्सिंग पारंपरिक मल्टीप्लेक्सिंग से अलग है जिसमें प्रत्येक पंक्ति और प्रत्येक कॉलम के लिए एक i/o पिन की आवश्यकता होती है (जो कि 5/4 डिस्प्ले के लिए कुल 9 i/o पिन होगा)।

चरण 2: हार्डवेयर और योजनाबद्ध

हार्डवेयर और योजनाबद्ध
हार्डवेयर और योजनाबद्ध

सामग्री सूची: 1x - मूल स्टाम्प 220x - एक ही प्रकार के प्रकाश उत्सर्जक डायोड (एल ई डी) (रंग और वोल्टेज ड्रॉप) 5x - प्रतिरोधक (प्रतिरोधक मूल्य के बारे में नीचे देखें) सहायक/वैकल्पिक: रीसेट स्विच 6 वी के रूप में अपने बीएस 2 मोमेंटरी पुश बटन को प्रोग्रामिंग करने की विधि -9vबिजली की आपूर्ति BS2 के आपके संस्करण के आधार पर (अपना मैनुअल पढ़ें)योजनाबद्ध:यह योजनाबद्ध यांत्रिक लेआउट को ध्यान में रखते हुए एक साथ रखा गया है। आपको बायीं तरफ लगे LED की ग्रिड दिखाई देगी, यही वह ओरिएंटेशन है जिसके लिए BS2 कोड लिखा गया है। ध्यान दें कि एलईडी की प्रत्येक जोड़ी में दूसरे के कैथोड से जुड़ा एनोड होता है। फिर वे पांच i/o पिनों में से एक से जुड़े होते हैं। प्रतिरोधी मान: आपको अपने स्वयं के प्रतिरोधी मानों की गणना करनी चाहिए। अपने एलईडी के लिए डेटाशीट की जांच करें या अपने एलईडी के वोल्टेज ड्रॉप को खोजने के लिए अपने डिजिटल मल्टीमीटर पर एलईडी सेटिंग का उपयोग करें। आइए कुछ गणना करें: आपूर्ति वोल्टेज - वोल्टेज ड्रॉप / वांछित वर्तमान = प्रतिरोधी मूल्य बीएस 2 5 वी विनियमित बिजली की आपूर्ति करता है, और 20ma स्रोत कर सकता है वर्तमान का। मेरे एल ई डी में 1.6v ड्रॉप है और 20ma.5v - 1.6v /.02amps = 155ohms पर संचालित होता हैअपने BS2 की सुरक्षा के लिए आपको गणना के साथ मिलने वाले अगले उच्च प्रतिरोधक मान का उपयोग करना चाहिए, इस मामले में मेरा मानना है कि यह 180ohms होगा। मैंने 220ohms का उपयोग किया क्योंकि मेरे विकास बोर्ड में प्रत्येक i/o पिन के लिए इसमें निर्मित अवरोधक का मान है। नोट: मेरा मानना है कि चूंकि प्रत्येक पिन पर एक अवरोधक होता है, यह प्रभावी रूप से प्रत्येक पर प्रतिरोध को दोगुना कर देता है क्योंकि एक पिन V + है और दूसरा Gnd है। यदि ऐसा है तो आपको रोकनेवाला मान को आधा कर देना चाहिए। बहुत अधिक प्रतिरोधक मान का प्रतिकूल प्रभाव एक मंदर एलईडी है। क्या कोई इसे सत्यापित कर सकता है और मुझे एक पीएम या टिप्पणी छोड़ सकता है ताकि मैं इस जानकारी को अपडेट कर सकूं? प्रोग्रामिंग: मैं एक विकास बोर्ड का उपयोग कर रहा हूं जिसमें बोर्ड पर चिप को प्रोग्राम करने के लिए डीबी 9 कनेक्टर है। मैं इस चिप का उपयोग अपने सोल्डर-कम ब्रेडबोर्ड पर भी करता हूं और इसमें एक सर्किट सीरियल प्रोग्रामिंग (आईसीएसपी) हेडर शामिल किया है। हैडर 5 पिन है, पिन 2 से 5 एक डीबी 9 सीरियल केबल पर पिन 2-5 से कनेक्ट होता है (पिन 1 अप्रयुक्त है)। कृपया ध्यान दें कि इस ICSP हेडर का उपयोग करने के लिए DB9 केबल पर पिन 6 और 7 एक दूसरे से जुड़े होने चाहिए। रीसेट: एक क्षणिक पुश रीसेट बटन वैकल्पिक है। धक्का देने पर यह पिन 22 को जमीन पर खींच लेता है।

चरण 3: ब्रेडबोर्डिंग

ब्रेडबोर्डिंग
ब्रेडबोर्डिंग
ब्रेडबोर्डिंग
ब्रेडबोर्डिंग

अब ब्रेडबोर्ड पर मैट्रिक्स बनाने का समय आ गया है। मैंने प्रत्येक लीड जोड़ी से एक पैर को एक साथ जोड़ने के लिए एक टर्मिनल स्ट्रिप का उपयोग किया और दूसरे पैरों को जोड़ने के लिए एक छोटा जम्पर तार। यह क्लोजअप फोटो में विस्तृत है और यहां गहराई से समझाया गया है: १। बड़े चित्र से मिलान करने के लिए अपने ब्रेडबोर्ड को ओरिएंट करें2. एलईडी 1 को एनोड (+) के साथ अपनी ओर और कैथोड (-) को आप से दूर रखें।3। एलईडी 1 कैथोड के कनेक्टिंग टर्मिनल स्ट्रिप में एनोड (+) के साथ एक ही ओरिएंटेशन में एलईडी 2 रखें। एलईडी 2.5 के कैथोड के साथ एलईडी 1 के एनोड को जोड़ने के लिए एक छोटे जम्पर तार का उपयोग करें। तब तक दोहराएं जब तक कि एलईडी की प्रत्येक जोड़ी बोर्ड में नहीं जुड़ जाती। मैं बीएस 2 आई/ओ पिन के लिए बस स्ट्रिप्स के रूप में ब्रेड बोर्ड की पावर बस स्ट्रिप्स का उपयोग करता हूं। क्योंकि केवल 4 बस स्ट्रिप्स हैं, मैं P4 (पांचवां I/O कनेक्शन) के लिए एक टर्मिनल स्ट्रिप का उपयोग करता हूं। इसे नीचे दी गई बड़ी तस्वीर में देखा जा सकता है।6. LED 1 कैथोड के लिए टर्मिनल स्ट्रिप को P0 बस स्ट्रिप से कनेक्ट करें। प्रत्येक जोड़ी के लिए उचित P* को प्रतिस्थापित करते हुए प्रत्येक विषम संख्या वाली LED के लिए दोहराएं (योजनाबद्ध देखें)।7। LED 2 कैथोड के लिए टर्मिनल स्ट्रिप को P1 बस स्ट्रिप से कनेक्ट करें। प्रत्येक जोड़ी के लिए उचित P* को प्रतिस्थापित करते हुए प्रत्येक विषम संख्या वाली LED के लिए दोहराएं (योजनाबद्ध देखें)।8। प्रत्येक बस स्ट्रिप को BS2 (P0-P4).9 पर उपयुक्त I/O पिन से कनेक्ट करें। यह सुनिश्चित करने के लिए सभी कनेक्शन जांचें कि वे योजनाबद्ध से मेल खाते हैं।10। सेलिब्रेट करें। नोट: क्लोज-अप में आप देखेंगे कि ऐसा नहीं लगता कि मैंने चरण 7 का पालन किया है क्योंकि दूसरे I/O पिन का कनेक्शन विषम संख्या वाले एल ई डी के एनोड पर है। याद रखें कि सम संख्या वाले एल ई डी का कैथोड विषम संख्या वाले एल ई डी के एनोड से जुड़ा होता है इसलिए कनेक्शन एक ही तरह से होता है। अगर यह नोट आपको भ्रमित करता है, तो इसे अनदेखा करें।

चरण 4: प्रोग्रामिंग मूल बातें

काम करने के लिए चार्लीप्लेक्सिंग के लिए आप एक समय में सिर्फ एक एलईडी चालू करते हैं। इसके लिए हमारे BS2 के साथ काम करने के लिए हमें दो बुनियादी चरणों की आवश्यकता है:1. OUTS कमांड का उपयोग करके पिन के लिए आउटपुट मोड सेट करें।2। BS2 को बताएं कि DIRS कमांड का उपयोग करके आउटपुट के रूप में कौन से पिन का उपयोग करना है। बस एलईडी को ब्लिंक करने की कोशिश कर रहा है। यदि आप योजनाबद्ध को देखते हैं तो आप देख सकते हैं कि P0 LED 1 के कैथोड (-) से जुड़ा है और P1 उसी LED के एनोड से जुड़ा है। इसका मतलब है कि हम P0 लो और P1 हाई ड्राइव करना चाहते हैं। यह इस तरह किया जा सकता है: "OUTS =% 11110" जो P4-P1 को उच्च और P0 को कम करता है। (% इंगित करता है कि एक बाइनरी नंबर का पालन करना है। सबसे कम बाइनरी अंक हमेशा दाईं ओर होता है। 0 = कम, 1 = उच्च) BS2 उस जानकारी को संग्रहीत करता है लेकिन उस पर तब तक कार्रवाई नहीं करेगा जब तक हम यह घोषित नहीं कर देते कि कौन से पिन आउटपुट हैं। यह चरण महत्वपूर्ण है क्योंकि एक ही समय में केवल दो पिन आउटपुट होने चाहिए। बाकी इनपुट होना चाहिए, जो उन पिनों को उच्च प्रतिबाधा मोड में सेट करता है ताकि वे किसी भी करंट को न डुबोएं। हमें P0 और P1 ड्राइव करने की आवश्यकता है ताकि हम उन्हें आउटपुट पर और बाकी को इनपुट पर सेट कर सकें: "DIRS =% 00011"। (% इंगित करता है कि एक बाइनरी नंबर का पालन करना है। सबसे कम बाइनरी अंक हमेशा दाईं ओर होता है। 0 =INPUT, 1=OUTPUT) आइए इसे एक साथ कुछ उपयोगी कोड में डालते हैं:' {$STAMP BS2e}' {$PBASIC 2.5} DO OUTS = %11110 'ड्राइव P0 कम और P1-P4 उच्च DIRS =% 00011 'सेट P0- P1 आउटपुट के रूप में और P2-P4 इनपुट के रूप में PAUSE 250 'एलईडी के लिए DIRS = 0 पर रहने के लिए रोकें' सभी पिनों को इनपुट पर सेट करें। यह LED PAUSE 250 को बंद कर देगा 'एलईडी को बंद रहने के लिए रोकेंLOOP

चरण 5: विकास चक्र

अब जब हमने यह सुनिश्चित करने के लिए एक पिन कार्य समय देखा है कि वे सभी काम करते हैं। आप देखेंगे कि प्रत्येक पिन के बिन जलने के बाद मैं सभी पिनों को वापस इनपुट में बदलने के लिए "DIRS = 0" का उपयोग करता हूं। यदि आप आउटपुट पिन को बंद किए बिना OUTS को बदलते हैं, तो आपको कुछ "घोस्टिंग" मिल सकते हैं, जहां एक एलईडी जिसे जलाया नहीं जाना चाहिए, वह चक्रों के बीच झपका सकता है। यदि आप इस कोड की शुरुआत में W1 चर को "W1 = 1" में बदलते हैं। प्रत्येक एलईडी ब्लिंक के बीच केवल 1 मिलीसेकंड का ठहराव होगा। यह दृष्टि (पीओवी) प्रभाव की दृढ़ता का कारण होगा जिससे ऐसा लगता है कि सभी एल ई डी जलाए गए हैं। इसका एल ई डी मंद बनाने का प्रभाव होता है लेकिन इसका सार है कि हम इस मैट्रिक्स पर वर्ण कैसे प्रदर्शित करेंगे। 20led_Interpreter_Proto.bse मैंने इस बिंदु पर निर्णय लिया कि मुझे प्रकाश के लिए आवश्यक पागल संयोजनों को चालू करने के लिए कुछ प्रकार का दुभाषिया कोड विकसित करना होगा एक प्रयोग करने योग्य पैटर्न में एल ई डी। यह फ़ाइल मेरा पहला प्रयास है। आप देखेंगे कि फ़ाइल के निचले भाग में वर्ण 5 अंकों की बाइनरी की चार पंक्तियों में संग्रहीत हैं। प्रत्येक पंक्ति को पढ़ा जाता है, पार्स किया जाता है, और एक सबरूटीन को हर बार एक एलईडी को जलाने की आवश्यकता होती है। यह कोड काम करता है, अंकों के माध्यम से साइकिल चलाना 1-0। यदि आप इसे चलाने का प्रयास करते हैं तो ध्यान दें कि यह बहुत धीमी ताज़ा दर से ग्रस्त है जिससे पात्रों को पहचानने के लिए लगभग बहुत धीमी गति से फ्लैश किया जाता है। यह कोड कई कारणों से खराब है। सबसे पहले, बाइनरी के पांच अंक EEPROM में उतना ही स्थान लेते हैं, जितना कि बाइनरी के 8 अंकों का होता है, क्योंकि सभी जानकारी चार बिट्स के समूहों में संग्रहीत होती है। दूसरे, सेलेक्ट केस यह तय करने के लिए इस्तेमाल किया जाता है कि किस पिन को जलाया जाना चाहिए, इसके लिए 20 मामलों की आवश्यकता होती है। BS2 प्रति सेलेक्ट ऑपरेशन के लिए 16 मामलों तक सीमित है। इसका मतलब है कि मुझे IF-THEN-ELSE स्टेटमेंट के साथ उस सीमा को हैक करना था। एक बेहतर तरीका होना चाहिए। कुछ घंटों के सिर खुजलाने के बाद मुझे इसका पता चला।

चरण 6: एक बेहतर दुभाषिया

हमारे मैट्रिक्स की प्रत्येक पंक्ति 4 एल ई डी से बनी है, प्रत्येक चालू या बंद हो सकती है। BS2 अपने EEPROM में सूचनाओं को चार बिट्स के समूहों में संग्रहीत करता है। उस सहसंबंध को हमारे लिए चीजों को बहुत आसान बनाना चाहिए। इस तथ्य के अलावा, चार बिट दशमलव संख्या 0-15 के लिए कुल 16 संभावनाओं के अनुरूप हैं। यह केस को बहुत आसान या आसान बनाता है। यहां EEPROM में संग्रहीत अंक 7 है: '७% ११११,% १००१,% ००१०,% ०१००,% ०१००, प्रत्येक पंक्ति में ०-१५ के बराबर दशमलव होता है इसलिए हम एक पढ़ते हैं मेमोरी से पंक्तिबद्ध करें और इसे सीधे सेलेक्ट केस फ़ंक्शन में फीड करें। इसका मतलब यह है कि मानव पठनीय बाइनरी मैट्रिक्स प्रत्येक चरित्र बनाने के लिए प्रयोग किया जाता है (1 = नेतृत्व पर, 0 = बंद) दुभाषिया के लिए कुंजी है। 5 पंक्तियों में से प्रत्येक के लिए एक ही चयन केस का उपयोग करने के लिए मैंने एक और चयन केस का उपयोग किया DIRS और OUTS को चर के रूप में सेट करने के लिए। मैंने पहली बार चरित्र की पांच पंक्तियों में से प्रत्येक में ROW1-ROW5 चर के लिए पढ़ा। मुख्य कार्यक्रम तब चरित्र को प्रदर्शित करने के लिए सबरूटीन को कॉल करता है। यह सबरूटीन पहली पंक्ति लेता है और चार संभावित आउट संयोजनों को चर outp1-outp4 और दो संभावित DIRS संयोजनों को direc1 और direc2 को असाइन करता है। एल ई डी फ्लैश किए जाते हैं, पंक्ति काउंटर बढ़ाया जाता है, और अन्य चार पंक्तियों में से प्रत्येक के लिए एक ही प्रक्रिया चलती है। यह पहले दुभाषिया कार्यक्रम की तुलना में बहुत तेज है। कहा जा रहा है, अभी भी ध्यान देने योग्य झिलमिलाहट है। वीडियो पर एक नज़र डालें, कैमरा झिलमिलाहट को और भी बदतर बना देता है लेकिन आपको इसका अंदाजा हो जाता है। इस अवधारणा को बहुत तेज़ चिप में पोर्ट करना, जैसे कि PicMicro या AVR चिप, इन वर्णों को ध्यान देने योग्य झिलमिलाहट के बिना प्रदर्शित करने में सक्षम होगा।

चरण 7: यहाँ से कहाँ जाना है

मेरे पास सर्किट बोर्ड बनाने के लिए सीएनसी मिल या नक़्क़ाशी की आपूर्ति नहीं है इसलिए मैं इस परियोजना को तार-तार नहीं करूँगा। अगर आपके पास मिल है और यहां से आगे बढ़ने के लिए सहयोग करना चाहते हैं तो मुझे मैसेज करें। मुझे इस परियोजना के लिए तैयार उत्पाद के बारे में कुछ दिखाने के लिए सामग्री और शिपिंग के लिए भुगतान करने में खुशी होगी।

अन्य संभावनाएं: 1. इसे किसी अन्य चिप पर पोर्ट करें। इस मैट्रिक्स डिज़ाइन का उपयोग किसी भी चिप के साथ किया जा सकता है जिसमें 5 i/o पिन उपलब्ध हैं जो त्रि-राज्य सक्षम हैं (पिन जो उच्च, निम्न, या इनपुट (उच्च प्रतिबाधा) हो सकते हैं)। 2. तेज चिप (शायद AVR या picMicro) का उपयोग करके आप पैमाने को बढ़ा सकते हैं। एक 20pin चिप के साथ आप एक 8x22 डिस्प्ले चार्लीप्लेक्स के लिए 14 पिन का उपयोग कर सकते हैं और कंप्यूटर या किसी अन्य नियंत्रक से सीरियल कमांड प्राप्त करने के लिए शेष पिन का उपयोग कर सकते हैं। तीन और 20-पिन चिप्स का उपयोग करें और आपके पास एक स्क्रॉलिंग डिस्प्ले हो सकता है जो कुल 11 वर्णों के लिए 8x88 है (पाठ्यक्रम के प्रत्येक वर्ण की चौड़ाई के आधार पर)। गुड लक मजे करो!

सिफारिश की: