সুচিপত্র:

Arduino এবং Neopixel কোক বোতল রেইনবো পার্টি লাইট: 7 ধাপ (ছবি সহ)
Arduino এবং Neopixel কোক বোতল রেইনবো পার্টি লাইট: 7 ধাপ (ছবি সহ)

ভিডিও: Arduino এবং Neopixel কোক বোতল রেইনবো পার্টি লাইট: 7 ধাপ (ছবি সহ)

ভিডিও: Arduino এবং Neopixel কোক বোতল রেইনবো পার্টি লাইট: 7 ধাপ (ছবি সহ)
ভিডিও: How to control WS2811 RGB LED with Arduino 2024, ডিসেম্বর
Anonim
Image
Image

তাই আমার ছেলে দুন পুরাতন কোকের বোতল এবং গ্লো স্টিকের গুয়াই ইনার্ডস দিয়ে তৈরি একটি খুব শীতল পার্টি লাইট স্পট করে, এবং জিজ্ঞেস করে যে আমরা তার আসন্ন স্কুল পরীক্ষার জন্য একটি তৈরি করতে পারি কিনা? আমি নিশ্চিত বলছি, কিন্তু আপনি কি সেই স্পিফি অ্যাডাফ্রুট নিওপিক্সেল রিংগুলির কিছু পাবেন না যার সম্পর্কে আমরা পড়েছি … তিনি আমাকে একটি ফাঁকা তাকান। কারণ আসলে সে জানে না যে আমি কি নিয়ে কথা বলছি, কিন্তু বাবা সেই নিওপিক্সেল রিংগুলির সাথে খেলার সুযোগ পেয়েছেন যা তিনি পড়ছেন, এবং আমরা সবাই শীর্ষ 10 টি কারণের মধ্যে একটি জানি যে গিক বাবার প্রজনন হল একটি শীতল গ্যাজেটগুলির সাথে খেলতে অজুহাত তারা বলে যে সবাই তাদের বাচ্চাদের জন্য।

এটি একটি অতি সাধারণ প্রকল্প যা সত্যিই দুর্দান্ত দেখাচ্ছে। আমরা আমাদের তৈরি করেছি 3 টি পুরনো কোকের বোতল, একটি কাঠের প্লেট, এবং একটি খেলার মাঠের পোস্ট বন্ধনী - বেসমেন্টে পড়ে থাকা জিনিস - একটি Arduino (আমাদের ক্ষেত্রে লিওনার্দো, কিন্তু যে কোনও জেনুইনো বোর্ড করবে!) এবং তিনটি নিওপিক্সেল রিং । আমি একটি 9-LED রিং অর্ডার করেছি, কিন্তু একই দামে 12-LED রিং দিয়ে শেষ করেছি। যা মিষ্টি ছিল, কিন্তু ভাল-গর্তে একটি ডু-ওভার বোঝানো হয়েছিল-12-LED রিংগুলি 35 মিমি প্রশস্ত, 23 মিমি এর বিপরীতে। আপনার যা লাগবে:

  • Genuino/Arduino বোর্ড (আমরা একটি লিওনার্দো ব্যবহার করেছি, কিন্তু প্রায় কোন বোর্ড করবে)
  • 3 টি নিওপিক্সেল রিং (প্রতিটি 12 টি LEDs): এগুলি অ্যাডাফ্রুট থেকে পান এবং সেই সূক্ষ্ম লোকদের সমর্থন করুন
  • 1000 µf 6.3v বা ভাল ক্যাপাসিটর
  • 300-500 ওহম প্রতিরোধক
  • একটি কাঠের প্লেট, বা স্ক্র্যাপউডের একটি বর্গক্ষেত্র, অথবা যেকোন কিছু যা আপনি নিওপিক্সেল সেট করতে পারেন এবং উপরে কোকের বোতলগুলি বসাতে পারেন
  • প্লেটের জন্য মাউন্ট কিছু ফর্ম - একটি খেলার মাঠ পোস্ট বন্ধনী আমাদের জন্য মহান কাজ করেছে
  • 9v প্রাচীর wart
  • 40 মিমি হোল-বোরার
  • বোল্ট, বাদাম, ওয়াশার, স্পেসার
  • সলিড কোর তার
  • একটি সোল্ডারিং লোহা এবং ঝাল
  • ব্রেডবোর্ড
  • Arduino জন্য একটি প্লাস্টিকের কেস। আপনি বাইরে যেতে পারেন এবং কয়েক মিলিয়ন বছরের পুরানো পেট্রোলিয়াম থেকে তৈরি সত্যিই চমৎকার ফিটিং প্লাস্টিকের কেসটি কিনতে পারেন যা কিছু ভঙ্গুর পরিবেশে মাটি থেকে ড্রিল করা হয় এবং গ্রহের অন্য প্রান্তে তৈরি করা হয় এবং আপনার কাছের একটি গুদামে একটি পাত্রে পাঠানো হয় পোর্টগুলি নিখুঁত সারিবদ্ধতায় কাটা হয়েছে এবং এটি আপনার দরজায় একটি ভ্যানের মাধ্যমে বায়ুমণ্ডলে কার্বন ডাই অক্সাইড প্রবাহিত করেছে। অথবা আপনি যা করতে পারেন তা করতে পারেন এবং একটি পুরানো ফেলে দেওয়া প্লাস্টিকের বাক্স ব্যবহার করতে পারেন.. এই ক্ষেত্রে একটি মাদাগাস্কার ব্যান্ড এইড বক্স aroundষধ ক্যাবিনেটের চারপাশে পড়ে আছে … এবং এতে কয়েকটি গর্ত ড্রিল করুন। এখানে বক্তৃতা শেষ। চল করি…

ধাপ 1: বেস তৈরি করুন

বেস তৈরি করুন
বেস তৈরি করুন
বেস তৈরি করুন
বেস তৈরি করুন

আপনি আপনার বেসমেন্টে যা কিছু আবর্জনা পেয়েছেন তা থেকে আপনি আপনার বেসকে উন্নত করতে পারেন, অথবা এমনকি একটি কাঠের বাক্স বা এমন কিছু ব্যবহার করতে পারেন যা আপনার ইলেকট্রনিক্সকে লুকিয়ে রাখবে।

প্রথমে আমরা তিনটি গর্ত ড্রিল করেছি, কাঠের প্লেটে সমানভাবে ফাঁকা, নিওপিক্সেল রিংগুলি বসার জন্য যথেষ্ট বড়। ছবিতে গর্তগুলি একটি কোদাল ড্রিল দিয়ে ছিদ্র করা কূপগুলি। শেষ পর্যন্ত, 12-LED রিংগুলির বড় আকারের কারণে, আমাদের একটি বোয়ার বিট দিয়ে গর্ত ড্রিল করতে হয়েছিল। এর অর্থ হল প্লেটের মধ্য দিয়ে সমস্ত পথ, এবং তাদের সূক্ষ্মভাবে তৈরি 2 মিমি-গভীর কূপগুলিতে সুন্দরভাবে রিংগুলি আটকে দেওয়ার পরিবর্তে একটি ঝরঝরে তারের জন্য কেন্দ্র ছিদ্র দিয়ে আমি রিংগুলিকে সুরক্ষিত করে দিয়েছি … প্লেটের। বিচার করবেন না। আপনি আমার ডিজাইনে প্লেটের নীচের অংশটি দেখতে পাবেন না। এবং যখন এটি চালু হয় তখন অন্ধকার। এবং তাছাড়া - ডাক্ট টেপে কি সমস্যা?

প্লেটের নীচে একটি ব্রেডবোর্ডের জন্য প্লেট এবং ব্র্যাকেটের মধ্যে ক্লিয়ারেন্সের প্রয়োজন ছিল এবং একটি কম্পোনেন্ট - ক্যাপাসিটর, এবং ওয়্যার রানের জন্য যা রুটিবোর্ড থেকে আরডুইনো পর্যন্ত যেতে হবে, যা আমি বন্ধনীতে রাখার পরিকল্পনা করেছি। তাই আমি যথেষ্ট পরিমাণে ছাড়পত্র দেওয়ার জন্য বোল্ট শ্যাফ্টগুলিতে অস্থায়ী স্পেসারগুলির একটি সেট রাখি - প্রায় 3 সেমি, ব্রেডবোর্ডের উচ্চতা এবং কিছুটা যাতে আপনি তারের গুঁড়ো না করেন। আমি প্রতি কোণে দুটি কাঠের নোঙ্গর বল্টু ব্যবহার করেছি কারণ সেগুলো ছিল সঠিক উচ্চতা এবং ম্যান ড্রয়ারের চারপাশে পড়ে থাকা … সেই বাক্সের আলগা স্ক্রু, বোল্ট, নখ, মরিচা চেইন-লিঙ্ক, পায়ের পাতার মোজাবিশেষ, পুরানো মুদ্রা, অপ্রত্যাশিতভাবে ধারালো বস্তু এবং সব পদ্ধতি বিট এবং বব যা যাদুকরীভাবে আপনাকে হার্ডওয়্যারের দোকানে ভ্রমণ বাঁচাতে পারে, যদি আপনার সঠিক জিনিস না হয়, এমন কিছু যা ঠিক কাজ করবে।

খেলার মাঠের পোস্ট সম্পর্কে খুশির দুর্ঘটনা যা আমি বেসমেন্টে পেয়েছিলাম তা হল প্লেটে ইতিমধ্যেই ছিদ্র ছিল। লোহা খনন করার দরকার নেই! বেসটিতে চারটি বোল্ট হোল ছিল এবং আমরা কাঠের প্লেটে চারটি পাল্টা-ডুবে যাওয়া গর্ত ড্রিল করেছিলাম।

আমরা তারপর গোথিক ব্ল্যাক পুরো জিনিস স্প্রে-আঁকা।

ধাপ 2: নিওপিক্সেল রিং প্রস্তুত করা

নিওপিক্সেল রিং প্রস্তুত করা হচ্ছে
নিওপিক্সেল রিং প্রস্তুত করা হচ্ছে

আপনাকে আপনার নিওপিক্সেল রিংগুলিতে তারের ঝালাই করতে হবে: তাদের সকলের জন্য একটি ডেটা-ইন তার, তাদের দুটিতে একটি ডেটা-আউট তার এবং প্রতিটিটির জন্য শক্তি এবং স্থল। আপনার যতটুকু দৈর্ঘ্য মনে হয়, কিছু যোগ করুন। আপনি সর্বদা অতিরিক্ত তার কেটে ফেলতে পারেন, আপনি খুব ছোট একটিকেও প্রসারিত করতে পারবেন না। এবং Adafruit থেকে সতর্কতা সম্পর্কে সচেতন থাকুন:

এই রিংগুলিতে তারের সোল্ডার করার সময়, আপনাকে সোল্ডার ব্লব এবং শর্ট সার্কিট সম্পর্কে অতিরিক্ত সতর্ক থাকতে হবে। উপাদানগুলির মধ্যে ব্যবধান খুব টাইট! সামনের দিক থেকে তারের andোকানো এবং পিছনে ঝাল দেওয়া প্রায়শই সহজ।

আমি সামনের দিকে বিক্রি করার আগে এটি পড়তে চাই। আমি আমার কোন LED গুলি না জ্বালাতে পেরেছি, কিন্তু আমি একটির প্রান্তকে এমনভাবে ঝলসিয়েছি যা আমাকে ঘামানো পর্যন্ত এটি চালু না করা পর্যন্ত। এছাড়াও, যদি আমি সূক্ষ্ম ম্যানুয়ালটি পড়তাম তবে আমি এলইডি -তে অ্যালিগেটর ক্লিপ না দেওয়ার সতর্কতাও পড়তাম। আমার কাছাকাছি জাহাজ ধ্বংস আপনার বাতিঘর হতে দিন।

নিওপিক্সেল রিংগুলি ডেইজি-চেইন, যার অর্থ হল আপনি তাদের সমস্ত এলইডিগুলিকে একযোগে একটি আরডুইনো থেকে নিয়ন্ত্রণ করতে পারেন একটি তারের সাথে একটি রিংয়ের আউট থেকে অন্য রিংকে আইএন-তে সংযুক্ত করে। প্রতিটি রিং পাওয়ার এবং স্থল তারের প্রয়োজন।

ধাপ 3: তারের

ওয়্যারিং
ওয়্যারিং

উপরে ফ্রিজিংয়ের মতো এটিকে ওয়্যার করুন-Arduino এর পিন 6 ডেটা প্রথম রিংয়ে নিয়ে যায়, সেই রিং থেকে ডেটা আউট পরবর্তী ডেটা-ইন যায়, সেই ডেটা আউট-এ যায় শেষ রিং এর ডেটা-ইন। আপনার চূড়ান্ত রিংয়ের ডেটা-আউট তারের প্রয়োজন নেই।

1000 µf ক্ষমতা রুটিবোর্ডের ইতিবাচক এবং নেতিবাচক রেলগুলির মধ্যে যায়। এই টুপিটি রিংগুলিকে পাওয়ার স্পাইক থেকে রক্ষা করে এবং অ্যাডাফ্রুট নিওপিক্সেল উবারগাইডের সেরা অনুশীলন বিভাগ দ্বারা সুপারিশ করা হয়। প্রথম নিওপিক্সেল-এ থাকা ডেটা-তে রোধকারী অ্যাডাফ্রুটও সুপারিশ করেছেন-এটি ফ্রিজিং-এ 1K কিন্তু প্রস্তাবিত প্রতিরোধ 300-500 ওহম।

আমার বিল্ডে, আমি প্লেটের পিছনে নিওপিক্সেল থেকে তারগুলিকে কেন্দ্রের মধ্যে স্থাপিত একটি ব্রেডবোর্ডে দৌড়েছি। এইভাবে আপনাকে কেবল বেস ইউনিটে তিনটি দীর্ঘ তারের চালাতে হবে: শক্তি, স্থল এবং ডেটা। আমি এই তারগুলিকে অতি লম্বা করেছি-বেসে প্রচুর স্টোরেজ স্পেস রয়েছে এবং এটি পুনরায় প্রোগ্রামিংয়ের জন্য বোর্ডটি টেনে আনতে সুবিধাজনক করে তোলে।

ধাপ 4: কোড

"লোড হচ্ছে =" অলস "উল্লেখ করেছে আমার ছেলে এর একটি সঙ্গীত-প্রতিক্রিয়াশীল সংস্করণ চেয়েছিল। তার 18 তম জন্মদিন পর্যন্ত এটির কাছাকাছি যেতে, কিন্তু এটি এখানে!

অতিরিক্ত যন্ত্রপাতি:

1 একক মেরু, ডবল থ্রো সুইচ

এটি সঠিকভাবে কাজ করার জন্য মাইক্রোফোনে সত্যিই স্বয়ংক্রিয় লাভ নিয়ন্ত্রণ থাকতে হবে। AGC ক্রমাগত পরিবেষ্টিত শব্দের নমুনা দেবে এবং এটি প্রেক্ষাপট বিবেচনা করে এমন থ্রেশহোল্ড বাড়াবে এবং কমাবে, তাই আপনার আলো সেই পটভূমির বিরুদ্ধে স্পাইকগুলিতে সাড়া দেবে। অ্যাডাফ্রুট এর মাইক উজ্জ্বল: আপনি একটি নীরব ঘর থেকে যেতে পারেন যেখানে একক কণ্ঠের আওয়াজ এটি কিশোর-কিশোরী এবং সঙ্গীত ঝলমলে একটি রুমের সাথে ফুল-অন পার্টি মোডে ট্রিগার করবে এবং এটি কেবল সঙ্গীতের তালে তালে উঠবে ভাল বিকল্প, একটি অ্যাডজাস্টেবল গেইন মাইক, বোর্ডে একটি ক্ষুদ্র পোটেন্টিওমিটার রয়েছে যা অসম্ভবভাবে সূক্ষ্ম এবং অস্পষ্ট। ইউনিটটিকে অকেজো করে তুলতে পরিবেষ্টিত শব্দে খুব বেশি পরিবর্তন হয় না: ক্রমাগত বা অন্ধকারে আলো জ্বলে। AGC ম্যাজিকের মত কাজ করে।

আমি সুইর্ল টেস্ট প্যাটার্ন বা মিউজিক ব্যবহার করার অপশন চেয়েছিলাম, তাই আমি ভিআইএন -এ সুইচের সেন্টার লিড ওয়্যার্ড করেছিলাম এবং লিওনার্দোর 8 পিন করার জন্য 4 টি পিন 4 -এ লিড দিয়েছিলাম। উচ্চ বা নিম্নের জন্য সেই পিনগুলি পরীক্ষা করে আমরা জানতে পারি সুইচটি কোন অবস্থায় আছে এবং সেই অনুযায়ী শাখা কোড।

ধাপ 7: মাইক্রোফোন তারের উপর

মাইক্রোফোন তারের উপর
মাইক্রোফোন তারের উপর

সেই 1-100µF ক্যাপাসিটরের মাধ্যমে মাইক ইনপুট খাওয়ান, এনালগ পিন 0. এ।

CodeGirlJP কে ধন্যবাদ তার Trinket-Color-by-Sound রুটিনের জন্য, যা আমি নিচে মানিয়ে নিয়েছি:

// Arduino এবং NeoPixels দিয়ে সাউন্ড অ্যাক্টিভেটেড LEDs

#অন্তর্ভুক্ত

#Dicine MIC_PIN A0 // মাইক্রোফোন লিওনার্দোর পিন a0 এর সাথে সংযুক্ত

#ডিফাইন LED_PIN 6 // লিওনার্দোতে পিন 6 এর সাথে সংযুক্ত NeoPixel LED strand #define N_PIXELS 36 // LED strand এ পিক্সেলের সংখ্যা !!!!!! আপনার সেটআপে পিক্সেল সংখ্যা সামঞ্জস্য করুন। এটি 3 টি নিওপিক্সেল রিংয়ের জন্য সঠিক !!!!!! #ডিফাইন এন 100 // প্রতিবার পড়ার জন্য নমুনার সংখ্যা নমুনাগুলিকে বলা হয় #ডিফাইন ফেইড বিলম্ব 5 // প্রতিটি ফেইড পরিমাণের জন্য বিলম্বের সময় #শব্দ নির্ধারিত করুন

// উপরের সংজ্ঞায়িত মানগুলির সাথে নিওপিক্সেল স্ট্রিপ শুরু করুন:

Adafruit_NeoPixel স্ট্রিপ = Adafruit_NeoPixel (N_PIXELS, LED_PIN, NEO_GRB + NEO_KHZ800);

int নমুনা [N]; // একটি নমুনা সংগ্রহ সেটের জন্য স্টোরেজ

int periodFactor = 0; // পিরিয়ড গণনার জন্য এমএস সংখ্যার ট্র্যাক রাখুন int t1 = -1; // opeালের সময়> 100 সনাক্ত। int টি; // মিলিসেকেন্ড থেকে slাল পর্যন্ত স্কেল করা সময়ের মধ্যে সময়কাল; // দুটি সংগৃহীত ডেটা নমুনা পয়েন্ট বাইট পিরিয়ডের opeাল পরিবর্তিত = 0; const int SwitchPinMusic = 4; // সুইচ অবস্থানের জন্য পিন সঙ্গীত-সংবেদনশীলতা const int SwitchPinSwirl = 8; // সুইচ অবস্থানের জন্য পিন টেস্ট প্যাটার্ন (ঘূর্ণায়মান) int MusicbuttonState = 0; // সঙ্গীত সংবেদনশীলতার জন্য অফ লজিক ভেরিয়েবল

// Arduino সেটআপ পদ্ধতি

অকার্যকর সেটআপ() {

strip.begin ();

ledsOff (); বিলম্ব (500); displayColor (চাকা (100)); strip.show (); বিলম্ব (500); oddWheel (চাকা (100)); strip.show (); বিলম্ব (500); pinMode (SwitchPinMusic, INPUT); pinMode (SwitchPinSwirl, INPUT); // attachInterrupt (4, সুইচড, ফ্যালিং);

}

// Arduino লুপ পদ্ধতি

অকার্যকর লুপ () {SwirlbuttonState = digitalRead (SwitchPinSwirl); // উচ্চ যদি সঙ্গীত সংবেদনশীলতা MusicbuttonState = digitalRead (SwitchPinMusic) সেট করা হয়; // উচ্চ যদি সুইচ টেস্ট প্যাটার্নে সেট করা থাকে (SwirlbuttonState == LOW) {readSamples (); // মিউজিক স্যাম্পলিং রুটিন চালান SwirlbuttonState = digitalRead (SwitchPinSwirl); // সুইচ পরিবর্তন করা হয়েছে কিনা তা পরীক্ষা করুন} SwirlbuttonState = digitalRead (SwitchPinSwirl); MusicbuttonState = digitalRead (SwitchPinMusic); while (SwirlbuttonState == HIGH) {Dance (); // swirly পরীক্ষার প্যাটার্ন রুটিন চালান SwirlbuttonState = digitalRead (SwitchPinSwirl); // সুইচ পরিবর্তন করা হয়েছে কিনা তা পরীক্ষা করুন

}

}

অকার্যকর নাচ () {

যখন (SwirlbuttonState == HIGH) {colorWipe (strip. Color (255, 0, 0), 50); // লাল SwirlbuttonState = digitalRead (SwitchPinSwirl); colorWipe (strip. Color (0, 255, 0), 50); // সবুজ SwirlbuttonState = digitalRead (SwitchPinSwirl); colorWipe (strip. Color (0, 0, 255), 50); // নীল SwirlbuttonState = digitalRead (SwitchPinSwirl); //colorWipe(strip. Color(0, 0, 0, 255), 50); // হোয়াইট RGBW // একটি থিয়েটার পিক্সেল চেজ পাঠান… SwirlbuttonState = digitalRead (SwitchPinSwirl); থিয়েটার চেস (স্ট্রিপ কালার (127, 127, 127), 50); // সাদা SwirlbuttonState = digitalRead (SwitchPinSwirl); থিয়েটার চেস (স্ট্রিপ। কালার (127, 0, 0), 50); // লাল SwirlbuttonState = digitalRead (SwitchPinSwirl); থিয়েটার চেস (স্ট্রিপ। কালার (0, 0, 127), 50); // নীল SwirlbuttonState = digitalRead (SwitchPinSwirl); রামধনু (20); SwirlbuttonState = digitalRead (SwitchPinSwirl); রেইনবো সাইকেল (20); SwirlbuttonState = digitalRead (SwitchPinSwirl); থিয়েটার চেজ রেইনবো (50); SwirlbuttonState = digitalRead (SwitchPinSwirl); }} // Mic void readSamples () {থেকে (int i = 0; i0) {slope = sample - sample [i -1]; } অন্য {opeাল = নমুনা - নমুনা [N -1]; } // চেক করুন যদি noiseাল বেশি হয় noiseLevel - যে শব্দটি শব্দ স্তরে নেই তা সনাক্ত করা হয় যদি (abs (slope)> noiseLevel) {if (slope <0) {calcPeriod (i); যদি (periodChanged == 1) {displayColor (getColor (T)); }}} অন্য {ledsOff (); // থিয়েটারচেসরেনবো (50); } periodFactor += 1; বিলম্ব (1); }}

অকার্যকর গণনা সময়কাল (int i)

{যদি (t1 == -1) {// t1 সেট করা হয়নি t1 = i; } অন্যথায় {// t1 সেট করা হয়েছিল তাই calc period int period = periodFactor*(i - t1); periodChanged = T == period? 0: 1; টি = পিরিয়ড; // সিরিয়াল.প্রিন্টলন (টি); // নতুন i মান t1 = i তে রিসেট করুন; periodFactor = 0; }}

uint32_t getColor (int period)

{যদি (সময় == -1) রিটার্ন হুইল (0); অন্যথায় যদি (পিরিয়ড> 400) রিটার্ন হুইল (5); অন্যথায় ফিরে চাকা (মানচিত্র (-1*সময়কাল, -400, -1, 50, 255)); }

অকার্যকর fadeOut ()

{জন্য (int i = 0; i <5; i ++) {strip.setBrightness (110 - i*20); strip.show (); // স্ট্রিপ বিলম্ব আপডেট করুন (fadeDelay); periodFactor += fadeDelay; }}

অকার্যকর fadeIn ()

{strip.setBrightness (100); strip.show (); // আপডেট স্ট্রিপ // ফেইড কালার ইন (int i = 0; i <5; i ++) {//strip.setBrightness(20*i+30); //strip.show (); // স্ট্রিপ বিলম্ব আপডেট (fadeDelay); periodFactor+= fadeDelay; }}

অকার্যকর ledsOff ()

{ বিবর্ণ(); জন্য (int i = 0; i

অকার্যকর প্রদর্শন রঙ (uint32_t রঙ)

{জন্য (int i = 0; i

অকার্যকর বিজোড় চাকা (uint32_t রঙ)

{for (int j = 0; j <256; j ++) {// চক্রের সমস্ত 256 রঙের জন্য = i+3) {strip.setPixelColor (i+q, Wheel ((i+j) % 255)); // প্রতি তৃতীয় পিক্সেল চালু করুন} strip.show ();

বিলম্ব (1);

জন্য (uint16_t i = 24; i <36; i = i+3) {strip.setPixelColor (i+q, 0); // প্রতি তৃতীয় পিক্সেল বন্ধ করুন}}} fadeIn (); }

// একটি রঙের সাথে একের পর এক বিন্দু পূরণ করুন

অকার্যকর রঙ মুছুন

অকার্যকর রংধনু (uint8_t অপেক্ষা) {

uint16_t i, j;

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

// একটু ভিন্ন, এটি রংধনু জুড়ে সমানভাবে বিতরণ করে

অকার্যকর রামধনুচক্র (uint8_t অপেক্ষা) {uint16_t i, j;

জন্য (j = 0; j <256*5; j ++) (i * 256 / strip.numPixels ()) + j) & 255)); } strip.show (); বিলম্ব (অপেক্ষা); }}

// থিয়েটার-স্টাইল ক্রলিং লাইট।

অকার্যকর থিয়েটার চেস (uint32_t c, uint8_t wait) {for (int j = 0; j <10; j ++) {// (int q = 0; q <3; q ++) {এর জন্য (uint16_t i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, c); // প্রতি তৃতীয় পিক্সেল চালু করুন} strip.show ();

বিলম্ব (অপেক্ষা);

জন্য (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; আমি <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, Wheel ((i+j) % 255)); // প্রতি তৃতীয় পিক্সেল চালু করুন} strip.show ();

বিলম্ব (অপেক্ষা);

জন্য (uint16_t i = 0; i <strip.numPixels (); i = i+3) {strip.setPixelColor (i+q, 0); // প্রতি তৃতীয় পিক্সেল বন্ধ করুন}}}}

// একটি রঙ মান পেতে একটি মান 0 থেকে 255 ইনপুট করুন।

// রং একটি রূপান্তর r - g - b - r থেকে ফিরে। uint32_t চাকা (বাইট WheelPos) {WheelPos = 255 - WheelPos; যদি (WheelPos <85) {return strip. Color (255 - WheelPos * 3, 0, WheelPos * 3); } যদি (WheelPos <170) {WheelPos -= 85; রিটার্ন স্ট্রিপ রঙ (0, হুইলপস * 3, 255 - হুইলপস * 3); } হুইলপস -= 170; রিটার্ন স্ট্রিপ রঙ (হুইলপস * 3, 255 - হুইলপস * 3, 0); }

অকার্যকর সুইচড () {

strip.show (); readSamples (); }

মন্তব্যে জবাই করার আগে (মনে রাখবেন ভালো লাগার নীতি !!) আমি আপলোড করার পরে বুঝতে পেরেছিলাম যে আমার কোডের কতটা স্লপি। উচ্চ জন্য পিন 4 এবং পিন 8 উভয়ই ক্রমাগত পরীক্ষা করার প্রয়োজন নেই। যেহেতু সুইচটি একক মেরু ডবল থ্রো, তাই একজনের মান অন্য থেকে অনুমান করা যায়: আপনাকে কেবল একটি পরীক্ষা করতে হবে। সুতরাং আপনি মিউজিক বাটন স্টেট পড়ার এবং লেখার প্রতিটি রেফারেন্সের মধ্য দিয়ে যেতে এবং সরিয়ে ফেলতে পারেন এবং যদি আপনার স্মৃতিশক্তি কম থাকে বা অন্যান্য রুটিনের সাথে প্রসারিত হয় তবে সোয়ার্লবটন স্টেট পরীক্ষা করে পুরো জিনিসটি আরও দক্ষতার সাথে চালান। কিন্তু উপরের কোডটি কাজ করে।

এবং যদি কেউ সেই অডিও রুটিনগুলিকে শুধু শব্দ মাত্রা নয় বরং ফ্রিকোয়েন্সি বুঝতে পারে এবং অডিও বর্ণালী বরাবর চলার প্রতিক্রিয়াতে হালকা বর্ণালীকে স্লাইড করার জন্য কিছু মসৃণ কোড লিখতে চায়, মন্তব্যগুলিতে একটি লিঙ্ক ড্রপ করুন আপনি এটা কিভাবে করেছেন।

উপভোগ করুন!

প্রস্তাবিত: