आरजीबी एलईडी। इंद्रधनुष के सभी रंगों के साथ Arduino शिमर के साथ RGB LED बनाना Arduino rgb LED स्मूथ कलर चेंज

यह प्रोजेक्ट अगले कमरे से एलईडी लाइटिंग को नियंत्रित करने के तरीके के बारे में है ताकि सोफे से उठना न पड़े। छोटे एक्वैरियम या बड़े कमरे को सजाने के लिए आरजीबी एलईडी लाइटिंग समान रूप से अच्छी है।

आप Arduino पर RGB टेप से अलग-अलग रंगों से स्नान को रोशन कर सकते हैं। बनाने के लिए, इसलिए बोलने के लिए, Arduino से माइक्रोप्रोसेसर नियंत्रण पर स्नान।

आरजीबी बैकलाइट को असेंबल करने के लिए आपको केवल निम्नलिखित घटकों की आवश्यकता है:

  1. Arduino के साथ बेतार संचार के लिए ब्लूटूथ मॉड्यूल HC-05।
  2. माइक्रोप्रोसेसर के साथ अरुडिनो नैनो, मिनी, यूनो बोर्ड एटमेगा 8, एटमेगा 168, एटमेगा 328.
  3. यदि आवश्यक हो तो IP65 वाटरप्रूफ डिज़ाइन के साथ या उसके बिना RGB LED स्ट्रिप।
  4. आरजीबी प्रकाश व्यवस्था के लिए रिमोट कंट्रोल के रूप में एंड्रॉइड वाला स्मार्टफोन।
  5. MOSFETs जैसे P3055LD, P3055LDG, PHD3355L, लेकिन बढ़ते छेद के लिए छेद के साथ बेहतर। द्विध्रुवी ट्रांजिस्टर बदतर काम करते हैं .
  6. प्रतिरोधक 10 kOhm, 0.125 W - 3 टुकड़े।

आरजीबी टेप को जोड़ने के बारे में थोड़ा सा सिद्धांतअरुडिनो

आप एलईडी पट्टी को सीधे Arduino बोर्ड से नहीं जोड़ सकते। LED स्ट्रिप 12 V से चमकती है, जबकि माइक्रोप्रोसेसर को काम करने के लिए केवल 5 V की आवश्यकता होती है।

लेकिन, मुख्य समस्या यह है कि माइक्रोप्रोसेसर के आउटपुट में एलईडी की एक पूरी पट्टी को बिजली देने के लिए पर्याप्त शक्ति नहीं होती है। औसतन एक मीटर लंबी एलईडी पट्टी में 600 एमए की खपत होती है। ऐसा करंट निश्चित रूप से Arduino बोर्ड को निष्क्रिय कर देगा।

माइक्रोप्रोसेसर द्वारा उपयोग किए जाने वाले पीडब्लूएम आउटपुट में आरजीबी टेप को रोशन करने के लिए पर्याप्त शक्ति नहीं है, लेकिन फिर भी उनका उपयोग नियंत्रण संकेत को हटाने के लिए किया जा सकता है।

पावर डिकूप्लिंग के लिए, ट्रांजिस्टर को चाबियों के रूप में उपयोग करने की अनुशंसा की जाती है। MOSFETs का उपयोग करना बेहतर है: उन्हें चालू करने के लिए "गेट" के लिए एक अल्प धारा की आवश्यकता होती है, और इसके अलावा, उनके पास समान आकार के द्विध्रुवी स्विच की तुलना में अधिक शक्ति होती है।

आरजीबीरिबन के लिएअरुडिनो

वायरिंग आरेख पर, PWM आउटपुट का उपयोग टेप को नियंत्रित करने के लिए किया जाता है: 9 (लाल), 10 (हरा), 11 (नीला)।

प्रत्येक ट्रांजिस्टर के "गेट" पर 10 kOhm, 0.125 W के तीन प्रतिरोधक लटके हुए हैं।

प्लस 12 वी बिजली की आपूर्ति (लाल तार) से सीधे आरजीबी टेप में जाता है।

क्षेत्र-प्रभाव ट्रांजिस्टर के "स्रोतों" पर 12 वी बिजली की आपूर्ति (ब्लैक वायर) से ऋण वितरित किया जाता है।

प्रत्येक ट्रांजिस्टर का "ड्रेन" एक अलग टेप संपर्क से जुड़ा होता है: आर, जी, बी। लाल, हरे, नीले तारों का उपयोग करने के लिए कनेक्ट करते समय सुविधा के लिए इसकी सिफारिश की जाती है।

