पता करने योग्य एलईडी पट्टी WS2812B को Arduino से कैसे कनेक्ट करें
एलईडी पर आधारित प्रकाश प्रौद्योगिकी का विकास तेजी से जारी है। कल ही, नियंत्रक-नियंत्रित आरजीबी रिबन, जिनकी चमक और रंग को रिमोट कंट्रोल का उपयोग करके समायोजित किया जा सकता है, एक चमत्कार की तरह लग रहा था। आज बाजार में और भी अधिक सुविधाओं वाले लैंप दिखाई दिए हैं।
WS2812B पर आधारित एलईडी पट्टी
पता योग्य एलईडी पट्टी और मानक एक के बीच का अंतर आरजीबी बात है प्रत्येक तत्व की चमक और रंग अनुपात अलग से समायोजित किया जाता है. यह आपको प्रकाश प्रभाव प्राप्त करने की अनुमति देता है जो मूल रूप से अन्य प्रकार के प्रकाश उपकरणों के लिए दुर्गम हैं। पता करने योग्य एलईडी पट्टी की चमक को एक ज्ञात तरीके से नियंत्रित किया जाता है - पल्स-चौड़ाई मॉडुलन का उपयोग करके। सिस्टम की एक विशेषता प्रत्येक एलईडी को अपने पीडब्लूएम नियंत्रक से लैस करना है। WS2812B चिप एक त्रि-रंग प्रकाश उत्सर्जक डायोड और एक एकल पैकेज में संयुक्त एक नियंत्रण सर्किट है।

तत्वों को समानांतर में एक पावर टेप में जोड़ा जाता है, और एक सीरियल बस के माध्यम से नियंत्रित किया जाता है - पहले तत्व का आउटपुट दूसरे के नियंत्रण इनपुट से जुड़ा होता है, आदि। ज्यादातर मामलों में, सीरियल बसें दो लाइनों पर बनाई जाती हैं, जिनमें से एक स्ट्रोब (घड़ी की दालों) को प्रसारित करती है, और दूसरी - डेटा।

WS2812B चिप की नियंत्रण बस में एक पंक्ति होती है - इसके माध्यम से डेटा प्रसारित किया जाता है। डेटा को निरंतर आवृत्ति के दालों के रूप में एन्कोड किया गया है, लेकिन विभिन्न कर्तव्य चक्रों के साथ। एक पल्स - एक बिट. प्रत्येक बिट की अवधि 1.25 µs है, शून्य बिट में 0.4 µs की अवधि के साथ एक उच्च स्तर और 0.85 µs का निम्न स्तर होता है। इकाई 0.8 µ के लिए एक उच्च स्तर और 0.45 µ के लिए निम्न स्तर की तरह दिखती है। प्रत्येक एलईडी को 24-बिट (3-बाइट) बर्स्ट भेजा जाता है, इसके बाद 50 μs के लिए निम्न-स्तरीय विराम दिया जाता है। इसका मतलब है कि अगले एलईडी के लिए डेटा प्रसारित किया जाएगा, और इसी तरह श्रृंखला के सभी तत्वों के लिए। डेटा स्थानांतरण 100 µ के ठहराव के साथ समाप्त होता है । यह इंगित करता है कि टेप प्रोग्रामिंग चक्र पूरा हो गया है और डेटा पैकेट का अगला सेट भेजा जा सकता है।

