विषयसूची:

Arduino और Neopixel कोक की बोतल रेनबो पार्टी लाइट: 7 कदम (चित्रों के साथ)
Arduino और Neopixel कोक की बोतल रेनबो पार्टी लाइट: 7 कदम (चित्रों के साथ)

वीडियो: Arduino और Neopixel कोक की बोतल रेनबो पार्टी लाइट: 7 कदम (चित्रों के साथ)

वीडियो: Arduino और Neopixel कोक की बोतल रेनबो पार्टी लाइट: 7 कदम (चित्रों के साथ)
वीडियो: pwm-controlled RGB LEDs in a coke bottle 2024, नवंबर
Anonim
Image
Image

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

यह एक सुपर-सरल प्रोजेक्ट है जो वास्तव में बहुत अच्छा लगता है। हमने अपनी 3 पुरानी कोक की बोतलें, एक लकड़ी की प्लेट, और एक खेल का मैदान पोस्ट ब्रैकेट बनाया - तहखाने में चारों ओर पड़ा सामान - एक Arduino (हमारे मामले में लियोनार्डो, लेकिन कोई भी Genuino बोर्ड करेगा!) और तीन Neopixel के छल्ले के साथ संयुक्त. मैंने 9-एलईडी रिंग का ऑर्डर दिया, लेकिन उसी कीमत के लिए 12-एलईडी रिंग के साथ समाप्त हुआ। जो मीठा था, लेकिन इसका मतलब था कुएं के छेद पर एक ओवर-ओवर - 12-एलईडी के छल्ले 35 मिमी चौड़े हैं, जबकि 23 मिमी के विपरीत। आपको किस चीज़ की ज़रूरत पड़ेगी:

  • Genuino/Arduino बोर्ड (हमने लियोनार्डो का इस्तेमाल किया, लेकिन लगभग कोई भी बोर्ड करेगा)
  • 3 Neopixel के छल्ले (प्रत्येक में 12 LED): उन्हें Adafruit से प्राप्त करें, और उन अच्छे लोगों का समर्थन करें
  • १००० µf ६.३v या बेहतर संधारित्र
  • 300-500 ओम रोकनेवाला
  • एक लकड़ी की प्लेट, या स्क्रैपवुड का एक वर्ग, या कुछ भी जिसे आप नियोपिक्सल में सेट कर सकते हैं और शीर्ष पर कोक की बोतलें बैठ सकते हैं
  • प्लेट के लिए माउंट का कुछ रूप - एक खेल का मैदान पोस्ट ब्रैकेट हमारे लिए बहुत अच्छा काम करता है
  • 9वी दीवार मस्सा
  • 40 मिमी छेद-छिद्र
  • बोल्ट, नट, वाशर, स्पेसर
  • ठोस कोर तार
  • एक सोल्डरिंग आयरन और सोल्डर
  • ब्रेड बोर्ड
  • Arduino के लिए एक प्लास्टिक का मामला। आप बाहर जा सकते हैं और कुछ नाजुक वातावरण में जमीन से ड्रिल किए गए लाखों साल पुराने पेट्रोलियम से बने और ग्रह के दूसरी तरफ एक कंटेनर में एक गोदाम में भेजकर वास्तव में अच्छा पूरी तरह से फिटिंग प्लास्टिक का मामला खरीद सकते हैं। बंदरगाहों को सही संरेखण में काट दिया गया है और इसे आपके दरवाजे पर एक वैन द्वारा वायुमंडल में कार्बन डाइऑक्साइड को उगलने के लिए पहुंचाया गया है। या आप वह कर सकते हैं जो मैंने किया था और एक पुराने छोड़े गए प्लास्टिक के बक्से का उपयोग कर सकते हैं.. इस मामले में दवा कैबिनेट में मेडागास्कर बैंड सहायता बॉक्स … और उसमें कुछ छेद ड्रिल करें। यहाँ व्याख्यान समाप्त होता है। चलो…

चरण 1: आधार बनाएं

आधार बनाओ
आधार बनाओ
आधार बनाओ
आधार बनाओ

आप अपने बेसमेंट में जो भी कबाड़ मिला है, उसमें से आप अपना आधार सुधार सकते हैं, या यहां तक कि केवल लकड़ी के बक्से या ऐसी किसी भी चीज़ का उपयोग कर सकते हैं जो आपके इलेक्ट्रॉनिक्स को छिपा दे।

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

