Arduino ला अॅड्रेस करण्यायोग्य LED स्ट्रिप WS2812B कसे कनेक्ट करावे
LEDs वर आधारित प्रकाश तंत्रज्ञानाचा विकास वेगाने सुरू आहे. कालच, कंट्रोलर-नियंत्रित RGB रिबन्स, ज्याची चमक आणि रंग रिमोट कंट्रोल वापरून समायोजित केले जाऊ शकतात, एक चमत्कारासारखे वाटले. आज, आणखी वैशिष्ट्यांसह दिवे बाजारात दिसू लागले आहेत.
WS2812B वर आधारित एलईडी पट्टी
अॅड्रेस करण्यायोग्य LED पट्टी आणि मानक मधील फरक RGB गोष्ट आहे प्रत्येक घटकाची चमक आणि रंग गुणोत्तर स्वतंत्रपणे समायोजित केले जातात. हे आपल्याला प्रकाश प्रभाव प्राप्त करण्यास अनुमती देते जे इतर प्रकारच्या प्रकाश उपकरणांसाठी मूलभूतपणे अगम्य आहेत. अॅड्रेस करण्यायोग्य LED पट्टीची चमक एका ज्ञात मार्गाने नियंत्रित केली जाते - पल्स-रुंदी मॉड्यूलेशन वापरून. प्रत्येक एलईडीला स्वतःच्या PWM कंट्रोलरने सुसज्ज करणे हे या प्रणालीचे वैशिष्ट्य आहे. WS2812B चिप एक तिरंगी प्रकाश उत्सर्जक डायोड आणि एकल पॅकेजमध्ये एकत्रित केलेले नियंत्रण सर्किट आहे.

घटक समांतर पॉवर टेपमध्ये एकत्र केले जातात आणि सीरियल बसद्वारे नियंत्रित केले जातात - पहिल्या घटकाचे आउटपुट दुसऱ्याच्या कंट्रोल इनपुटशी जोडलेले असते, इ. बहुतेक प्रकरणांमध्ये, सीरियल बसेस दोन ओळींवर बांधल्या जातात, त्यापैकी एक स्ट्रोब (घड्याळाच्या डाळी) प्रसारित करते आणि दुसरा - डेटा.

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

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

WS2812B प्रोग्राम कंट्रोल बेसिक्स
हे आधीच नमूद केले आहे की WS2812B मायक्रोक्रिकेट नियंत्रित करण्यासाठी, उच्च अचूकता राखून, विशिष्ट लांबीसह डाळी निर्माण करणे आवश्यक आहे. लहान कडधान्ये तयार करण्यासाठी अर्डिनो भाषेत आज्ञा आहेत मायक्रोसेकंद विलंब आणि मायक्रो. समस्या अशी आहे की या कमांड्सचे रिझोल्यूशन 4 मायक्रोसेकंद आहे. म्हणजेच, दिलेल्या अचूकतेसह वेळ विलंब तयार करणे कार्य करणार नाही. C++ किंवा असेंबलर टूल्सवर स्विच करणे आवश्यक आहे. आणि यासाठी खास तयार केलेल्या लायब्ररीचा वापर करून तुम्ही Arduino द्वारे अॅड्रेस करण्यायोग्य LED पट्टीचे नियंत्रण व्यवस्थापित करू शकता. आपण ब्लिंक प्रोग्रामसह आपली ओळख सुरू करू शकता, ज्यामुळे प्रकाश-उत्सर्जक घटक लुकलुकतात.
जलद नेतृत्व
हे वाचनालय सार्वत्रिक आहे. अॅड्रेस टेप व्यतिरिक्त, ते SPI इंटरफेसद्वारे नियंत्रित टेपसह विविध उपकरणांना समर्थन देते. त्याच्या विस्तृत शक्यता आहेत.
प्रथम, लायब्ररी समाविष्ट करणे आवश्यक आहे. हे सेटअप ब्लॉकच्या आधी केले जाते आणि ओळ यासारखी दिसते:
# समावेश <FastLED.h>
पुढील पायरी म्हणजे प्रत्येक प्रकाश उत्सर्जक डायोडचे रंग संचयित करण्यासाठी अॅरे तयार करणे. त्यात नावाची पट्टी आणि परिमाण 15 असेल - घटकांच्या संख्येनुसार (या पॅरामीटरला स्थिरांक नियुक्त करणे चांगले आहे).
CRGB पट्टी[15]
सेटअप ब्लॉकमध्ये, स्केच कोणत्या टेपसह कार्य करेल हे निर्दिष्ट करणे आवश्यक आहे:
निरर्थक सेटअप() {
FastLED.addLeds< WS2812B, 7, RGB>(पट्टी, 15);
intg;
}
RGB पॅरामीटर रंग क्रम क्रम सेट करतो, 15 म्हणजे LEDs ची संख्या, 7 ही नियंत्रणासाठी नियुक्त केलेल्या आउटपुटची संख्या आहे (अंतिम पॅरामीटरला स्थिरांक नियुक्त करणे देखील चांगले आहे).
लूप ब्लॉक लूपने सुरू होतो जो क्रमशः अॅरे रेड (लाल चमक) च्या प्रत्येक विभागात लिहितो:
साठी (g=0; g<15; g++)
{पट्टी[g]=CRGB::लाल;}
पुढे, तयार केलेला अॅरे दिव्याला पाठविला जातो:
FastLED.show();
विलंब 1000 मिलीसेकंद (सेकंद):
विलंब (1000);
मग तुम्ही सर्व घटकांमध्ये काळे लिहून त्याच प्रकारे बंद करू शकता.
साठी (int g=0; g<15; g++)
{पट्टी[g]=CRGB::ब्लॅक;}
FastLED.show();
विलंब (1000);

स्केच संकलित आणि अपलोड केल्यानंतर, टेप 2 सेकंदांच्या कालावधीसह फ्लॅश होईल. आपल्याला प्रत्येक रंग घटक स्वतंत्रपणे व्यवस्थापित करण्याची आवश्यकता असल्यास, नंतर रेषेऐवजी {पट्टी[g]=CRGB::लाल;} अनेक ओळी वापरल्या जातात:
{
पट्टी[g].r=100;// लाल घटकाची चमक पातळी सेट करा
पट्टी[g].g=11;// हिरव्या साठी समान
पट्टी[g].b=250;// निळ्यासाठी समान
}
निओपिक्सेल
ही लायब्ररी फक्त निओपिक्सेल रिंग LED रिंगसह कार्य करते, परंतु ती कमी संसाधनाची असते आणि त्यात फक्त आवश्यक गोष्टी असतात. Arduino भाषेत, प्रोग्राम असे दिसते:
#समाविष्ट करा <Adafruit_NeoPixel.h>
मागील प्रकरणाप्रमाणे, लायब्ररी कनेक्ट केलेली आहे, आणि lenta ऑब्जेक्ट घोषित केले आहे:
Adafruit_NeoPixel lenta=Adafruit_NeoPixel(15, 6);// जेथे 15 ही घटकांची संख्या आहे आणि 6 हे नियुक्त केलेले आउटपुट आहे
सेटअप ब्लॉकमध्ये, टेप आरंभ केला जातो:
निरर्थक सेटअप() {
lenta.begin()
}
लूप ब्लॉकमध्ये, सर्व घटक लाल रंगात हायलाइट केले जातात, व्हेरिएबल फीडमध्ये पास केले जाते आणि 1 सेकंदाचा विलंब तयार केला जातो:
साठी (int y=0; y<15; y++)// 15 - दिव्यातील घटकांची संख्या
{lenta.setPixelColor(y, lenta.Color(255,0,0))};
tape.show();
विलंब (1000);
काळ्या रेकॉर्डसह चमक थांबते:
साठी (int y=0; y<15; y++)
{ lenta.setPixelColor(y, lenta.Color(0,0,0))};
tape.show();
विलंब (1000);

व्हिडिओ ट्यूटोरियल: अॅड्रेस टेप वापरून व्हिज्युअल इफेक्टचे नमुने.
एकदा तुम्ही LEDs फ्लॅश कसे करायचे हे शिकल्यानंतर, तुम्ही लोकप्रिय इंद्रधनुष्य आणि अरोरा बोरेलिससह गुळगुळीत संक्रमणासह रंग प्रभाव कसे तयार करायचे हे शिकणे सुरू ठेवू शकता. Addressable LEDs WS2812B आणि Arduino यासाठी जवळजवळ अमर्याद शक्यता प्रदान करतात.