Arduino बोर्ड के ग्राउंड पिन GND को इनपुट पावर के माइनस से जोड़ा जाना चाहिए।

Arduino Uno बोर्ड स्वयं एक अलग AC एडॉप्टर द्वारा संचालित होता है। Arduino नैनो, मिनी के लिए, आपको एक एकीकृत 7805 स्टेबलाइजर पर एक साधारण बिजली की आपूर्ति को इकट्ठा करना होगा।

ब्लूटूथ मॉड्यूल HC-05 कनेक्ट करना:

  • वीसीसी - 5 वी (आपूर्ति +5 वी);
  • जीएनडी - जीएनडी (जमीन, आम);
  • Arduino नैनो, मिनी, ऊनो पर RX - TX;
  • Arduino नैनो, मिनी, ऊनो पर TX - RX;
  • एलईडी - उपयोग नहीं किया गया;
  • कुंजी - उपयोग नहीं किया गया।

नीचे दिया गया प्रोग्राम स्केच सिंगल एलईडी और एलईडी स्ट्रिप दोनों को चलाने के लिए सामान्य है। मुख्य बात यह है कि आवश्यक पंक्तियों को छोड़ दें, और अनावश्यक को हटा दें या स्लैश में टिप्पणी करें।

अहस्ताक्षरित लंबा एक्स; इंट एलईडी = 9; // हरा पिन 9 int LED2 = 10 से जुड़ा है; // नीला 10 int LED3 = 11 पिन से जुड़ा है; // लाल पिन 11 इंट ए, बी, सी = 0 से जुड़ा है; शून्य सेटअप () (Serial.begin (9600); Serial.setTimeout (4); पिनमोड (एलईडी, आउटपुट); पिनमोड (LED2, OUTPUT); पिनमोड (LED3, OUTPUT); ) शून्य लूप () (अगर (Serial. उपलब्ध ()) (x = Serial.parseInt (); अगर (x>=0 && x<=255) { a = x; // для RGB ленты //a = 255-x; // для светодиода analogWrite(LED, a); } if (x>=256 && एक्स<=511) { b = x-256; // для RGB ленты //b = 511-x; // для светодиода analogWrite(LED2, b); } if (x>=512 && एक्स<=767) { c = x-512; // для RGB ленты //c = 767-x; // для светодиода analogWrite(LED3, c); } /* Serial.println(x); Serial.println(a); Serial.println(b); Serial.println(c); */ } }

यदि आपको एक आरजीबी एलईडी कनेक्ट करने की आवश्यकता है, तो इसके कनेक्शन के लिए एक वायरिंग आरेख है।

अपने फोन पर ऐप इंस्टॉल करना

फोन पर संक्षिप्त नाम आरजीबी के साथ एप्लिकेशन डाउनलोड करें। .

स्थापना के बाद, आइकन द्वारा एप्लिकेशन लॉन्च करें।

कैप्शन पर क्लिक करें

हम सूची में स्थापित ब्लूटूथ मॉड्यूल HC-05 पाते हैं।

यदि कोई कनेक्शन है, तो शिलालेख के बजाय, स्थापित ब्लूटूथ मॉड्यूल का पता और नाम प्रदर्शित किया जाएगा।

ठीक है, बस इतना ही, आरजीबी बैकलाइट नियंत्रण स्थापित किया गया है!

यहां हमारी परियोजना के कार्य का एक वीडियो उदाहरण है:

Arduino पर GPS घड़ी बायोमेट्रिक लॉक - एलसीडी लेआउट और असेंबली

पिछले पाठ में, हम पहले ही कोशिश कर चुके हैं। अब एक बहु-रंग एलईडी से निपटते हैं, जिसे अक्सर संक्षिप्त कहा जाता है: आरजीबी एलईडी.

आरजीबी एक संक्षिप्त नाम है जिसका अर्थ है: लाल - लाल, हरा - हरा, नीला - नीला। यानी इस डिवाइस के अंदर एक साथ तीन अलग-अलग एलईडी लगाई जाती हैं। प्रकार के आधार पर, आरजीबी एलईडी या तो एक सामान्य कैथोड या एक सामान्य एनोड हो सकता है।

रंग मिश्रण

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

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

यह पता चला है कि सघन बहु-रंगीन बिंदु एक-दूसरे के लिए होते हैं, इन रंगों को मिलाने के लिए आंख को जितनी कम दूरी की जरूरत होती है। इसलिए निष्कर्ष: तीन फ्रीस्टैंडिंग एलईडी के विपरीत, आरजीबी एलईडी का रंग मिश्रण पहले से ही 30-70 सेमी की दूरी पर ध्यान देने योग्य है। वैसे, मैट लेंस वाला आरजीबी एलईडी खुद को और भी बेहतर दिखाता है।

कई अनुप्रयोगों में, शौकिया और पेशेवर दोनों में, कभी-कभी विभिन्न रंगों के रंग उत्पन्न करना आवश्यक होता है। ऐसे मामलों में अलग-अलग सिंगल-कलर एलईडी का उपयोग रचनात्मक और आर्थिक रूप से अनुचित है। इसलिए, ऐसे उद्देश्यों के लिए RGB LED विकसित किए गए थे।



RGB LED (संक्षिप्त नाम RED, GREEN, BLUE के लिए है) क्रिस्टल का एक संयोजन है जो लाल, हरे और नीले रंग उत्पन्न करने में सक्षम है। इस संयोजन के लिए धन्यवाद, ये एल ई डी प्रकाश के 16 मिलियन रंगों को पुन: उत्पन्न कर सकते हैं। RGB LED को नियंत्रित करना आसान है और Arduino प्रोजेक्ट्स में बिना किसी समस्या के उपयोग किया जा सकता है। यह लेख Arduino का उपयोग करके RGB LED को नियंत्रित करने का एक उदाहरण दिखाएगा।


चूंकि आरजीबी एलईडी, जैसा कि ऊपर उल्लेख किया गया है, तीन अलग-अलग मूल रंगों के क्रिस्टल का एक संयोजन है, इसे सर्किटरी में तीन एलईडी के रूप में दर्शाया गया है। संरचनात्मक रूप से, इस तरह के एलईडी में एक सामान्य आउटपुट और प्रत्येक रंग के लिए तीन आउटपुट होते हैं। नीचे एक आरजीबी एलईडी को एक Arduino से जोड़ने का आरेख है। इसके अलावा सर्किट पर एक 16x2 अल्फ़ान्यूमेरिक एलसीडी डिस्प्ले, पोटेंशियोमीटर और प्रतिरोधक आरजीबी एलईडी लाइनों के साथ श्रृंखला में जुड़े हुए हैं। ये प्रतिरोधक (R1 = 100 ओम, R2 = 270 ओम, R3 = 330 ओम) LED के करंट को सीमित करते हैं ताकि वे जलें नहीं। 10 KΩ के प्रतिरोध के साथ चर प्रतिरोधक (पोटेंशियोमीटर) VR1-VR3 का उपयोग RGB LED की चमक की तीव्रता को नियंत्रित करने के लिए किया जाता है, अर्थात इनका उपयोग लाल रंग की तीव्रता को बदलकर LED का रंग सेट करने के लिए किया जा सकता है, हरे और नीले क्रिस्टल। पोटेंशियोमीटर VR1 एनालॉग इनपुट A0, VR2 से एनालॉग इनपुट A1 और VR3 से एनालॉग इनपुट A2 से जुड़ा है।



इस मामले में एलसीडी का उपयोग रंग मान और रंग कोड के हेक्साडेसिमल मान को प्रदर्शित करने के लिए किया जाता है। रंग कोड मान LCD की पहली पंक्ति पर प्रदर्शित होता है (Rxxx Gxxx Bxxx के रूप में, जहाँ xxx एक संख्यात्मक मान है), और हेक्साडेसिमल कोड LCD की दूसरी पंक्ति पर प्रदर्शित होता है (HEXxxxxxx के रूप में)। एलसीडी बैकलाइट पर लागू वर्तमान को सीमित करने के लिए 100Ω प्रतिरोधी आर 4 का उपयोग किया जाता है, और एलसीडी कंट्रास्ट को समायोजित करने के लिए 10 केΩ परिवर्तनीय प्रतिरोधी वीआर 4 का उपयोग किया जाता है।


नीचे एक कोड (स्केच) है जो आपको Arduino बोर्ड और उससे जुड़े पोटेंशियोमीटर का उपयोग करके RGB LED के रंग परिवर्तन को नियंत्रित करने की अनुमति देता है।


#शामिल करना // एलसीडी डिस्प्ले के लिए लाइब्रेरी लिक्विड क्रिस्टल एलसीडी (7, 6, 5, 4, 3, 2); // Arduino लाइनें LCD int Radj को जोड़ने के लिए; इंट गाडज; इंट बैज; अंतराल = 0; इंट ग्वाल = 0; इंटबवल = 0; इंट आर = 9; इंट जी = 10; इंट बी = 11; शून्य सेटअप () (pinMode (R, OUTPUT); // लाइन 9 को आउटपुट पिनमोड (G, OUTPUT) पर रूट किया गया है; // लाइन 10 को आउटपुट पिनमोड (B, OUTPUT) पर रूट किया गया है; // लाइन 11 को आउटपुट में रूट किया गया है lcd.begin (16,2); // प्रारंभिक प्रदर्शन विलंब (1); lcd.setCursor (0,0); lcd.print ("आरजीबी रंग"); lcd.setCursor (4,1); lcd.print ( "जेनरेटर"); विलंब (2000); lcd.setCursor (0, 0); lcd.print ("आरजीबी"); lcd.setCursor (3,1); lcd.print ("हेक्स ="); ) शून्य लूप () ( राड्ज = एनॉलॉगरीड (0); गद्ज = एनालॉगरीड (1); बैज = एनालॉगरीड (2); रावल = रेड्ज / 4; // रेंज को (0-1023) से (0-255) ग्वाल = गजज में बदलें /4; // सीमा को (0-1023) से (0-255) Bval=Badj/4 में बदलें; // श्रेणी को (0-1023) से (0-255) lcd.setCursor(2,0) में बदलें ); अगर (रावल<10) { lcd.setCursor(2,0); lcd.print("00"); lcd.print(Rval); } else if(Rval<100) { lcd.setCursor(2,0); lcd.print("0"); lcd.print(Rval); } else { lcd.setCursor(2,0); lcd.print(Rval); } lcd.setCursor(8,1); if (Rval<16) { lcd.print("0"); lcd.print(Rval, 16); } else { lcd.print(Rval, 16); } lcd.setCursor(7,0); if (Gval<10) { lcd.setCursor(7,0); lcd.print("00"); lcd.print(Gval); } else if(Gval<100) { lcd.setCursor(7,0); lcd.print("0"); lcd.print(Gval); } else { lcd.setCursor(7,0); lcd.print(Gval); } lcd.setCursor(10,1); if (Gval<16) { lcd.print("0"); lcd.print(Gval, 16); } else { lcd.print(Gval, 16); } lcd.setCursor(12,0); if (Bval<10) { lcd.setCursor(12,0); lcd.print("00"); lcd.print(Bval); } else if(Bval<100) { lcd.setCursor(12,0); lcd.print("0"); lcd.print(Bval); } else { lcd.setCursor(12,0); lcd.print(Bval); } lcd.setCursor(12,1); if (Bval<16) { lcd.print("0"); lcd.print(Bval, 16); } else { lcd.print(Bval, 16); } analogWrite(R, Rval); // ШИМ-выход для красного цвета analogWrite(G, Gval); // ШИМ-выход для зеленого цвета analogWrite(B, Bval); // ШИМ-выход для синего цвета }

यह लेख एक Arduino के साथ RGB (रेड ग्रीन ब्लू) LED का उपयोग करने की मूल बातें शामिल करता है।

आरजीबी एलईडी के रंग को नियंत्रित करने के लिए हम एनालॉगवर्इट फ़ंक्शन का उपयोग करते हैं।

पहली नज़र में, RGB LED नियमित LED की तरह ही दिखती हैं, लेकिन वास्तव में उनके अंदर तीन LED लगे होते हैं: एक लाल, एक हरा और हाँ, एक नीला। प्रत्येक की चमक को नियंत्रित करके, आप एलईडी के रंग को नियंत्रित कर सकते हैं।

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

आवश्यक नोड्स

हमारी छोटी परियोजना को लागू करने के लिए, हमें चाहिए:

1 आरजीबी एलईडी 10 मिमी

3 270 Ω प्रतिरोधक (लाल, बैंगनी, भूरी धारियां)। आप 1 kΩ तक के प्रतिरोधक का उपयोग कर सकते हैं, लेकिन ध्यान रखें कि जैसे-जैसे प्रतिरोध बढ़ता है, LED उतनी चमक से नहीं चमकेगी।


संख्या के छह अंक तीन जोड़ी संख्याओं के अनुरूप हैं; पहली जोड़ी रंग का लाल घटक है, अगले दो अंक हरे घटक हैं, और अंतिम जोड़ी नीला घटक है। यही है, #FF0000 लाल रंग से मेल खाता है, क्योंकि यह लाल एलईडी की अधिकतम चमक होगी (FF हेक्स में 255 है), और लाल और नीले घटक 0 हैं।

उदाहरण के लिए, इंडिगो की छाया: #4B0082 का उपयोग करके एलईडी को जलाने का प्रयास करें।

लाल, हरे और नीले रंग के घटक क्रमशः 4B, 00 और 82 हैं। हम कोड की निम्न पंक्ति के साथ "सेटकोलर" फ़ंक्शन के भीतर उनका उपयोग कर सकते हैं:

सेट कलर (0x4B, 0x0, 0x82); // इंडिगो

तीन घटकों के लिए, हम एक अंकन का उपयोग करते हैं जिसमें उनमें से प्रत्येक शुरुआत में "0x" वर्ण से पहले होता है।

जब आप अलग-अलग आरजीबी एलईडी शेड्स के साथ खेलते हैं, तो हर एक का उपयोग करने के बाद 'विलंब' सेट करना न भूलें।

पीडब्लूएम और अरुडिनो

पल्स चौड़ाई मॉड्यूलेशन (PWM) बिजली प्रबंधन के तरीकों में से एक है। हमारे मामले में, PWM का उपयोग प्रत्येक व्यक्तिगत एलईडी की चमक को नियंत्रित करने के लिए किया जाता है।

नीचे दिया गया आंकड़ा योजनाबद्ध रूप से एक Arduino PWM पिन से संकेत दिखाता है।


प्रत्येक 1/500 सेकंड PWM आउटपुट एक पल्स उत्पन्न करता है। इस पल्स की लंबाई को "एनालॉग्राइट" फ़ंक्शन द्वारा नियंत्रित किया जाता है। यही है, "एनालॉग्राइट (0)" कोई पल्स उत्पन्न नहीं करेगा, लेकिन "एनालॉग्राइट (255)" एक सिग्नल उत्पन्न करेगा जो अगले एक की शुरुआत तक चलेगा। अर्थात्, यह आभास देगा कि एक सतत नाड़ी लगाई जा रही है।

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

अपनी टिप्पणी, प्रश्न छोड़ें और अपना व्यक्तिगत अनुभव नीचे साझा करें। चर्चा में अक्सर नए विचार और प्रोजेक्ट जन्म लेते हैं!

यह सरल Arduino प्रोजेक्ट PWM (पल्स चौड़ाई मॉड्यूलेशन) नियंत्रण के लिए डिज़ाइन किया गया है। यह PWM कर्तव्य चक्र को बदलकर प्रत्येक रंग के स्तर को स्वतंत्र रूप से बदल सकता है। इस प्रकार विभिन्न रंगों को प्रतिशत में मिलाकर कोई भी रंग बनाया जा सकता है। एनकोडर को बोर्ड पर चालू करने से उपयोगकर्ता को वांछित चैनल का चयन करने और इसकी चमक को बदलने की अनुमति मिलती है। कम स्विचिंग प्रतिरोध वाले ट्रांजिस्टर बड़ी संख्या में एलईडी के साथ भी बहुत कम गर्मी लंपटता पैदा करते हैं। उदाहरण के लिए, IRF540 ट्रांजिस्टर में बहुत कम RDS पास-थ्रू प्रतिरोध है - लगभग 70 mΩ।

टेप नियंत्रक योजनाबद्ध

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

मुख्य नियंत्रक Arduino Uno का उपयोग करके बनाया गया है। यह एनकोडर से इनपुट डेटा को पढ़ता है और इस जानकारी के अनुसार ट्रांजिस्टर स्विच किए जाते हैं। ट्रांजिस्टर पिन 9, 10 और 11 द्वारा संचालित होते हैं जिनमें आंतरिक PWM कार्य होते हैं। एन्कोडर सिग्नल ए और बी की दिशा मॉड्यूल से जुड़े तत्वों 2 और 3 का उपयोग करके पढ़ी जाती है। एनकोडर बटन का उपयोग चैनल का चयन करने के लिए किया जाता है और पिन 1 से जुड़ा होता है, जो इनपुट के रूप में सेट होता है।