विषयसूची:

4 च डीएमएक्स डिमर: 6 कदम
4 च डीएमएक्स डिमर: 6 कदम

वीडियो: 4 च डीएमएक्स डिमर: 6 कदम

वीडियो: 4 च डीएमएक्स डिमर: 6 कदम
वीडियो: Dmx 512 Controller Programming In Hindi | Creating Scene #Ep-2 2024, नवंबर
Anonim
4 च डीएमएक्स डिमर
4 च डीएमएक्स डिमर

अवधारणा पोर्टेबल मंदर को डिजाइन और बनाना है।

आवश्यकताएं:

  • DMX512 नियंत्रणीय
  • 4 चैनल
  • पोर्टेबल
  • प्रयोग करने में आसान

मैंने इस विचार को डब्ल्यूएसयू में अपने प्रोफेसर को प्रस्तावित किया क्योंकि मैं थिएटर और कंप्यूटर के लिए अपने जुनून को जोड़ना चाहता था। इस परियोजना ने थिएटर विभाग में मेरे वरिष्ठ प्रोजेक्ट की तरह काम किया। यदि आपके पास कोई टिप्पणी या प्रश्न है, तो मुझे मदद करना अच्छा लगेगा।

भविष्य के विकास में अधिक चैनल, 5 पिन डीएमएक्स कनेक्टर, डीएमएक्स पासथ्रू, चैनल बदलने के लिए 8 डुबकी स्विच, मुद्रित सर्किट बोर्ड शामिल हो सकते हैं।

मैंने इस प्रोजेक्ट को https://danfredell.com/df/Projects/Entries/2013/1/6_DMX_Dimmer.html से माइग्रेट किया है क्योंकि यह अभी भी लोकप्रिय है, मुझे लगता है। इसके अलावा, मैंने अपनी iWeb बीज फ़ाइल खो दी है, इसलिए मैं इसे अब और आसानी से अपडेट नहीं कर सकता। यह अच्छा होगा कि लोगों को परियोजना पर अपने प्रश्न एक दूसरे के साथ साझा करने की अनुमति दें।

चरण 1: हार्डवेयर इकट्ठा करना

हार्डवेयर इकट्ठा करना
हार्डवेयर इकट्ठा करना

प्रयुक्त हार्डवेयर: इसका अधिकांश भाग तायदा इलेक्ट्रॉनिक्स से मंगवाया गया था। छोटे और समझने में आसान चयन के कारण मैं उन्हें DigiKey से बेहतर पसंद करता हूं।

  1. ATMEGA328, माइक्रो-नियंत्रक
  2. MOC3020, TRIAC ऑप्टोकॉप्लर। जीरोक्रॉस नहीं।
  3. MAX458 या SN75176BP, DMX रिसीवर
  4. आईएसपी८१४, एसी ऑप्टोकॉप्लर
  5. ७८०५, ५वी नियामक
  6. BTA24-600, 600V 25A TRIAC
  7. 20 मेगाहर्ट्ज क्रिस्टल
  8. 9वी बिजली की आपूर्ति

रास्ते में सीखी गई कुछ बाधाएं और सबक

  • यदि आप एक रजिस्टर विशेषज्ञ नहीं हैं, तो ATMEGA328P. के साथ बने रहें
  • गलत ऑप्टोकॉप्लर्स। आपको जीरो क्रॉस नहीं चाहिए
  • उच्च चैनल अस्थिर थे। 16MHz से 20MHz पर स्विच करने से यह समस्या हल हो गई
  • DMX स्थिति प्रकाश प्राप्त करने में असमर्थ क्योंकि इंटरप्ट कॉल बहुत तेज़ होनी चाहिए
  • डीसी पावर बेहद स्थिर होनी चाहिए, किसी भी लहर के कारण डीएमएक्स सिग्नल बहुत शोर हो जाएगा

TRIAC डिजाइन MRedmon से आया है, धन्यवाद।

चरण 2: सर्किट डिजाइन

सर्किट डिज़ाइन
सर्किट डिज़ाइन

मैंने अपने सर्किट को डिजाइन करने के लिए मैक पर फ्रिटिंग 7.7 का इस्तेमाल किया।

शीर्ष पर MAX485 का उपयोग DMX सिग्नल को किसी ऐसी चीज़ में बदलने के लिए किया जाता है जिसे Arduino पढ़ सकता है।

बाईं ओर 4N35 का उपयोग AC सिग्नल के शून्य क्रॉस का पता लगाने के लिए किया जाता है, इसलिए Arduino को पता चल जाएगा कि साइन वेव आउटपुट को किस समय मंद करना है। सॉफ़्टवेयर अनुभाग में हार्डवेयर और सॉफ़्टवेयर कैसे इंटरैक्ट करते हैं, इसके बारे में अधिक जानकारी।

