Arduino से बड़ी संख्या में (~ 100) डिजिटल आउटपुट सिग्नल प्राप्त करना


19

मैं एक Arduino का उपयोग करके लगभग 100 स्वतंत्र एल ई डी को नियंत्रित करने में सक्षम होना चाहूंगा। समस्या यह है कि Arduino में लगभग पर्याप्त पिन नहीं हैं जिन्हें इसके लिए कॉन्फ़िगर किया जा सकता है। इस समस्या को हल करने का एक तरीका क्या होगा? क्या कोई ऐसी चिप है जो Arduino से अधिक जटिल सिग्नल को डिमॉक्स कर सकती है जो तब एल ई डी को नियंत्रित कर सकती है? या कोई और उपाय है?


आपकी ताज़ा दर आवश्यकताएँ क्या हैं? प्रति एलईडी कितना वर्तमान ड्रा?
vicatcu

लगभग 1 सेकंड की ताज़ा दर। एलईडी प्रति 8ma के आसपास सोच। बाहरी एडाप्टर द्वारा संचालित किया जाएगा - न कि Arduino
एलेक्सिस के

कई demultiplexing समाधान हैं। लेकिन अपने कार्य की जटिलता पर विचार करें; एल्गोरिथ्म आप Arduino के mcu की बाधाओं के भीतर फिट डेटा उत्पन्न करने की आवश्यकता होगी? कुछ कार्य, अन्य ऐसे बनाए गए डिज़ाइनों के माध्यम से नहीं होंगे या केवल फिट होंगे जो बनाने के लिए काफी संतोषजनक हो सकते हैं, लेकिन कोड रखरखाव को चुनौतीपूर्ण बना सकते हैं।
क्रिस स्ट्रैटन

जवाबों:


22

सबसे पहले, एक Arduino सीधे 100 एल ई डी ड्राइव नहीं कर सकता है, क्योंकि संयुक्त स्रोत कि डिवाइस को स्रोत या सिंक दोनों माइक्रोकंट्रोलर से अधिक होगा, और Arduino बोर्ड पर वोल्टेज नियामक। एक कस्टम Arduino शील्ड अपने स्वयं के बिजली स्रोत और विनियमन के साथ बिल फिट हो सकता है, हालांकि।

कई आसान दृष्टिकोण हैं, सबसे सरल दृष्टिकोण नीचे विस्तृत है:


  • TLC5940 कैस्केड कॉन्फ़िगरेशन में निरंतर-वर्तमान एलईडी ड्राइवर:

TLC5940, IC के प्रति 16 एल ई डी ड्राइव करता है, जिसे SPI इंटरफ़ेस के मामूली संस्करण के माध्यम से धारावाहिक इनपुट द्वारा नियंत्रित किया जाता है। 40 TLC5940 तक के उपकरणों को कैस्केड किया जा सकता है, लेकिन उनमें से 7 प्रश्न में 100 एलईडी को चलाने के लिए पर्याप्त होगा।

TLC5940 के लिए कम से कम एक जोड़ी Arduino लाइब्रेरी ( 1 , 2 ) हैं

Arduino से भेजने के लिए सुझाई गई घड़ी की दरें और इसी ताज़ा दर:

  • इस धागे में कोड का उपयोग करके 1 मेगाहर्ट्ज GSClk ।
  • 330 KHz SCLK (सीरियल डेटा क्लॉक)
  • जिससे, 244 हर्ट्ज पर डेटा रिफ्रेश रेट एलईडी

यह डेटाशीट के फ़ार्मुलों पर आधारित है:

f (GSCLK) = 4096 * f (अपडेट)
f (SCLK) = 193 * f (अपडेट) * n
कहाँ:
f (GSCLK): GSCLK
f (SCLK) के लिए न्यूनतम आवृत्ति की आवश्यकता: SCLK और SIN
f ( अद्यतन): पूरे cascading system
n की अद्यतन दर n: TLC5940 उपकरणों की संख्या cascaded

TLC5940 एक निरंतर चालू सिंक है , इसलिए एलईड के एनोड को वोल्टेज से जोड़ा जाएगा जो कि एलईडी Vf से अधिक वोल्ट का एक जोड़ा होगा, या 7 वोल्ट के आसपास, जो भी कम हो, स्वतंत्र रूप से Arduino के पावर पिंस से संचालित होता है। इस वोल्टेज स्रोत को 100 * (जो भी वर्तमान में आप एल ई डी चलाते हैं) की आपूर्ति करने में सक्षम होना चाहिए, लेकिन एक अनियमित स्रोत हो सकता है।

एलईडी कैथोड संबंधित TLC5940 आईसी की ड्राइव लाइनों पर जाते हैं।

TLC5940 खुद डेटा लिखने के दौरान Icc = 60 mA प्रति डिवाइस तक की खपत करता है, इसलिए Arduino से उनमें से 7 को काम नहीं करना होगा, इसके लिए एक स्वतंत्र 3.3 से 5 वोल्ट विनियमित वीसीसी की आवश्यकता होगी, जो आदर्श रूप में एक ही मूल्य है Arduino के Vcc का उपयोग किया जा रहा है, और जमीन के निशान को Arduino के मैदान में वापस कनेक्ट करने की आवश्यकता है, निश्चित रूप से। Arduino की तुलना में एक अलग वोल्टेज पर TLC भागों का संचालन करना सीरियल सिग्नल के स्तर के रूपांतरण की आवश्यकता होगी, इसलिए सबसे अच्छा बचा गया।

कई YouTube वीडियो कैस्केड TLC5940 IC के साथ Arduino का उपयोग करके प्रदर्शित करते हैं।


हालांकि ये आईसी 7-सेगमेंट के संख्यात्मक एलईडी डिस्प्ले को चलाने के लिए डिज़ाइन किए गए थे, वे व्यक्तिगत एलईडी नियंत्रण प्रदान करते हैं, इसलिए आईसी के लिए 64 एलईडी तक का उपयोग किया जा सकता है। उनमें से दो को आवश्यक 100 एल ई डी ड्राइव करने के लिए कैस्केड किया जा सकता है। डेटाशीट का पृष्ठ 13 एक कैस्केड कॉन्फ़िगरेशन दिखाता है।

एल ई डी को इस डिजाइन के लिए एक कैथोड लाइन (आम कैथोड) को साझा करने वाले प्रत्येक 8 एलईडी तक के समूहों के रूप में विद्युत रूप से जुड़ा होना होगा।

MAX7219 / 7221 मल्टीप्लेक्सिंग एलईडी ड्राइवर हैं, इसलिए एलईडी की अधिकतम चमक पिछले अनुभाग की तरह एक स्थिर एलईडी ड्राइवर के लिए कम होगी।

यहां MAX7219 का उपयोग करके एक उपयोगी एलईडी मैट्रिक्स लाइब्रेरी और गाइड है।

कुछ प्रासंगिक YouTube वीडियो ( 1 , 2 ) रुचि के हो सकते हैं।


फिर से, इन आईसी को 7-सेगमेंट के संख्यात्मक एलईडी डिस्प्ले ड्राइविंग के लिए डिज़ाइन किया गया था, वे व्यक्तिगत एलईडी नियंत्रण प्रदान करते हैं, इसलिए प्रति आईसी 40/64 एलईडी तक उपयोग किया जा सकता है। उनमें से दो / तीन को 100 एलईडी की आवश्यकता के लिए ड्राइव करने के लिए एक Arduino SPI बस पर झुका जा सकता है।

डिज़ाइन नोट्स पिछले अनुभाग के समान ही रहते हैं। इसके अलावा, व्यक्तिगत एलईडी अधिकतम चमक MAX7219 के सीधे मल्टीप्लेक्स डिजाइन की तुलना में कम होगी।

कुछ YouTube वीडियो हैं जो रुचि के हो सकते हैं।


  • असतत घटक डिजाइन, शिफ्ट रजिस्टर, IO विस्तारक, व्यक्तिगत नियंत्रकों के साथ cuttable एलईडी स्ट्रिप्स, और कई और अधिक ...

ये सभी दृष्टिकोण हैं जिनका उपयोग सरलता और सफलता के विभिन्न स्तरों के साथ किया गया है। वे ऊपर दिए गए 3 दृष्टिकोणों की तुलना में अधिक जटिल कार्यान्वयन हैं, इसलिए आगे कोई विस्तृत विवरण नहीं है। यदि आवश्यक हो तो वेब पर खोज करने से इन दृष्टिकोणों के लिए उपयोगी मार्गदर्शिकाएँ मिलेंगी।

इस तरह के डिजाइन के साथ एक महत्वपूर्ण अड़चन हर एलईडी या एलईडी स्ट्रिंग पर वर्तमान नियंत्रण प्रतिरोधों की आवश्यकता है। विशेष रूप से एलईडी ड्राइविंग के लिए डिज़ाइन किए गए उपकरणों को आमतौर पर इसकी आवश्यकता नहीं होती है।

मेरे पास विकल्पों के इस अंतिम सेट के साथ व्यक्तिगत अनुभव नहीं है, इसलिए यह बहुत मदद नहीं कर सकता है।


फुटनोट: इस प्रश्न का उत्तर देने के बाद, मुझे एक पुराना प्रश्न मिला , जिसमें मेरे अंतिम खंड में कई दृष्टिकोणों के विवरण और चर्चा के उत्तर हैं। वह धागा दिलचस्प बनाता है "आगे के होमवर्क के रूप में पढ़ना"।



1
74HC595 जैसी सस्ती पारी रजिस्टर?
थॉमस ई

मैक्स 5951 "व्यक्तिगत एलईडी नियंत्रण" कैसे प्रदान करता है - यह केवल 7-खंड नियंत्रण (8 अंकों के लिए 8 पिन) लगता है, नहीं?
थॉमस ई

हाँ, वे भी। एल ई डी की रक्षा के लिए बहुत सारे प्रतिरोधों की आवश्यकता होती है, और फिर उद्देश्य-निर्मित आईसी की तुलना में वायरिंग कॉम्प्लेक्स।
19

@ThomasE नंबर: "MAX6950 पांच 7-खंड अंकों या 40 असतत एल ई डी के लिए ड्राइव करता है। मैक्स 6951 आठ 7-सेगमेंट अंकों या 64 असतत एलईडी तक ड्राइव करता है।" जैसा कि मेरे उत्तर के MAX7219 अनुभाग में वर्णित है, बस एक ही एक कैथोड लाइन पर 8 एल ई डी के समूहों को हुक करता है।
अनिंदो घोष

2
@starblue ओवरकिल v / s आसानी से DIY कार्यान्वयन : एक-बंद या शौक के प्रयास के लिए, TLC5940 (DigiKey में एकल मात्रा में $ 3.78) सबसे सरल समाधान नहीं रहेगा , क्योंकि Arduino पुस्तकालयों और Arduino समुदाय के भीतर सक्रिय समर्थन के कारण? जब तक कि अन्य समान रूप से अच्छी तरह से समर्थित भागों जैसे कि आपने बताया, कि अरुडिनो मंचों से प्यार है।
अनंदो घोष
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.