ऐसा प्रोटोकॉल डेटा ट्रांसमिशन के लिए एक लाइन के साथ प्राप्त करना संभव बनाता है, लेकिन समय अंतराल को बनाए रखने में सटीकता की आवश्यकता होती है। विसंगति की अनुमति 150 एनएस से अधिक नहीं है। इसके अलावा, ऐसी बस की शोर प्रतिरोधक क्षमता बहुत कम होती है। पर्याप्त आयाम के किसी भी हस्तक्षेप को नियंत्रक द्वारा डेटा के रूप में माना जा सकता है। यह नियंत्रण सर्किट से कंडक्टरों की लंबाई पर प्रतिबंध लगाता है। दूसरी ओर, यह संभव बनाता है रिबन स्वास्थ्य जांच अतिरिक्त उपकरणों के बिना।यदि आप दीपक को शक्ति देते हैं और अपनी उंगली से नियंत्रण बस के संपर्क पैड को स्पर्श करते हैं, तो कुछ एलईडी बेतरतीब ढंग से जल सकती हैं और बाहर निकल सकती हैं।
WS2812B तत्वों के निर्दिष्टीकरण
पता टेप के आधार पर प्रकाश व्यवस्था बनाने के लिए, आपको प्रकाश उत्सर्जक तत्वों के महत्वपूर्ण मापदंडों को जानना होगा।
| एलईडी आयाम | 5x5 मिमी |
| पीडब्लूएम मॉडुलन आवृत्ति | 400 हर्ट्ज |
| अधिकतम चमक पर वर्तमान खपत | प्रति सेल 60 एमए |
| वोल्टेज आपूर्ति | 5 वोल्ट |
Arduino और WS2812B
दुनिया में लोकप्रिय Arduino प्लेटफॉर्म आपको एड्रेस टेप के प्रबंधन के लिए स्केच (प्रोग्राम) बनाने की अनुमति देता है। सिस्टम की क्षमताएं काफी व्यापक हैं, लेकिन अगर वे अब किसी स्तर पर पर्याप्त नहीं हैं, तो अधिग्रहित कौशल दर्द रहित रूप से C ++ या यहां तक कि असेंबलर पर स्विच करने के लिए पर्याप्त होंगे। हालाँकि प्रारंभिक ज्ञान Arduino पर प्राप्त करना आसान है।
WS2812B रिबन को Arduino Uno (नैनो) से जोड़ना
पहले चरण में, साधारण Arduino Uno या Arduino Nano बोर्ड पर्याप्त हैं। भविष्य में, अधिक जटिल प्रणालियों के निर्माण के लिए अधिक जटिल बोर्डों का उपयोग किया जा सकता है। भौतिक रूप से पता करने योग्य एलईडी पट्टी को Arduino बोर्ड से जोड़ते समय, कई शर्तों का पालन किया जाना चाहिए:
- कम शोर प्रतिरक्षा के कारण, डेटा लाइन के कनेक्टिंग कंडक्टर जितना संभव हो उतना छोटा होना चाहिए (आपको उन्हें 10 सेमी के भीतर बनाने की कोशिश करनी चाहिए);
- आपको डेटा कंडक्टर को Arduino बोर्ड के मुफ्त डिजिटल आउटपुट से कनेक्ट करने की आवश्यकता है - फिर इसे प्रोग्रामेटिक रूप से निर्दिष्ट किया जाएगा;
- उच्च बिजली की खपत के कारण, बोर्ड से टेप को बिजली देना आवश्यक नहीं है - इस उद्देश्य के लिए अलग बिजली की आपूर्ति प्रदान की जाती है।
दीपक और Arduino के सामान्य बिजली के तार को जोड़ा जाना चाहिए।

WS2812B कार्यक्रम नियंत्रण मूल बातें
यह पहले ही उल्लेख किया जा चुका है कि WS2812B microcircuits को नियंत्रित करने के लिए, उच्च सटीकता बनाए रखते हुए, एक निश्चित लंबाई के साथ दालों को उत्पन्न करना आवश्यक है। छोटी दालों के निर्माण के लिए Arduino भाषा में कमांड हैं देरीमाइक्रोसेकंड तथा सूक्ष्म. समस्या यह है कि इन आदेशों का संकल्प 4 माइक्रोसेकंड है। अर्थात्, यह किसी निश्चित सटीकता के साथ समय विलंब बनाने का काम नहीं करेगा। C++ या असेंबलर टूल्स पर स्विच करना जरूरी है। और आप इसके लिए विशेष रूप से बनाए गए पुस्तकालयों का उपयोग करके Arduino के माध्यम से पता योग्य एलईडी पट्टी के नियंत्रण को व्यवस्थित कर सकते हैं। आप ब्लिंक प्रोग्राम से अपना परिचय शुरू कर सकते हैं, जो प्रकाश उत्सर्जक तत्वों को ब्लिंक करता है।
तेजी से नेतृत्व
यह पुस्तकालय सार्वभौमिक है। पता टेप के अलावा, यह SPI इंटरफ़ेस द्वारा नियंत्रित टेप सहित कई प्रकार के उपकरणों का समर्थन करता है। इसकी व्यापक संभावनाएं हैं।
सबसे पहले, पुस्तकालय को शामिल किया जाना चाहिए। यह सेटअप ब्लॉक से पहले किया जाता है, और लाइन इस तरह दिखती है:
#शामिल करें <FastLED.h>
अगला कदम प्रत्येक प्रकाश उत्सर्जक डायोड के रंगों को संग्रहीत करने के लिए एक सरणी बनाना है। इसका नाम होगा पट्टी और आयाम 15 - तत्वों की संख्या से (इस पैरामीटर के लिए एक स्थिरांक निर्दिष्ट करना बेहतर है)।
सीआरजीबी पट्टी [15]
सेटअप ब्लॉक में, आपको यह निर्दिष्ट करने की आवश्यकता है कि स्केच किस टेप के साथ काम करेगा:
व्यर्थ व्यवस्था() {
FastLED.addLeds< WS2812B, 7, RGB> (पट्टी, 15);
अंतरराष्ट्रीय स्तर पर;
}
आरजीबी पैरामीटर रंग अनुक्रम क्रम सेट करता है, 15 का अर्थ है एल ई डी की संख्या, 7 नियंत्रण के लिए निर्दिष्ट आउटपुट की संख्या है (अंतिम पैरामीटर को स्थिरांक निर्दिष्ट करना भी बेहतर है)।
लूप ब्लॉक एक लूप से शुरू होता है जो क्रमिक रूप से सरणी के प्रत्येक अनुभाग को लिखता है लाल (लाल चमक):
के लिए (जी = 0; जी <15; जी ++)
{पट्टी [जी] = सीआरजीबी :: लाल;}
अगला, गठित सरणी दीपक को भेजी जाती है:
FastLED.शो ();
विलंब 1000 मिलीसेकंड (सेकंड):
देरी (1000);
फिर आप सभी तत्वों को उसी तरह काला लिखकर बंद कर सकते हैं।
के लिए (इंट जी = 0; जी <15; जी ++)
{पट्टी [जी] = सीआरजीबी :: काला;}
FastLED.शो ();
देरी (1000);

स्केच को संकलित और अपलोड करने के बाद, टेप 2 सेकंड की अवधि के साथ फ्लैश होगा। यदि आपको प्रत्येक रंग घटक को अलग से प्रबंधित करने की आवश्यकता है, तो लाइन के बजाय {पट्टी [जी] = सीआरजीबी :: लाल;} कई पंक्तियों का उपयोग किया जाता है:
{
पट्टी [जी]। आर = 100;// लाल तत्व का चमक स्तर सेट करें
पट्टी [जी]। जी = 11;// हरे रंग के लिए वही
पट्टी [जी]। बी = 250;// नीले रंग के लिए वही
}
नियोपिक्सेल
यह लाइब्रेरी केवल NeoPixel Ring LED रिंग्स के साथ काम करती है, लेकिन यह कम संसाधन वाली है और इसमें केवल आवश्यक चीजें शामिल हैं। Arduino भाषा में, प्रोग्राम इस तरह दिखता है:
#शामिल करें <Adafruit_NeoPixel.h>
पिछले मामले की तरह, पुस्तकालय जुड़ा हुआ है, और लेंटा ऑब्जेक्ट घोषित किया गया है:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// जहां 15 तत्वों की संख्या है और 6 निर्दिष्ट आउटपुट है
सेटअप ब्लॉक में, टेप को इनिशियलाइज़ किया जाता है:
व्यर्थ व्यवस्था() {
लेंटा.बेगिन ()
}
लूप ब्लॉक में, सभी तत्वों को लाल रंग में हाइलाइट किया जाता है, चर को फ़ीड में पास किया जाता है, और 1 सेकंड की देरी बनाई जाती है:
के लिए (int y=0; y<15; y++)// 15 - दीपक में तत्वों की संख्या
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
टेप.शो ();
देरी (1000);
एक काले रिकॉर्ड के साथ चमक बंद हो जाती है:
के लिए (int y=0; y< 15; y++)
{ lenta.setPixelColor(y, lenta.Color(0,0,0))};
टेप.शो ();
देरी (1000);

वीडियो ट्यूटोरियल: पता टेप का उपयोग करके दृश्य प्रभावों के नमूने।
एक बार जब आप एल ई डी को फ्लैश करना सीख लेते हैं, तो आप सीखना जारी रख सकते हैं कि रंग प्रभाव कैसे बनाया जाता है, जिसमें लोकप्रिय रेनबो और ऑरोरा बोरेलिस भी शामिल हैं। पता करने योग्य एल ई डी WS2812B और Arduino इसके लिए लगभग असीमित संभावनाएं प्रदान करते हैं।