मुझे यह प्रश्न मिल गया है कि क्या यह परियोजना यूरोप में 230V और 50Hz के साथ काम करेगी? मैं यूरोप में नहीं रहता, न ही मैं इस डिज़ाइन का परीक्षण करने में सक्षम होने के लिए अक्सर वहां जाता हूं। यह काम करना चाहिए, आपको अलग-अलग आवृत्ति समय विलंब के लिए कोड की चमक समय रेखा को संशोधित करना होगा।

चरण 3: कोवरी का सर्किट डिजाइन

कोवरी का सर्किट डिजाइन
कोवरी का सर्किट डिजाइन
कोवरी का सर्किट डिजाइन
कोवरी का सर्किट डिजाइन

अपनी वेबसाइट बनाने की प्रक्रिया के माध्यम से मैं कुछ ईमेल वार्तालाप करने में सक्षम था। एक कोवरी आंद्रेई के साथ था जिन्होंने इस परियोजना के आधार पर एक सर्किट डिजाइन किया था और अपने डिजाइन को साझा करना चाहते थे। मैं कोई सर्किट बोर्ड डिज़ाइनर नहीं हूँ, लेकिन यह एक ईगल प्रोजेक्ट है। अगर आप इसका इस्तेमाल करते हैं तो मुझे बताएं कि यह आपके लिए कैसे काम करता है।

चरण 4: जियाकोमो का सर्किट डिजाइन

जियाकोमो का सर्किट डिजाइन
जियाकोमो का सर्किट डिजाइन

समय-समय पर लोग मुझे इस निर्देश के साथ किए गए रोमांचक अनुकूलन के साथ संदेश देंगे और मुझे लगा कि मुझे उन्हें आप सभी के साथ साझा करना चाहिए।

जियाकोमो ने सर्किट को संशोधित किया ताकि एक केंद्र टैप किए गए ट्रांसफार्मर की आवश्यकता न हो। पीसीबी एक तरफा है और जो घर पर दो तरफा नहीं बना सकता (थोड़ा मुश्किल) के लिए एक अधिक किफायती समाधान हो सकता है।

चरण 5: सॉफ्टवेयर

सॉफ्टवेयर
सॉफ्टवेयर

मैं व्यापार से एक सॉफ्टवेयर इंजीनियर हूं इसलिए यह हिस्सा सबसे विस्तृत है।

सारांश: जब Arduino पहली बार बूट करता है तो सेटअप () विधि को कहा जाता है। वहां मैंने बाद में उपयोग किए जाने वाले कुछ चर और आउटपुट स्थान स्थापित किए। जीरोक्रॉसइंटरप्ट () को हर बार एसी को पॉजिटिव से नेगेटिव वोल्टेज में पार करने पर कॉल / रन किया जाता है। यह हर चैनल के लिए ज़ीरोक्रॉस फ़्लैग सेट करेगा और टाइमर शुरू करेगा। लूप () विधि को लगातार हमेशा के लिए कहा जाता है। आउटपुट चालू करने के लिए, TRIAC को केवल 10 माइक्रोसेकंड के लिए चालू करना होगा। यदि यह ट्रिगर करने का समय है तो टीआरआईएसी और ज़ीरोक्रॉस हुआ है, आउटपुट एसी चरण के अंत तक चालू रहेगा।

ऑनलाइन कुछ उदाहरण थे जिनका उपयोग मैं इस परियोजना को शुरू करने के लिए करता था। मुख्य चीज जो मुझे नहीं मिली, वह थी कई TRIAC आउटपुट। अन्य लोगों ने आउटपुट को PWM करने के लिए देरी फ़ंक्शन का उपयोग किया, लेकिन यह मेरे मामले में काम नहीं करेगा क्योंकि ATMEGA को हर समय DMX को सुनना पड़ता है। मैंने ज़ीरो-क्रॉस के बाद टीआरआईएसी को इतने एमएस पर स्पंदित करके हल किया। TRIAC को शून्य-क्रॉस के करीब स्पंदित करने से पाप तरंग का अधिक उत्पादन होता है।

यहाँ आधा 120VAC पाप तरंग, एक आस्टसीलस्कप पर कैसा दिखता है।

ISP814 इंटरप्ट 1 से जुड़ा है। इसलिए जब यह संकेत प्राप्त करता है कि एसी सकारात्मक से नकारात्मक या इसके विपरीत में संक्रमण करता है तो यह प्रत्येक चैनल के लिए ज़ीरोक्रॉस को सत्य पर सेट करता है और स्टॉपवॉच शुरू करता है।

लूप () विधि में, यह प्रत्येक चैनल की जांच करता है कि क्या ज़ीरोक्रॉस सत्य है और इसके सक्रिय होने का समय बीत चुका है, यह टीआरआईएसी को 10 माइक्रोसेकंड के लिए पल्स करेगा। यह TRIAC को चालू करने के लिए पर्याप्त है। एक बार TRIAC चालू हो जाने पर यह ज़ीरोक्रॉस तक चालू रहेगा। जब डीएमएक्स लगभग 3% था तो प्रकाश झिलमिला जाएगा, इसलिए मैंने इसे रोकने के लिए वहां ट्रंकिंग जोड़ा। यह Arduino के बहुत धीमा होने का कारण था, और नाड़ी कुछ समय लहर के अंतिम 4% के बजाय अगली पाप लहर को ट्रिगर करेगी।

इसके अलावा लूप () में मैंने स्थिति एल ई डी का पीडब्लूएम मान निर्धारित किया है। ये LED Arduino द्वारा उत्पन्न आंतरिक PWM का उपयोग कर सकते हैं क्योंकि हमें AC के जीरोक्रॉस के बारे में चिंता करने की आवश्यकता नहीं है। एक बार जब PWM सेट हो जाता है तो Arduino उस चमक पर तब तक जारी रहेगा जब तक कि अन्य बुद्धिमान न बताया जाए।

जैसा कि पिन 2 पर DMX इंटरप्ट का उपयोग करने और 20MHz पर चलाने के लिए शीर्ष टिप्पणियों में उल्लेख किया गया है, आपको कुछ Arduino एप्लिकेशन फ़ाइलों को संपादित करना होगा। HardwareSerial.cpp में कोड का एक हिस्सा हटा दिया जाना चाहिए, यह हमें अपनी खुद की इंटरप्ट कॉल लिखने की अनुमति देता है। यह आईएसआर विधि डीएमएक्स इंटरप्ट को संभालने के लिए कोड के निचले भाग में है। यदि आप एक Arduino का उपयोग ISP प्रोग्रामर के रूप में करने जा रहे हैं, तो अपने परिवर्तनों को HardwareSerial.cpp पर वापस लाना सुनिश्चित करें अन्यथा ब्रेड बोर्ड पर ATMEGA328 पहुंच योग्य नहीं होगा। दूसरा परिवर्तन आसान है। Boards.txt फ़ाइल को नई 20MHz क्लॉक स्पीड में बदलना होगा।

चमक [ch] = नक्शा (DmxRxField [ch], ०, २६५, ८०००, ०);

चमक ८००० तक मैप करता है क्योंकि यह ६० हर्ट्ज पर १/२ एसी साइन वेव के माइक्रोसेकंड की मात्रा है। तो फुल ब्राइटनेस 256 DMX पर प्रोग्राम 1/2 एसी साइन वेव ऑन 8000us के लिए छोड़ देगा। मैं अनुमान और जांच के माध्यम से 8000 के साथ आया था। 1000000us/60hz/2 = 8333 का गणित करना ताकि यह एक बेहतर संख्या हो सकती है, लेकिन अतिरिक्त 333us सिर पर होने से TRIAC को खोलने की अनुमति मिलती है और कार्यक्रम में कोई भी घबराहट शायद एक अच्छा विचार है।

Arduino 1.5.3 पर कि उन्होंने HardwareSerial.cpp फ़ाइल का स्थान स्थानांतरित कर दिया। यह अब /Applications/Arduino.app/Contents/Java/hardware/arduino/avr/cores/arduino/HardwareSerial0.cpp है यदि लाइन 39 से शुरू होने वाला ब्लॉक: #if परिभाषित (USART_RX_vect)

अन्यथा आप इस त्रुटि के साथ समाप्त होंगे: core/core.a(HardwareSerial0.cpp.o): फ़ंक्शन में `_vector_18':

चरण 6: इसे पैकेजिंग करें

पैकेजिंग इट अप
पैकेजिंग इट अप
पैकेजिंग इट अप
पैकेजिंग इट अप
पैकेजिंग इट अप
पैकेजिंग इट अप

मैंने मेनार्ड्स में उनके विद्युत खंड में ग्रे प्रोजेक्ट बॉक्स उठाया। मैंने बिजली के प्लग के छेदों को काटने के लिए एक घूमने वाली आरी का इस्तेमाल किया। मामले को फांसी के उद्देश्यों के लिए शीर्ष से जुड़ा एक थिएटर सी-क्लैंप मिला। हर इनपुट और आउटपुट के लिए स्टेटस लाइट्स किसी समस्या का निदान करने में मदद करती हैं। डिवाइस पर विभिन्न पोर्ट को समझाने के लिए एक लेबल मेकर का उपयोग किया गया था। प्रत्येक प्लग के आगे की संख्या DMX चैनल संख्या का प्रतिनिधित्व करती है। मैंने कुछ गर्म गोंद के साथ सर्किट बोर्ड और ट्रांसफार्मर को चिपका दिया। एलईडी धारकों के साथ एलईडी जगह में फंस गए हैं।

सिफारिश की: