कोई भी रंग तीन रंगों से बना होता है: लाल, हरा और नीला, एक साधारण RGB LED का उपयोग करके आप किसी भी रंग को उत्पन्न कर सकते हैं। लेकिन RGB LED की सीमा यह है कि इसके अंदर तीन अलग-अलग LED हैं और एक RGB LED को संचालित करने के लिए किसी भी माइक्रोकंट्रोलर के तीन पिन की आवश्यकता होती है। इसलिए सैकड़ों एलईडी को एक माइक्रोकंट्रोलर से जोड़ना संभव नहीं है।
इस समस्या को दूर करने के लिए Adafruit ने NeoPixel LED Strip बनाई है । यह कई RGB NeoPixel LED को चलाने के लिए केवल तीन पिन की आवश्यकता होती है। दो पिन पावर और ग्राउंड के लिए हैं और एक पिन डेटा इन (डीआई) के लिए है। डेटा इन पिन का उपयोग उनके रंग, चमक आदि के साथ पट्टी में विभिन्न एल ई डी को संबोधित करने और नियंत्रित करने के लिए किया जाता है, लेकिन इसे NeoPixels को चलाने के लिए एक माइक्रोकंट्रोलर की आवश्यकता होती है। Arduino का उपयोग सामान्यतः NeoPixel के साथ किया जाता है, इसलिए आज हम Arduino के साथ NeoPixel LED को इंटरफ़ेस करना सीखेंगे । आप AdaFruit में NeoPixels के बारे में अधिक जान सकते हैं।
यहाँ इस परियोजना में हम Arduino और TFT LCD टच स्क्रीन का उपयोग करके NeoPixel LED को नियंत्रित कर रहे हैं । हमने 2.4 इंच TFT एलसीडी पर विभिन्न रंगों के 7 टच बटन बनाए हैं और जब हम एलसीडी पर कुछ रंग के बटन को टैप करते हैं, तो NeoPixel LED स्ट्रिप उसी बटन के एक ही रंग से रोशन होती है। यहाँ हमने NeoPixel Digital RGB LED 30 LED की स्ट्रिप का उपयोग किया है ।
नियोपिक्सल आरजीबी एलईडी को किसी भी रंग में रोशन किया जा सकता है और इसलिए हम एलसीडी पर अधिक बटन जोड़ सकते हैं ताकि उन बटन पर टैप करके अधिक रंगों में एलईडी को चमकाया जा सके। कोडिंग का उपयोग करके अन्य सुंदर प्रभाव और पैटर्न भी जोड़े जा सकते हैं। आप NEO Pixel LED का उपयोग करके एक पूर्ण Arduino नियंत्रित सजावट प्रणाली का निर्माण कर सकते हैं और आपके पास पड़े एलसीडी द्वारा इस प्रणाली को नियंत्रित कर सकते हैं।
आवश्यक घटक:
- Arduino मेगा या कोई अन्य Arduino मॉडल
- SPFD5408 नियंत्रक के साथ 2.4 इंच टीएफटी एलसीडी शील्ड
- NeoPixel RGB एलईडी स्ट्रिप
- तारों को जोड़ना
- यूएसबी केबल या 12 वी 1 ए एडाप्टर
सर्किट कनेक्शन:
करने के लिए Arduino के लिए NeoPixels पट्टी कनेक्ट मेगा बस NeoPixel के 5V पिन के लिए Arduino 5V पिन और NeoPixel के GND करने के लिए मेगा के GND और फिर कनेक्ट कनेक्ट (में डेटा) NeoPixel डि पिन डिजिटल पिन करने के लिए कोई Arduino मेगा के 36। Arduino पर TFT LCD टच शील्ड को सावधानी से माउंट करें जैसे कि MEGA का GND LCD के GND के नीचे होता है और Arduino का 5V पिन LCD के 5V पिन से जुड़ता है।
ध्यान रखें कि GND और NeoVixel LED स्ट्रिप के 5V पिन को Arduino से कनेक्ट करते समय इसे इंटरचेंज न करें, अन्यथा यह NeoPixel LED स्ट्रिप को नुकसान पहुंचाएगा। यह भी ध्यान दें कि यहाँ हमने Arduino Mega का उपयोग किया है लेकिन आप किसी अन्य Arduino मॉडल का उपयोग कर सकते हैं।
Arduino के लिए NeoPixel RGB LED स्ट्रिप के कनेक्शन:
अरुडिनो पिंस |
नियोपिक्सल स्ट्रिप्स पिंस |
5 वी |
5 वी |
GND |
GND |
डिजिटल पिन नं। ३६ |
DI (डेटा में) |
कार्य स्पष्टीकरण:
Arduino के साथ NeoPixel LED का काम करना बहुत आसान है। बस एलसीडी पर किसी भी रंग के टच बटन को टैप करें जिसमें आप NeoPixel LED स्ट्रिप को चमकाना चाहते हैं। एलईडी उस रंग के अनुसार प्रकाश करेगी। कोड इस तरह से लिखा गया है ताकि आप बिना Arduino Mega को रीसेट किए इस कार्य को अंतहीन रूप से दोहरा सकें। आप इस लेख के अंत में कोड और डेमो वीडियो देख सकते हैं ।
जब कोई भी बटन एलसीडी पर टैप किया जाता है, तो डेटा को Arduino पर भेजा जाता है और Arduino आगे NeoPixel Strip को उसी के अनुसार प्रकाश देने के लिए निर्देश भेजता है। उदाहरण के लिए NeoPixel LED स्ट्रिप ग्लोज़ इन ग्रीन कलर जब हम LCD बटन पर ग्रीन बटन और LED स्ट्रिप ग्लोज़ रेड कलर में टैप करते हैं जब हम रेड बटन वगैरह दबाते हैं।
प्रोग्रामिंग स्पष्टीकरण:
Arduino के साथ TFT TFT इंटरफ़ेस करने के लिए हमने कुछ पुस्तकालयों का उपयोग किया है। सभी लाइब्रेरी एक आरएआर फ़ाइल में आती हैं और इस लिंक से डाउनलोड की जा सकती हैं। 'क्लोन या डाउनलोड' और 'डाउनलोड ज़िप' फ़ाइल पर क्लिक करें और अपने Arduino लाइब्रेरी फ़ोल्डर में जोड़ें। टीएफटी एलसीडी के समुचित कार्य के लिए इस पुस्तकालय की आवश्यकता है।
#शामिल
आपको लाइब्रेरी में दिए गए उदाहरण कोड के साथ Arduino को जलाकर अपने TFT एलसीडी का परीक्षण करना चाहिए और जांचना चाहिए कि क्या कोड ठीक से काम कर रहे हैं। पहले ग्राफिक्स टेस्ट की जांच करें, फिर टेस्ट को कैलिब्रेट करें और अंत में पेंट टेस्ट को। यदि आप पाते हैं कि सभी सभी ठीक काम कर रहे हैं तो इस ट्यूटोरियल में दिए गए कोड से शुरू करें।
NeoPixel RGB LED स्ट्रिप के समुचित कार्य के लिए, आपको एक और लाइब्रेरी की आवश्यकता होगी, जिसे यहाँ से डाउनलोड किया जा सकता है।
#शामिल
जैसा कि पहले बताया गया है कि मेगा का डिजिटल पिन 36 नियोपिक्सल एलईडी स्ट्रिप के डीआई पिन से जुड़ा है जैसा कि नीचे दिए गए कोड में दिखाया गया है। इसके अलावा स्ट्रिप में एलईडी की संख्या 30 है, जैसा कि कोड में लिखा गया है:
#define PIN 36 #define NUM_LEDS 30
कुछ कोड्स द्वारा एलसीडी बटन के डिस्प्ले रंगों को दर्शाया जाता है। आप अपने LCD के अनुसार इन कोड को बदल सकते हैं।
#define ब्लैक 0x0000 #define YELLOW 0x001F #define GREEN 0xF800 #define RED 0x07E0 #define CYAN 0x07FF #define मैग्नेटा 0xF81F #define BLUE 0xFFE0 #define WHITE 0xFFF
बटन जैसे आकार और स्थिति के कुछ मापदंडों को कोड में परिभाषित किया गया है:
uint16_t चौड़ाई = 0; uint16_t ऊंचाई = 0; uint16_t x = 40; uint16_t y = ऊंचाई - 20; uint16_t w = 75; uint16_t h = 20;
h पैरामीटर का उपयोग LCD पर बटन के आकार को समायोजित करने के लिए किया जाता है। यदि आप इसे 40 बनाते हैं, तो बटन का आकार दोगुना हो जाएगा। y पैरामीटर LCD का y निर्देशांक है।
टच बटन को संख्याओं द्वारा दर्शाया जाता है जैसा कि कोड में दिखाया गया है:
#define BUTTONS 9 #define BUTTON_Red 0 #define BUTTON_DarkRed 1 #define BUTTON_RED 2 #define BUTTON_DarkGreen #define BUTTON_DeepRed 4 #define BUTTON_Ded 5 # #ffine BUTTONS
कुछ फ़ंक्शंस का उपयोग NeoPixel के रंग से बाहर निकालने के लिए किया जाता है जैसे:
शून्य EmitCyan (); शून्य इमिथाइट (); शून्य EmitGreen (); शून्य EmitYellow (); शून्य EmitPink (); शून्य EmitBlack ();
दिए गए रंग के लिए दर्ज किए जाने वाले डिजिटल RGB मूल्यों को खोजने के लिए, आप इस लिंक का अनुसरण कर सकते हैं। बस उस रंग को दर्ज करें जिसे आप अपनी NeoPixel पट्टी को चमकना चाहते हैं, उस रंग के लिए RGB मान खोजें और उपरोक्त कार्यों में लगाएं।
void initializeButtons () फ़ंक्शन का उपयोग बटन पर पाठ और रंग देने के लिए और उन्हें एलसीडी पर आवश्यक स्थान पर रखने के लिए किया जाता है।
void initializeButtons () {uint16_t x = 40; uint16_t y = ऊंचाई - 20; uint16_t w = 75; uint16_t h = 40; uint8_t रिक्ति_x = 5………………..
void showCalibration () फ़ंक्शन का उपयोग एलसीडी पर बटन खींचने के लिए किया जाता है।
व्यर्थ दिखावट () {tft.setCursor (40, 0); के लिए (uint8_t i = 0; मैं <8; मैं ++) {बटन। वापसबटन (); }}
इसके अलावा वांछित रंग में नियोपिक्सल एलईडी पट्टी चमक के लिए पूर्ण Arduino कोड नीचे दिया गया है। कोड थोड़ा लंबा है लेकिन सरल है, आप कोड को आसानी से समझ सकते हैं।