मुझे प्लेट के नीचे ब्रेडबोर्ड के लिए प्लेट और ब्रैकेट के बीच निकासी की आवश्यकता थी और एक घटक - कैपेसिटर, और वायर रन के लिए जिसे ब्रेडबोर्ड से Arduino तक जाना होगा, जिसे मैंने ब्रैकेट के अंदर रखने की योजना बनाई थी। इसलिए मैंने पर्याप्त निकासी देने के लिए बोल्ट शाफ्ट पर अस्थायी स्पेसर्स का एक सेट लगाया - लगभग 3 सेमी, ब्रेडबोर्ड की ऊंचाई और थोड़ा सा ताकि आप तारों को कुचल न दें। मैंने प्रति कोने में दो लकड़ी के एंकर बोल्ट का इस्तेमाल किया क्योंकि वे सही ऊंचाई के थे और मैन ड्रॉअर में चारों ओर पड़े थे … ढीले शिकंजा, बोल्ट, नाखून, जंग लगी चेन-लिंक्स, होज़ कपलिंग, पुराने सिक्के, अप्रत्याशित रूप से तेज वस्तुएं, और सभी तरह से बिट्स और बॉब्स की पेशकश जो जादुई रूप से आपको हार्डवेयर स्टोर की यात्रा से बचा सकती है, अगर आपको सटीक चीज़ की ज़रूरत नहीं है, तो कुछ ऐसा जो ठीक करेगा।

खेल के मैदान की चौकी के बारे में सुखद दुर्घटना जो मुझे तहखाने में मिली, उसमें पहले से ही प्लेट के माध्यम से छेद चल रहे थे। लोहे को ड्रिल करने की आवश्यकता नहीं है! आधार में चार बोल्ट छेद थे, और हमने मिलान करने के लिए लकड़ी की प्लेट में चार काउंटर-सनक छेद ड्रिल किए।

फिर हमने पूरी चीज़ गॉथिक ब्लैक पर स्प्रे-पेंट की।

चरण 2: Neopixel के छल्ले तैयार करना

Neopixel के छल्ले तैयार करना
Neopixel के छल्ले तैयार करना

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

जब इन छल्लों में तारों को टांका जाता है, तो आपको सोल्डर ब्लॉब्स और शॉर्ट सर्किट के बारे में अतिरिक्त सतर्क रहने की आवश्यकता होती है। घटकों के बीच की दूरी बहुत तंग है! अक्सर सामने से तार और पीछे की तरफ मिलाप डालना सबसे आसान होता है।

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

Neopixel डेज़ी-चेन के छल्ले बनाता है, जिसका अर्थ है कि आप एक Arduino से एक तार को एक रिंग के OUT से दूसरे के IN में जोड़कर एक साथ उनके सभी LED को नियंत्रित कर सकते हैं। हर रिंग को पावर और ग्राउंड वायर की भी जरूरत होती है।

चरण 3: वायरिंग

तारों
तारों

इसे ऊपर फ्रिट्ज़िंग के रूप में तार दें - Arduino का पिन 6 डेटा को पहली रिंग में ले जाता है, उस रिंग से डेटा-आउट अगले के डेटा-इन में जाता है, उस का डेटा-आउट जाता है अंतिम रिंग का डेटा-इन। आपको अंतिम रिंग के डेटा-आउट तार की आवश्यकता नहीं है।

1000 μf क्षमता ब्रेडबोर्ड की सकारात्मक और नकारात्मक रेल के बीच जाती है। यह टोपी रिंगों को पावर स्पाइक्स से बचाती है और Adafruit NeoPixel Uberguide के सर्वोत्तम अभ्यास अनुभाग द्वारा अनुशंसित है। पहले नियोपिक्सल में डेटा पर रोकनेवाला भी एडफ्रूट द्वारा अनुशंसित है - यह फ्रिट्ज़िंग में 1K है लेकिन अनुशंसित प्रतिरोध 300-500 ओम है।

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

चरण 4: कोड

"लोड हो रहा है =" आलसी " ने उल्लेख किया कि मेरा बेटा इसका एक संगीत-प्रतिक्रियाशील संस्करण चाहता था। इसके चारों ओर जाने के लिए अपने 18 वें जन्मदिन तक ले लिया, लेकिन यह यहाँ है!

उपकरण के अतिरिक्त टुकड़े:

1 सिंगल पोल, डबल थ्रो स्विच1 ऑटोमैटिक गेन कंट्रोल माइक (मैंने AdaFruit के MAX9184 का इस्तेमाल किया) 1 1uF-100uF कैपेसिटर (कोई भी मान)

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

मैं ज़ुल्फ़ परीक्षण पैटर्न या संगीत का उपयोग करने का विकल्प चाहता था, इसलिए मैंने एक स्विच के केंद्र लीड को VIN और एक लीड को 4 पिन करने के लिए दूसरे को लियोनार्डो के 8 को पिन करने के लिए तार दिया। उच्च या निम्न के लिए उन पिनों का परीक्षण करके हम जान सकते हैं कि स्विच किस स्थिति में है, और तदनुसार शाखा कोड।

चरण 7: माइक्रोफ़ोन को तार-तार करना

माइक्रोफ़ोन को तार-तार करना
माइक्रोफ़ोन को तार-तार करना

माइक इनपुट को उस 1-100μF कैपेसिटर के माध्यम से, एनालॉग पिन 0 में फीड करें। यदि आपका कैपेसिटर ध्रुवीकृत है, तो आउट पिन पॉजिटिव साइड (ग्रीन वायर) में जाता है।

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

// Arduino और NeoPixels के साथ ध्वनि सक्रिय एलईडी

#शामिल

#define MIC_PIN A0 // लियोनार्डो पर माइक्रोफ़ोन पिन a0 से जुड़ा है

#define LED_PIN 6 // लियोनार्डो पर पिन 6 से जुड़े NeoPixel LED स्ट्रैंड #define N_PIXELS 36 // LED स्ट्रैंड में पिक्सल की संख्या !!!!!! अपने सेटअप में पिक्सेल की संख्या में समायोजित करें। यह 3 Neopixel के छल्ले के लिए सही है !!!!!! #define N 100 // हर बार पढ़े जाने वाले नमूनों की संख्या को कहा जाता है #define fadeDelay 5 // प्रत्येक फीका राशि के लिए देरी का समय #define नॉइज़लेवल 30 // बिना साउंड के औसत माइक शोर का ढलान स्तर

// उपरोक्त परिभाषित मूल्यों के साथ NeoPixel स्ट्रिप को इनिशियलाइज़ करें:

Adafruit_NeoPixel स्ट्रिप = Adafruit_NeoPixel(N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

इंट नमूने [एन]; // नमूना संग्रह सेट के लिए भंडारण

इंट पीरियड फैक्टर = 0; // अवधि गणना के लिए एमएस की संख्या का ट्रैक रखें int t1 = -1; // ढलान का समय> 100 का पता चला। इंट टी; // समय के बीच की अवधि मिलीसेकंड int ढलान तक बढ़ा दी गई है; // दो एकत्रित डेटा नमूना बिंदुओं की ढलान बाइट अवधि बदली गई = 0; कॉन्स्ट इंट स्विचपिनम्यूजिक = 4; // स्विच स्थिति के लिए पिन संगीत-संवेदनशीलता कॉन्स्ट इंट स्विचपिनस्विरल = 8; // स्विच पोजीशन के लिए पिन टेस्ट पैटर्न (घुंघराला) int MusicbuttonState = 0; // संगीत संवेदनशीलता के लिए ऑफ लॉजिक वेरिएबल पर

// Arduino सेटअप विधि

व्यर्थ व्यवस्था() {

पट्टी। शुरू ();

एलईडीऑफ (); देरी (500); डिस्प्लेकलर (व्हील (100)); कपड़े उतारने का प्रदर्शन(); देरी (500); ऑडव्हील (व्हील (100)); कपड़े उतारने का प्रदर्शन(); देरी (500); पिनमोड (स्विचपिन म्यूजिक, इनपुट); पिनमोड (स्विचपिनस्विर्ल, इनपुट); // अटैचइंटरप्ट (4, स्विच्ड, फॉलिंग);

}

// Arduino लूप विधि

शून्य लूप () {SwirlbuttonState = digitalRead (SwitchPinSwirl); // हाई अगर स्विच म्यूजिक सेंसिटिविटी पर सेट है MusicbuttonState = digitalRead (SwitchPinMusic); // हाई अगर स्विच टेस्ट पैटर्न पर सेट है जबकि (स्विर्लबटनस्टेट == कम) {readSamples (); // म्यूजिक सैंपलिंग रूटीन चलाएँ SwirlbuttonState = digitalRead (SwitchPinSwirl); // जांचें कि क्या स्विच बदल दिया गया था } SwirlbuttonState = digitalRead (SwitchPinSwirl); MusicbuttonState = digitalRead (SwitchPinMusic); जबकि (SwirlbuttonState == उच्च) {नृत्य (); // स्विरली टेस्ट पैटर्न रूटीन चलाएँ SwirlbuttonState = digitalRead(SwitchPinSwirl); // जांचें कि क्या स्विच बदल गया है

}

}

शून्य नृत्य () {

जबकि (SwirlbuttonState == High) {colorWipe(strip. Color(255, 0, 0), 50); // रेड स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विरल); colorWipe(strip. Color(0, 255, 0), 50); // ग्रीन स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विर्ल); colorWipe(strip. Color(0, 0, 255), 50); // ब्लू स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विरल); //colorWipe(strip. Color(0, 0, 0, 255), 50); // व्हाइट RGBW // एक थिएटर पिक्सेल चेज़ भेजें… SwirlbuttonState = digitalRead(SwitchPinSwirl); थिएटरचेज़ (पट्टी। रंग (127, 127, 127), 50); // व्हाइट स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विर्ल); थिएटरचेज़ (पट्टी। रंग (127, 0, 0), 50); // रेड स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विरल); थिएटरचेज़ (पट्टी। रंग (0, 0, 127), 50); // ब्लू स्विरलबटनस्टेट = डिजिटलरेड (स्विचपिनस्विरल); इंद्रधनुष (20); SwirlbuttonState = digitalRead (SwitchPinSwirl); इंद्रधनुष चक्र(20); SwirlbuttonState = digitalRead (SwitchPinSwirl); थिएटरचेसइंद्रधनुष(50); SwirlbuttonState = digitalRead (SwitchPinSwirl); } } // माइक शून्य रीड सैम्पल्स () {के लिए (इंट आई = 0; i0) {ढलान = नमूने - नमूने [i-1] से नमूना डेटा पढ़ें और संसाधित करें; } और {ढलान = नमूने - नमूने[N-1]; } // जांचें कि क्या शोर स्तर से अधिक ढलान - ध्वनि जो शोर के स्तर पर नहीं है पता चला है अगर (abs (ढलान)> शोर स्तर) {if (ढलान <0) {गणना अवधि (i); अगर (पीरियड चेंज == 1) {डिस्प्लेकलर (गेटकोलर (टी)); } } } और {ledsOff (); // थिएटरचेसरेनबो (50); } अवधिकारक += 1; देरी(1); } }

शून्य गणना अवधि (int i)

{ अगर (t1 == -1) {// t1 सेट नहीं किया गया है t1 = i; } और {// t1 इसलिए कैल्क अवधि int अवधि = अवधि फैक्टर * (i - t1) सेट किया गया था; अवधि बदली = टी == अवधि? 0: 1; टी = अवधि; // सीरियल.प्रिंट्लन (टी); // t1 को नए पर रीसेट करें i मान t1 = i; अवधि कारक = 0; } }

uint32_t getColor (इंट अवधि)

{अगर (अवधि == -1) रिटर्न व्हील (0); और अगर (अवधि> 400) रिटर्न व्हील (5); अन्य रिटर्न व्हील (मानचित्र (-1 * अवधि, -400, -1, 50, 255)); }

शून्य फ़ेडऑट ()

{ के लिए (int i=0; i<5; i++) { strip.setBrightness(110 - i*20); कपड़े उतारने का प्रदर्शन(); // अद्यतन पट्टी देरी (fadeDelay); अवधि कारक + = फीका विलंब; } }

शून्य फ़ेडइन ()

{ स्ट्रिप.सेटब्राइटनेस (100); कपड़े उतारने का प्रदर्शन(); // अद्यतन पट्टी // फीका रंग के लिए (int i = 0; i <5; i ++) {//strip.setBrightness (20 * i + 30); //कपड़े उतारने का प्रदर्शन(); // अद्यतन पट्टी देरी (fadeDelay); पीरियडफैक्टर+=फीकादेले; } }

शून्य एलईडीऑफ ()

{ फेड आउट(); के लिए(int i=0; i

शून्य प्रदर्शन रंग (uint32_t रंग)

{ के लिए (इंट आई = 0; आई

शून्य विषम व्हील (uint32_t रंग)

{ के लिए (int j = 0; j <256; j ++) {// चक्र में सभी 256 रंगों को चक्र के लिए (int q = 0; q <3; q ++) { के लिए (uint16_t i = 24; i <36; i) =i+3) { strip.setPixelColor(i+q, Wheel((i+j) % 255); // हर तीसरे पिक्सेल को } स्ट्रिप.शो () पर चालू करें;

देरी(1);

के लिए (uint16_t i=24; i <36; i=i+3) { strip.setPixelColor(i+q, 0); // हर तीसरे पिक्सेल को बंद करें } } } fadeIn (); }

// डॉट्स को एक के बाद एक रंग से भरें

शून्य रंगवाइप (uint32_t c, uint8_t प्रतीक्षा करें) { के लिए (uint16_t i = 0; मैं

शून्य इंद्रधनुष (uint8_t प्रतीक्षा करें) {

uint16_t मैं, जे;

for(j=0; j<256; j++) { for(i=0; i

// थोड़ा अलग, यह इंद्रधनुष को समान रूप से वितरित करता है

शून्य इंद्रधनुष चक्र (uint8_t प्रतीक्षा करें) { uint16_t i, j;

for(j=0; j<256*5; j++) {// 5 चक्र पर सभी रंगों के चक्र के लिए (i=0; i< strip.numPixels(); i++) { strip.setPixelColor(i, Wheel(((i * 256 / strip.numPixels ()) + j) और 255); } कपड़े उतारने का प्रदर्शन(); देरी (प्रतीक्षा); } }

// थिएटर-शैली रेंगने वाली रोशनी।

शून्य थिएटरचेज़ (uint32_t c, uint8_t प्रतीक्षा करें) { के लिए (int j=0; j<10; j++) {// का पीछा करने के 10 चक्र करें (int q=0; q <3; q++) { के लिए (uint16_t i= 0; मैं < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, c); // हर तीसरे पिक्सेल को } स्ट्रिप.शो () पर चालू करें;

देरी (प्रतीक्षा);

के लिए (uint16_t i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, 0); // हर तीसरे पिक्सेल को बंद करें } } } }

// थिएटर-शैली रेंगने वाली रोशनी इंद्रधनुष प्रभाव के साथ

शून्य थिएटरचेसरेनबो (uint8_t प्रतीक्षा) { के लिए (int j=0; j <256; j++) {// चक्र में सभी 256 रंगों के लिए (int q=0; q <3; q++) { के लिए (uint16_t i=0 i // हर तीसरे पिक्सेल को } स्ट्रिप.शो () पर चालू करें;

देरी (प्रतीक्षा);

के लिए (uint16_t i=0; i < strip.numPixels(); i=i+3) { strip.setPixelColor(i+q, 0); // हर तीसरे पिक्सेल को बंद करें } } } }

// रंग मान प्राप्त करने के लिए 0 से 255 मान इनपुट करें।

// रंग एक संक्रमण आर-जी-बी-बैक टू आर हैं। uint32_t व्हील (बाइट व्हीलपॉज़) {व्हीलपॉज़ = 255 - व्हीलपॉज़; अगर (व्हीलपॉस <85) {रिटर्न स्ट्रिप। कलर (255 - व्हीलपॉस * 3, 0, व्हीलपॉस * 3); } अगर (व्हीलपोस <१७०) {व्हीलपोस - = ८५; वापसी पट्टी। रंग (0, व्हीलपॉस * 3, 255 - व्हीलपॉस * 3); } व्हीलपोस - = १७०; वापसी पट्टी। रंग (व्हीलपॉस * 3, 255 - व्हीलपॉस * 3, 0); }

शून्य स्विच किया गया () {

कपड़े उतारने का प्रदर्शन(); पढ़ने के नमूने (); }

इससे पहले कि मैं टिप्पणियों में कत्ल हो जाऊं (बी नाइस पॉलिसी याद रखें !!) मुझे एहसास हुआ कि मैंने इसे अपलोड करने के बाद मेरा कुछ कोड कितना मैला है। उच्च के लिए पिन 4 और पिन 8 दोनों का लगातार परीक्षण करने की कोई आवश्यकता नहीं है। चूंकि स्विच सिंगल पोल डबल थ्रो है, एक का मान दूसरे से अनुमान लगाया जा सकता है: आपको केवल एक का परीक्षण करने की आवश्यकता है। तो आप MusicButtonState को पढ़ने और लिखने के हर संदर्भ को पढ़ सकते हैं और हटा सकते हैं और यदि आप स्मृति में कम हैं या अन्य दिनचर्या के साथ विस्तार कर रहे हैं, तो SwirlButtonState का परीक्षण करके पूरी चीज को अधिक कुशलता से चला सकते हैं। लेकिन उपरोक्त कोड काम करता है।

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

आनंद लेना!

सिफारिश की: