সুচিপত্র:

1 টি পিন: 4 টি ধাপ ব্যবহার করে DIP টিউন নির্বাচক
1 টি পিন: 4 টি ধাপ ব্যবহার করে DIP টিউন নির্বাচক

ভিডিও: 1 টি পিন: 4 টি ধাপ ব্যবহার করে DIP টিউন নির্বাচক

ভিডিও: 1 টি পিন: 4 টি ধাপ ব্যবহার করে DIP টিউন নির্বাচক
ভিডিও: ব্লেড ব্যবহার করে কিভাবে সোলার প্যানেল তৈরি করবেন | How To Make Solar Panel At Home. 2024, নভেম্বর
Anonim
1 টি পিন ব্যবহার করে DIP টিউন নির্বাচক
1 টি পিন ব্যবহার করে DIP টিউন নির্বাচক

কিছুক্ষণ আগে আমি একটি "মিউজিক বক্স" প্রজেক্টে কাজ করেছি যা 10 টি ভিন্ন সুরের স্নিপেটের মধ্যে বেছে নিতে হবে। একটি নির্দিষ্ট সুর বাছাই করার জন্য একটি প্রাকৃতিক পছন্দ ছিল একটি 4 পিন ডিপ সুইচ যেহেতু 4 টি সুইচ 2 প্রদান করে4= 16 বিভিন্ন সেটিংস। যাইহোক, এই পদ্ধতির জন্য বর্বর বল প্রয়োগের জন্য 4 টি ডিভাইস পিন প্রয়োজন, প্রতিটি সুইচের জন্য একটি। যেহেতু আমি উন্নয়নের জন্য ATtiny85 ব্যবহার করার পরিকল্পনা করছিলাম, 4 পিনের ক্ষতি কিছুটা বেশি ছিল। সৌভাগ্যবশত, আমি একটি নিবন্ধে দৌড়েছি যা একাধিক সুইচ ইনপুটগুলি পরিচালনা করার জন্য 1 এনালগ পিন ব্যবহার করার জন্য একটি সহজ পদ্ধতি বর্ণনা করে।

মাল্টি-সুইচ; 1-ইনপুট কৌশলটি 16 টি সম্ভাব্য সুইচ সেটিং সংমিশ্রণের প্রত্যেকটির জন্য একটি অনন্য পূর্ণসংখ্যা মান প্রদানের জন্য একটি ভোল্টেজ ডিভাইডার সার্কিট ব্যবহার করে। 16 টি পূর্ণসংখ্যা শনাক্তকারীর এই সেটটি তখন অ্যাপ্লিকেশন প্রোগ্রামে একটি সেটিং এর সাথে একটি ক্রিয়া যুক্ত করতে ব্যবহৃত হয়।

এই নির্দেশযোগ্য সঙ্গীত বক্স অ্যাপ্লিকেশনের জন্য সুর নির্বাচন বাস্তবায়নের জন্য মাল্টি-সুইচ পদ্ধতি ব্যবহার করে। আরডুইনো টোন ফাংশন ব্যবহার করে নির্বাচিত সুরটি একটি পাইজো বাজারের মাধ্যমে বাজানো হয়।

ধাপ 1: প্রয়োজনীয় হার্ডওয়্যার

প্রয়োজনীয় হার্ডওয়্যার
প্রয়োজনীয় হার্ডওয়্যার

বাস্তবায়ন প্ল্যাটফর্ম হিসাবে ইউএনও এর ব্যবহার প্রয়োজনীয় হার্ডওয়্যার উপাদানগুলির সংখ্যা কমিয়ে দেয়। মাল্টি-সুইচ ইনপুট পদ্ধতি বাস্তবায়নের জন্য শুধুমাত্র একটি 4-পিন ডিপ সুইচ, ভোল্টেজ ডিভাইডারের জন্য ব্যবহৃত 5 টি প্রতিরোধক এবং সংযোগের জন্য হুকআপ তারের প্রয়োজন। মিউজিক বক্স টিউন সিলেক্টর বাস্তবায়নের জন্য কনফিগারেশনে একটি পাইজো বুজার যুক্ত করা হয়। Allyচ্ছিকভাবে, ব্যবহৃত ডিপ সুইচের প্রকারের উপর নির্ভর করে, ডিপ সুইচটিকে ব্রেডবোর্ডের সাথে সংযুক্ত করার জন্য 2x4 8 পিনের সকেট ব্যবহার করা সহায়ক কারণ যেহেতু স্ট্যান্ডার্ড ডিপ সুইচ পিনগুলি একটি পারফোর্ডে সোল্ডারিংয়ের জন্য তৈরি করা হয় বলে মনে হয় না সরাসরি একটি ব্রেডবোর্ডে প্লাগ করে। সকেট ডিপ সুইচ সংযোগগুলিকে স্থিতিশীল করে এবং টগল সুইচগুলি সেট করার সময় সুইচটিকে সহজে উত্তোলন করা থেকে বিরত রাখে।

নাম সম্ভাব্য উৎস কিভাবে ব্যবহার করা হয়
4-পিন ডিপ সুইচ সুর নির্বাচন
2x4 পিন সকেট (চ্ছিক) আমাজন বেশিরভাগ ডিপ সুইচের পোস্টগুলি সুইচটিকে ব্রেডবোর্ডে খুব ভালভাবে ধরে রাখে না। একটি সকেট সংযোগকে আরো শক্ত করতে সাহায্য করে। একটি বিকল্প হল একটি ডিপ সুইচ খুঁজে পাওয়া যা সত্যিই আইসি পিনের সাথে রুটিবোর্ড ব্যবহারের জন্য তৈরি করা হয়।

প্রতিরোধক:

  • 10K x2
  • 20 কে
  • 40 কে
  • 80 কে
ভোল্টেজ ডিভাইডার প্রয়োগ করুন
প্যাসিভ পাইজো বুজার আমাজন Arduino টোন ফাংশনের মাধ্যমে অ্যাপ্লিকেশন দ্বারা চালিত হিসাবে সুর চালান

ধাপ 2: মাল্টি-সুইচ পদ্ধতি ব্যাখ্যা

মাল্টি সুইচ পদ্ধতি ব্যাখ্যা
মাল্টি সুইচ পদ্ধতি ব্যাখ্যা

এই বিভাগটি মাল্টি-সুইচ পদ্ধতির অন্তর্নিহিত ধারণাগুলি নিয়ে আলোচনা করে এবং 16 টি সম্ভাব্য ডিপ সুইচ সেটিং কনফিগারেশনের প্রত্যেকের জন্য স্বতন্ত্র শনাক্তকারীর স্বতন্ত্র হিসাবের জন্য প্রয়োজনীয় সমীকরণগুলি বিকাশ করে। এই শনাক্তকারীগুলিকে একটি অ্যাপ্লিকেশন প্রোগ্রামে ব্যবহার করা যেতে পারে যাতে একটি কর্মের সাথে একটি সুইচ কনফিগারেশন যুক্ত করা যায়। উদাহরণস্বরূপ, আপনি সেটিংটি চাইতে পারেন - সুইচ 1 অন, সুইচ 2 অফ, সুইচ 3 অফ, সুইচ 4 অফ (1, 0, 0, 0) - অ্যামেজিং গ্রেস খেলতে এবং (0, 1, 0, 0) খেলতে সিংহ আজ রাতে ঘুমায়। সংক্ষিপ্ততা এবং সংক্ষিপ্ততার জন্য কনফিগারেশন শনাক্তকারীদের নথির বাকি অংশে তুলনাকারী হিসাবে উল্লেখ করা হয়।

ছবি
ছবি

মাল্টি-সুইচ পদ্ধতির ভিত্তিগত ধারণা হল ভোল্টেজ ডিভাইডার সার্কিট যা একটি ইনপুট ভোল্টেজের সাথে সংযুক্ত সিরিজ রেসিস্টারে 2 টি থাকে। আউটপুট ভোল্টেজ সীসা প্রতিরোধকের মধ্যে সংযুক্ত, আর1 এবং আর2, উপরে প্রদর্শিতভাবে. ডিভাইডার আউটপুট ভোল্টেজকে ইনপুট ভোল্টেজ হিসাবে গণনা করা হয় যা রোধকের অনুপাত দ্বারা গুণিত হয়2 R এর যোগফল1 এবং আর2 (সমীকরণ 1)। এই অনুপাত সবসময় 1 এর চেয়ে কম তাই আউটপুট ভোল্টেজ সবসময় ইনপুট ভোল্টেজের চেয়ে ছোট।

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

1/আর1 = 1/80000 + 1/40000 + 1/20000 + 1/10000

আর দেওয়া1 = 5333.33 ভোল্ট। বেশিরভাগ সেটিংসে কমপক্ষে একটি সুইচ বন্ধ থাকার জন্য অ্যাকাউন্টের জন্য, সুইচ অবস্থাটি গুণক হিসাবে ব্যবহৃত হয়:

1/আর1 = গুলি1*1/80000 + s2*1/40000 + s3*1/20000 + s4*1/10000 (2)

যেখানে রাজ্যের গুণক, গুলিআমি, সুইচ চালু থাকলে 1 এর সমান এবং সুইচ বন্ধ থাকলে 0 এর সমান। আর1 এখন সমীকরণ 1 এ প্রয়োজনীয় প্রতিরোধের অনুপাত গণনা করতে ব্যবহার করা যেতে পারে।

অনুপাত = আর2/(আর1+আর2) = 10000/(5333.33+10000) =.6522

অ্যানালগ রিড ফাংশনের প্রভাব অনুকরণ করার জন্য পূর্বাভাসিত তুলনামূলক মান গণনার শেষ ধাপ হল RATIO কে 1023 দ্বারা গুণ করা। সেই ক্ষেত্রে যেখানে সমস্ত সুইচ চালু আছে তার জন্য শনাক্তকারী

তুলনাকারী15 = 1023*.6522 = 667

16 টি সম্ভাব্য সুইচ সেটিংসের জন্য শনাক্তকারীদের গণনার জন্য এখন সমস্ত সমীকরণ রয়েছে। সংক্ষেপ:

  1. আর1 সমীকরণ 2 ব্যবহার করে গণনা করা হয়
  2. আর1 এবং আর2 সংশ্লিষ্ট প্রতিরোধের RATIO গণনা করতে ব্যবহৃত হয়
  3. তুলনামূলক মান পেতে RATIO 1023 দ্বারা গুণিত হয়
  4. বিকল্পভাবে, পূর্বাভাস দেওয়া আউটপুট ভোল্টেজটি RATIO*Vin হিসাবেও গণনা করা যেতে পারে

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

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

নিম্নলিখিত ডেমো প্রোগ্রাম তুলনাকারীদের বর্তমান ডিপ সুইচ সেটিং শনাক্ত করার ব্যবহার ব্যাখ্যা করে। প্রতিটি প্রোগ্রাম চক্রে বর্তমান কনফিগারেশনের জন্য একটি শনাক্তকারী পাওয়ার জন্য একটি এনালগ রিড করা হয়। এই আইডেন্টিফায়ারটি তুলনাকারী তালিকা জুড়ে তুলনা করা হয় যতক্ষণ না একটি ম্যাচ পাওয়া যায় বা তালিকাটি শেষ না হয়। যদি কোনো মিল পাওয়া যায়, যাচাইয়ের জন্য একটি আউটপুট বার্তা জারি করা হয়; না পেলে সতর্কতা জারি করা হয়। একটি 3 সেকেন্ড বিলম্ব লুপে ertedোকানো হয় যাতে সিরিয়াল আউটপুট উইন্ডো বার্তা দ্বারা আচ্ছন্ন না হয় এবং ডিপ সুইচ কনফিগারেশন পুনরায় সেট করার জন্য কিছু সময় দেয়।

//-------------------------------------------------------------------------------------

// ভোল্টেজ ডিভাইডার আউটপুট পড়ার জন্য ডেমো প্রোগ্রাম এবং এটি ব্যবহার করে // বর্তমান ডিপ সুইচ কনফিগারেশনটি সনাক্ত করতে আউটপুট ভ্যালু প্রতিটি সম্ভাব্য সেটিংয়ের জন্য // তুলনা মানগুলির একটি অ্যারেতে দেখে। লুকআপ অ্যারের মানগুলি // কনফিগারেশনের জন্য পূর্ববর্তী রান থেকে অথবা অন্তর্নিহিত সমীকরণের ভিত্তিতে গণনার মাধ্যমে // পেতে পারে। // ------------------------------------------------ -------------------------------------- int তুলনাকারী [16] = {0, 111, 203, 276, 339, 393, 434, 478, 510, 542, 567, 590, 614, 632, 651, 667}; // প্রক্রিয়াকরণ ভেরিয়েবল int dipPin = A0; // ভোল্টেজ ডিভাইডার ইনপুট int dipIn = 0 এর জন্য এনালগ পিন; // analogRead int count = 0 দ্বারা অনুবাদ করা বিভাজক ভোল্টেজ আউটপুট ধারণ করে; // লুপ কাউন্টার int epsilon = 7; // তুলনা ব্যবধান অর্ধ-প্রস্থ বুল dipFound = মিথ্যা; // সত্য যদি বর্তমান ভোল্টেজ ডিভাইডার আউটপুট সন্ধান টেবিল অকার্যকর সেটআপ () {pinMode (dipPin, INPUT) পাওয়া যায়; // একটি ইনপুট সিরিয়াল হিসাবে ভোল্টেজ ডিভাইডার পিন কনফিগার করুন (9600); // সিরিয়াল যোগাযোগ সক্ষম করুন} অকার্যকর লুপ () {বিলম্ব (3000); // খুব দ্রুত স্ক্রল করা থেকে আউটপুট রাখুন // সন্ধানের প্যারামিটার গণনা শুরু করুন = 0; dipFound = মিথ্যা; // বর্তমান আউটপুট ভোল্টেজ পড়ুন এবং ডকুমেন্ট করুন dipIn = analogRead (dipPin); সিরিয়াল.প্রিন্ট ("ডিভাইডার আউটপুট"); Serial.print (dipIn); // বর্তমান মানের জন্য তুলনাকারী তালিকা অনুসন্ধান করুন যখন ((গণনা <16) && (! Serial.print ("এন্ট্রিতে পাওয়া"); সিরিয়াল.প্রিন্ট (গণনা); Serial.println ("মান" + স্ট্রিং (তুলনাকারী [গণনা]); বিরতি; } গণনা ++; } যদি (! dipFound) {// মান টেবিলে নেই; Serial.println ("ওহো! পাওয়া যায় নি }}

ধাপ 3: তুলনাকারী স্প্রেডশীট

ছবি
ছবি

16 টি তুলনামূলক মানগুলির গণনা উপরে দেখানো স্প্রেডশীটে দেওয়া হয়েছে। সাথে থাকা এক্সেল ফাইলটি এই বিভাগের নীচে ডাউনলোডের জন্য উপলব্ধ।

স্প্রেডশীট কলাম এ-ডি ডিপ সুইচ প্রতিরোধক মান এবং 16 টি সম্ভাব্য সুইচ সেটিংস রেকর্ড করে। দয়া করে নোট করুন যে ফ্রিজিং ডিজাইন ডায়াগ্রামে দেখানো হার্ডওয়্যার ডিআইপি সুইচটি আসলে স্প্রেডশীটে দেখানো ডান থেকে বাম সংখ্যার পরিবর্তে বাম থেকে ডানে সংখ্যাযুক্ত। আমি এটি কিছুটা বিভ্রান্তিকর পেয়েছি কিন্তু বিকল্পটি তালিকার প্রথমটিতে "1" কনফিগারেশন (0, 0, 0, 1) রাখে না। কলাম E ভোল্টেজ ডিভাইডার সমতুল্য প্রতিরোধ R গণনা করতে পূর্ববর্তী বিভাগের সূত্র 2 ব্যবহার করে1 সেটিং এর জন্য। কলাম F এই ফলাফলটি ব্যবহার করে সংশ্লিষ্ট প্রতিরোধের RATIO গণনা করে, এবং, পরিশেষে, কলাম G, RATIO কে analogRead সর্বোচ্চ মান (1023) দ্বারা পূর্বাভাসিত তুলনামূলক মান পেতে গুণ করে। চূড়ান্ত 2 টি কলামে ডেমো প্রোগ্রামের একটি রান থেকে আসল মান এবং পূর্বাভাস এবং প্রকৃত মানের মধ্যে পার্থক্য রয়েছে।

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

ধাপ 4: একটি সুর বাজান

একটি সুর বাজান
একটি সুর বাজান

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

উপলব্ধ সুরের স্নিপেটগুলি একটি হেডার ফাইল, Tunes.h- এ রয়েছে, প্রয়োজনীয় সমর্থন কাঠামোর সংজ্ঞা সহ। প্রতিটি সুর নোট সম্পর্কিত কাঠামোর একটি অ্যারে হিসাবে সংজ্ঞায়িত করা হয় যাতে নোটের ফ্রিকোয়েন্সি এবং সময়কাল থাকে। নোট ফ্রিকোয়েন্সিগুলি একটি পৃথক হেডার ফাইল, Pitches.h- এ থাকে। প্রোগ্রাম এবং হেডার ফাইলগুলি এই বিভাগের শেষে ডাউনলোডের জন্য উপলব্ধ। তিনটি ফাইল একই ডিরেক্টরিতে রাখা উচিত।

নির্বাচন এবং শনাক্তকরণ নিম্নরূপ:

  1. "ব্যবহারকারী" পছন্দসই সুরের সাথে যুক্ত কনফিগারেশনে ডিপ সুইচ সেট করে
  2. প্রতিটি প্রোগ্রাম লুপ চক্র বর্তমান ডিপ সুইচ সেটিং এর শনাক্তকারী analogRead এর মাধ্যমে প্রাপ্ত হয়
  3. ধাপ 2 কনফিগারেশন শনাক্তকারী উপলব্ধ সুর তালিকায় প্রতিটি তুলনাকারীর সাথে তুলনা করা হয়
  4. যদি কোন ম্যাচ পাওয়া যায় তাহলে প্লে টিউন রুটিন টিউন নোট তালিকা অ্যাক্সেস করার জন্য প্রয়োজনীয় তথ্যের সাথে ডাকা হয়

    Arduino টোন ফাংশন ব্যবহার করে প্রতিটি নোট বাজারের মাধ্যমে বাজানো হয়

  5. যদি কোন মিল না পাওয়া যায়, কোন ব্যবস্থা নেওয়া হয় না
  6. 1-5 পুনরাবৃত্তি করুন

উপলব্ধ টিউনগুলির জন্য ডিআইপি সুইচ সেটিংস নীচের টেবিলে দেখানো হয়েছে যেখানে 1 মানে সুইচ চালু আছে, 0 সুইচ বন্ধ। মনে রাখবেন যেভাবে ডিপ সুইচ ওরিয়েন্টেড জায়গাগুলি বাম দিকের অবস্থানে 1 (80K রোধকের সাথে যুক্ত) সুইচ করে।

নাম সুইচ ঘ সুইচ 2 সুইচ 3 সুইচ 4
ড্যানি ছেলে 1 0 0 0
ছোট - ভাল্লুক 0 1 0 0
সিংহ আজ রাতে ঘুমায় 1 1 0 0
ঝামেলা কেউ জানে না 0 0 1 0
আশ্চর্যজনক অনুগ্রহ 0 0 0 1
শূন্যস্থান 1 0 0 1
মকিংবার্ড হিল 1 0 1 1

পাইজো বুজার থেকে সাউন্ড কোয়ালিটি অবশ্যই দুর্দান্ত নয় তবে এটি অন্তত স্বীকৃত। প্রকৃতপক্ষে যদি টোনগুলি পরিমাপ করা হয়, সেগুলি নোটের সঠিক ফ্রিকোয়েন্সিটির খুব কাছাকাছি। প্রোগ্রামে ব্যবহৃত একটি আকর্ষণীয় কৌশল হল PROGMEM নির্দেশিকা ব্যবহার করে ডিফল্ট ডেটা মেমরি বিভাগের পরিবর্তে ফ্ল্যাশ/প্রোগ্রাম মেমরি বিভাগে সুরের ডেটা সংরক্ষণ করা। ডেটা সেকশন প্রোগ্রাম প্রসেসিং ভেরিয়েবল ধারণ করে এবং এটি অনেক ছোট, ATTiny মাইক্রোকন্ট্রোলারগুলির জন্য প্রায় 512 বাইট।

প্রস্তাবিত: