সুচিপত্র:

Arduino থেকে সুপার ফাস্ট অ্যানালগ ভোল্টেজ: 10 টি ধাপ (ছবি সহ)
Arduino থেকে সুপার ফাস্ট অ্যানালগ ভোল্টেজ: 10 টি ধাপ (ছবি সহ)

ভিডিও: Arduino থেকে সুপার ফাস্ট অ্যানালগ ভোল্টেজ: 10 টি ধাপ (ছবি সহ)

ভিডিও: Arduino থেকে সুপার ফাস্ট অ্যানালগ ভোল্টেজ: 10 টি ধাপ (ছবি সহ)
ভিডিও: Thorium: An energy solution - THORIUM REMIX 2011 2024, জুলাই
Anonim
Image
Image

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

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

প্রথমে, আমি আপনাকে সার্কিট তৈরির প্রক্রিয়ার মাধ্যমে নির্দেশনা দেব। তাহলে আমি আপনাকে শিখাব কিভাবে আপনার নিজের ইমেজ যোগ করতে হয়। অবশেষে, আমি তত্ত্বটি উপস্থাপন করব যা এটিকে আরও দ্রুত করে তোলে।

আপনি যদি এই নির্দেশযোগ্য পছন্দ করেন, দয়া করে এটির জন্য ভোট দেওয়ার কথা বিবেচনা করুন!:)

ধাপ 1: সার্কিট নির্মাণ

সার্কিট নির্মাণ
সার্কিট নির্মাণ

সার্কিট তৈরি করতে, আপনার নিম্নলিখিতগুলির প্রয়োজন হবে:

ক) Atmel 16MHz ATmega328P- এর উপর ভিত্তি করে একটি Arduino, যেমন একটি Arduino Uno বা Arduino Nano।

b) মান R এর দুটি প্রতিরোধক যা কমপক্ষে 150Ω।

গ) C এর দুটি ক্যাপাসিটার যেমন C = 0.0015 / R, উদাহরণ:

  • R = 150Ω এবং C = 10µ
  • R = 1.5kΩ এবং C = 1µ
  • R = 15kΩ এবং C = 100nF
  • R = 150kΩ এবং C = 10nF

এই মানগুলি বেছে নেওয়ার কারণ দুটি গুণ। প্রাথমিকভাবে, আমরা Arduino এর পিনগুলিতে বর্তমান 40mA এর সর্বোচ্চ রেটযুক্ত বর্তমানের নিচে রাখতে চাই। 150V এর মান ব্যবহার করে 5V এর Arduino সাপ্লাই ভোল্টেজ ব্যবহার করলে বর্তমান 30mA পর্যন্ত সীমাবদ্ধ থাকে। R এর বড় মানগুলি বর্তমানকে হ্রাস করবে এবং তাই গ্রহণযোগ্য।

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

আরসি ধ্রুবক কেন গুরুত্বপূর্ণ তার আরও বিস্তারিত ব্যাখ্যা তত্ত্ব বিভাগে দেওয়া হবে, আমি আপনাকে দেখানোর পরে কিভাবে বিক্ষোভ সার্কিট একত্রিত করতে হয়।

ধাপ 2: অসিলোস্কোপ সেট আপ করা

অসিলোস্কোপ স্থাপন
অসিলোস্কোপ স্থাপন

প্রদর্শনের জন্য X/Y মোডে সেট করা একটি অসিলোস্কোপ প্রয়োজন। স্কিম্যাটিক্সে দেখানো হিসাবে পরীক্ষার লিডগুলি সংযুক্ত করা দরকার। আপনার অসিলোস্কোপ আমার থেকে আলাদা হবে, কিন্তু আমি আমার ইউনিটে X/Y মোড সেট আপ করার জন্য প্রয়োজনীয় পদক্ষেপগুলি অনুসরণ করব:

ক) চ্যানেল বি (এক্স অক্ষ) দ্বারা নিয়ন্ত্রিত অনুভূমিক সুইপ সেট করুন।

খ) অসিলোস্কোপকে দ্বৈত চ্যানেল মোডে সেট করুন।

c) উভয় চ্যানেলে ভোল্ট/ডিভ সেট করুন যাতে এটি 0V থেকে 5V পর্যন্ত ভোল্টেজ প্রদর্শন করতে পারে। আমি আমার 0.5V/ডিভিতে সেট করেছি।

ঘ) উভয় চ্যানেলে কাপলিং মোড ডিসিতে সেট করুন।

e) X এবং Y এর অবস্থান সামঞ্জস্য করুন যাতে Arduino বন্ধ হয়ে গেলে বিন্দুটি পর্দার নিচের বাম কোণে থাকে।

ধাপ 3: সফটওয়্যারটি ডাউনলোড করে রান করুন

Image
Image

Arduino সংগ্রহস্থলের জন্য ফাস্ট ভেক্টর ডিসপ্লে থেকে সফটওয়্যারটি ডাউনলোড করুন। সফটওয়্যারটি GNU Affero Public License v3 এর অধীনে লাইসেন্সপ্রাপ্ত এবং সেই লাইসেন্সের শর্তাবলীর অধীনে অবাধে ব্যবহার ও পরিবর্তন করা যেতে পারে।

Arduino IDE তে "fast-vector-display-arduino.ino" ফাইলটি খুলুন এবং আপনার Arduino এ আপলোড করুন। মুহূর্তের মধ্যে, আপনি আপনার অসিলোস্কোপ স্ক্রিনে একটি "শুভ নববর্ষ" অ্যানিমেশন দেখতে পাবেন।

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

ধাপ 4: আপনার নিজস্ব কাস্টম অঙ্কন তৈরি করুন

PWM এত ধীর কেন তা বুঝুন
PWM এত ধীর কেন তা বুঝুন

আপনি যদি নিজের অঙ্কন তৈরি করতে চান, তাহলে আপনি USER_PATTERN সংজ্ঞায়িত লাইনে Arduino স্কেচে পয়েন্ট কোঅর্ডিনেট পেস্ট করতে পারেন।

আমি দেখতে পেয়েছি যে ইঙ্কস্কেপ একটি কাস্টম অঙ্কন তৈরির জন্য একটি সুন্দর হাতিয়ার:

  1. একটি বড়, সাহসী ফন্ট যেমন ইমপ্যাক্ট ব্যবহার করে টেক্সট তৈরি করুন।
  2. পাঠ্য বস্তু নির্বাচন করুন এবং "পথ" মেনু থেকে "অবজেক্ট টু পাথ" নির্বাচন করুন।
  3. পৃথক অক্ষর নির্বাচন করুন এবং একটি সংযুক্ত আকৃতি করতে তাদের ওভারল্যাপ করুন
  4. "পথ" মেনু থেকে "ইউনিয়ন" নির্বাচন করুন তাদের একক বক্ররেখায় একত্রিত করুন।
  5. যদি কোন অক্ষরে ছিদ্র থাকে, তাহলে আয়তক্ষেত্রের টুল দিয়ে একটি আয়তক্ষেত্র আঁকুন এবং "পার্থক্য" টুল ব্যবহার করে কনট্যুর থেকে বিয়োগ করুন।
  6. নোডগুলি দেখানোর জন্য পাথটিতে ডাবল ক্লিক করুন।
  7. আয়তক্ষেত্র সমস্ত নোড নির্বাচন করুন এবং "নির্বাচিত নোড কর্নার তৈরি করুন" টুলটিতে ক্লিক করুন।
  8. SVG ফাইলটি সংরক্ষণ করুন।

গুরুত্বপূর্ণ বিষয় হল যে আপনার অঙ্কন একটি একক বন্ধ পথ এবং কোন গর্ত থাকা উচিত। নিশ্চিত করুন যে আপনার নকশায় প্রায় 130 পয়েন্টেরও কম আছে।

ধাপ 5: SVG ফাইল থেকে Arduino IDE- এ কোঅর্ডিনেটস আটকান

  1. SVG ফাইলটি খুলুন এবং স্থানাঙ্কগুলি অনুলিপি করুন। এগুলি "পাথ" উপাদানটিতে অন্তর্ভুক্ত করা হবে। সমন্বয় প্রথম জোড়া উপেক্ষা করা যেতে পারে; তাদের 0, 0 দিয়ে প্রতিস্থাপন করুন।
  2. "#Define USER_PATTERN" এর ঠিক পরে বন্ধনীর ভিতরে Arduino স্কেচে স্থানাঙ্কগুলি আটকান।
  3. সমস্ত স্পেসগুলি কমা দিয়ে প্রতিস্থাপন করুন, অন্যথায় আপনি একটি কম্পাইল ত্রুটি পাবেন। "প্রতিস্থাপন করুন এবং খুঁজুন" সরঞ্জামটি সহায়ক হতে পারে।
  4. কম্পাইল এবং চালান!
  5. যদি আপনার সমস্যা হয়, কোন ত্রুটির জন্য সিরিয়াল কনসোল দেখুন। বিশেষ করে, যদি আপনার প্যাটার্নে অভ্যন্তরীণ বাফারের জন্য অনেকগুলি পয়েন্ট থাকে তবে আপনি বার্তাগুলি দেখতে পাবেন। এই ধরনের ক্ষেত্রে, ছবিটি অতিরিক্ত ঝলকানি প্রদর্শন করবে।

ধাপ 6: PWM এত ধীর কেন তা বুঝুন

শুরু করার জন্য, আসুন একটি ক্যাপাসিটরের চার্জিং এর আচরণ পর্যালোচনা করি।

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

যখন আমরা একটি ক্যাপাসিটরের চার্জ করার জন্য পালস প্রস্থ মড্যুলেশন (PWM) ব্যবহার করি, তখন আমরা এর চেয়ে ভাল থাকি না। PWM এর সাহায্যে ভোল্টেজটি 0V এবং 5V এর মধ্যে দ্রুত স্যুইচ করে। অনুশীলনে, এর অর্থ হল আমরা দ্রুত ক্যাপাসিটরের মধ্যে চার্জ চাপানো এবং এটির কিছুটা আবার টেনে বের করার মধ্যে বিকল্প - এই ধাক্কা এবং টান বরং একটি বড় ধাপ এগিয়ে নিয়ে ম্যারাথন চালানোর চেষ্টা করার মতো এবং তারপরে একটু ধাপ পিছনে বারবার.

যখন আপনি এটিকে পুরোপুরি গড়েন, তখন PWM ব্যবহার করে একটি ক্যাপাসিটরের চার্জ দেওয়ার আচরণ ঠিক একই রকম হয় যদি আপনি ক্যাপাসিটরের চার্জ করার জন্য Vpwm এর একটি স্থির ভোল্টেজ ব্যবহার করেছিলেন। কাঙ্ক্ষিত ভোল্টেজের "যথেষ্ট পরিমাণে" পেতে আমাদের এখনও 5 RC সেকেন্ড সময় লাগে।

ধাপ 7: একটি থেকে বি, একটি দ্রুত বিট পান।

একটি থেকে বি, একটি দ্রুত বিট পান।
একটি থেকে বি, একটি দ্রুত বিট পান।

ধরুন আমাদের একটি ক্যাপাসিটর আছে যা ইতিমধ্যেই Va পর্যন্ত চার্জ করা আছে। ধরুন আমরা b এর নতুন মান লিখতে analogWrite () ব্যবহার করি। ভোল্টেজ Vb অর্জনের জন্য আপনাকে সর্বনিম্ন কত সময় অপেক্ষা করতে হবে?

যদি আপনি 5 আরসি সেকেন্ড অনুমান করেন, এটি দুর্দান্ত! 5 RC সেকেন্ড অপেক্ষা করে, ক্যাপাসিটরটি প্রায় Vb তে চার্জ হতে চলেছে। কিন্তু যদি আমরা চাই, আমরা আসলে একটু কম অপেক্ষা করতে পারি।

চার্জ বক্ররেখা দেখুন। আপনি দেখুন, ক্যাপাসিটর ইতিমধ্যে Va তে ছিল যখন আমরা শুরু করেছি। এর মানে হল যে আমাদের t_a সময় অপেক্ষা করতে হবে না। আমাদের কেবল তখনই হবে যদি আমরা ক্যাপাসিটরের শূন্য থেকে চার্জ করতাম।

তাই সেই সময়ের অপেক্ষা না করে, আমরা একটি উন্নতি দেখতে পাচ্ছি। সময় t_ab আসলে 5 RC এর চেয়ে একটু ছোট।

কিন্তু অপেক্ষা করুন, আমরা অনেক ভালো করতে পারি! V_b এর উপরে যে সমস্ত স্থান আছে তা দেখুন। এটা হল Vcc এর মধ্যে পার্থক্য, আমাদের জন্য উপলব্ধ সর্বোচ্চ ভোল্টেজ, এবং Vb যা আমরা পৌঁছাতে চাই। আপনি কি দেখতে পাচ্ছেন যে সেই অতিরিক্ত ভোল্টেজ আমাদেরকে যেখানে আমরা দ্রুত যেতে চাই সেখানে পৌঁছাতে সাহায্য করতে পারে?

ধাপ 8: টার্বো চার্জার দিয়ে এ থেকে বি তে যান

টার্বো চার্জার সহ এ থেকে বি তে যান!
টার্বো চার্জার সহ এ থেকে বি তে যান!

সেটা ঠিক. টার্গেট ভোল্টেজ V_b এ PWM ব্যবহার করার পরিবর্তে, আমরা এটিকে অনেক, অনেক কম সময়ের জন্য স্থির Vcc এ ধরে রাখি। আমি এটিকে টার্বো চার্জার পদ্ধতি বলি এবং এটি আমাদেরকে এমন জায়গায় নিয়ে যায় যেখানে আমরা সত্যিই যেতে চাই, সত্যিই দ্রুত! সময় বিলম্বের পরে (যা আমাদের গণনা করতে হবে), আমরা V_b এ PWM এ স্যুইচ করে ব্রেকগুলিতে স্ল্যাম করি। এটি লক্ষ্যকে ওভারশুট করা থেকে ভোল্টেজ রাখে।

এই পদ্ধতির সাহায্যে, ক্যাপাসিটরের ভোল্টেজকে V_a থেকে V_b এ পরিবর্তন করা সম্ভব, শুধু PWM ব্যবহার করার চেয়ে সময়ের একটি ভগ্নাংশে। এইভাবে আপনি জায়গা পান, বাবু!

ধাপ 9: কোডটি বুঝুন

কোড বুঝুন
কোড বুঝুন

একটি ছবির মূল্য হাজার শব্দের, তাই ডায়াগ্রামে ডেটা এবং কোডে সঞ্চালিত ক্রিয়াকলাপ দেখানো হয়। বাম থেকে ডানে:

  • গ্রাফিক্স ডেটা PROGMEM (অর্থাৎ ফ্ল্যাশ মেমোরি) -এ পয়েন্টের তালিকা হিসেবে সংরক্ষণ করা হয়।
  • অনুবাদ, স্কেলিং এবং ঘূর্ণন ক্রিয়াকলাপের যে কোনও সংমিশ্রণ একটি অ্যাফাইন রূপান্তর ম্যাট্রিক্সে একত্রিত হয়। প্রতিটি অ্যানিমেশন ফ্রেমের শুরুতে এটি একবার করা হয়।
  • পয়েন্টগুলি গ্রাফিক্স ডেটা থেকে এক এক করে পড়া হয় এবং প্রতিটি সঞ্চিত রূপান্তর ম্যাট্রিক্স দ্বারা গুণিত হয়।
  • রূপান্তরিত পয়েন্টগুলি একটি কাঁচি অ্যালগরিদমের মাধ্যমে খাওয়ানো হয় যা দৃশ্যমান এলাকার বাইরে যে কোনও পয়েন্ট কাটায়।
  • একটি আরসি বিলম্ব সন্ধান টেবিল ব্যবহার করে, পয়েন্টগুলি ড্রাইভিং ভোল্টেজ এবং সময় বিলম্বে রূপান্তরিত হয়। আরসি বিলম্ব সন্ধানের টেবিলটি EEPROM- এ সংরক্ষিত আছে এবং কোডের একাধিক রানের জন্য পুনরায় ব্যবহার করা যেতে পারে। প্রারম্ভকালে, আরসি লুকআপ টেবিল সঠিকতার জন্য পরীক্ষা করা হয় এবং কোন ভুল মান আপডেট করা হয়। EEPROM ব্যবহার মূল্যবান RAM মেমরি সংরক্ষণ করে।
  • ড্রাইভিং ভোল্টেজ এবং বিলম্ব ফ্রেম বাফারে নিষ্ক্রিয় ফ্রেমে লেখা হয়। ফ্রেম বাফারে একটি সক্রিয় ফ্রেম এবং একটি নিষ্ক্রিয় ফ্রেমের জন্য স্থান রয়েছে। একবার একটি সম্পূর্ণ ফ্রেম লেখা হলে, নিষ্ক্রিয় ফ্রেম সক্রিয় করা হয়।
  • একটি ইন্টারাপ্ট সার্ভিস রুটিন ক্রমাগত ভোল্টেজ ভ্যালু পড়ে এবং সক্রিয় ফ্রেম বাফার থেকে বিলম্বের মাধ্যমে ছবিটি পুনরায় আঁকে। এই মানগুলির উপর ভিত্তি করে, এটি আউটপুট পিনের শুল্ক-চক্র সামঞ্জস্য করে। টাইমার ১ টি সময় বিলম্বের পরিমাপের জন্য কয়েক ন্যানো সেকেন্ডের নির্ভুলতার জন্য ব্যবহৃত হয়, যখন টাইমার ২ টি পিনের ডিউটি চক্র নিয়ন্ত্রণের জন্য ব্যবহৃত হয়।
  • ভোল্টেজের সবচেয়ে বড় পরিবর্তনের পিনটি সর্বদা "টার্বো চার্জড" শূন্য বা 100%শুল্ক-চক্রের সাথে, দ্রুততম চার্জ বা স্রাবের সময় সরবরাহ করে। ভোল্টেজে কম পরিবর্তনের সাথে পিনটি প্রথম পিনের ট্রানজিশন টাইমের সাথে মেলে এমন একটি ডিউটি চক্রের সাহায্যে চালিত হয়-এই সময় মিলটি নিশ্চিত করা গুরুত্বপূর্ণ যে অসিলোস্কোপে লাইনগুলি সরাসরি টানা হয়।

ধাপ 10: দুর্দান্ত গতি সহ, দুর্দান্ত দায়িত্ব আসে।

যেহেতু এই পদ্ধতিটি PWM এর থেকে অনেক দ্রুত, কেন analogWrite () এটি ব্যবহার করে না? ঠিক আছে, কারণ শুধুমাত্র PWM ব্যবহার করা বেশিরভাগ প্রোগ্রামের জন্য যথেষ্ট ভাল এবং অনেক বেশি ক্ষমাশীল। "টার্বো চার্জার" পদ্ধতির জন্য অবশ্য সতর্ক কোডিং প্রয়োজন এবং এটি শুধুমাত্র নির্দিষ্ট ক্ষেত্রে উপযুক্ত:

  1. এটি সময়ের জন্য অত্যন্ত সংবেদনশীল। একবার আমরা টার্গেট ভোল্টেজ লেভেলে পৌঁছে গেলে, টার্গেট ভোল্টেজের ওভারশুটিং এড়াতে ড্রাইভিং পিনটি অবিলম্বে নিয়মিত PWM মোডে চালু করতে হবে।
  2. এর জন্য RC ধ্রুবক জ্ঞান প্রয়োজন, তাই এই মানগুলি অবশ্যই আগে প্রবেশ করতে হবে। ভুল মানগুলির সাথে, সময় ভুল হবে এবং ভোল্টেজগুলি ভুল হবে। নিয়মিত PWM এর সাথে, একটি গ্যারান্টি রয়েছে যে আপনি কিছু সময়ের পরে সঠিক ভোল্টেজের উপর স্থির হবেন, এমনকি RC ধ্রুবকটি জানা না থাকলেও।
  3. ক্যাপাসিটরের চার্জ করার জন্য সুনির্দিষ্ট সময়ের ব্যবধান গণনা করার জন্য লগারিদমিক সমীকরণ প্রয়োজন যা আরডুইনোতে রিয়েল-টাইম গণনার জন্য খুব ধীর। এগুলি প্রতিটি অ্যানিমেশন ফ্রেমের আগে প্রাক-গণনা করা উচিত এবং কোথাও স্মৃতিতে ক্যাশে করা উচিত।
  4. এই পদ্ধতির সাথে সম্পর্কিত প্রোগ্রামগুলি অবশ্যই এই সত্যের সাথে লড়াই করতে হবে যে বিলম্বগুলি খুব অ-রৈখিক (তারা আসলে, সূচকীয়)। Vcc বা GND এর কাছাকাছি টার্গেট ভোল্টেজগুলি মধ্যবিন্দুর কাছাকাছি ভোল্টেজের চেয়ে অনেক বেশি পরিমাণে অর্ডার নেবে।

এই সীমাবদ্ধতাগুলি অতিক্রম করতে, আমার ভেক্টর গ্রাফিক্স কোড নিম্নলিখিত জিনিসগুলি করে:

  1. এটি 16kHz এ টাইমার 1 এবং সুনির্দিষ্ট আউটপুট ম্যানিপুলেশন এবং টাইমিংয়ের জন্য একটি ইন্টারাপ্ট সার্ভিস রুটিন ব্যবহার করে।
  2. এটি ব্যবহার করার জন্য RC সময় ধ্রুবক একটি নির্দিষ্ট মান প্রয়োজন, ক্যাপাসিটর এবং প্রতিরোধক মান পছন্দ সীমিত।
  3. এটি মেমরি বাফারে একটি অ্যানিমেশন ফ্রেমে সমস্ত পয়েন্টের জন্য সময় বিলম্ব সঞ্চয় করে। এর মানে হল যে রুটিন যা সময়ের বিলম্ব গণনা করে তা আউটপুট পিন আপডেট করে এমন ইন্টারাপ্ট সার্ভিস রুটিনের তুলনায় অনেক ধীর গতিতে চলে। পরবর্তী ফ্রেমের জন্য বিলম্বের একটি নতুন সেট ব্যবহারের জন্য প্রস্তুত হওয়ার আগে যে কোনও ফ্রেম কয়েক ডজন বার আঁকা হতে পারে।
  4. একটি মেমরি বাফারের ব্যবহার প্রতি ফ্রেমে আঁকা যায় এমন পয়েন্টের সংখ্যার উপর সীমাবদ্ধতা রাখে। আমি উপলব্ধ RAM থেকে সর্বাধিক পেতে একটি স্থান দক্ষ এনকোডিং নিযুক্ত করি, কিন্তু এটি এখনও প্রায় 150 পয়েন্টের মধ্যে সীমাবদ্ধ। একশ বা তার বেশি পয়েন্ট ছাড়িয়ে, ডিসপ্লেটি যেভাবেই হোক ঝলকানি শুরু করবে, তাই এটি একটি মুট পয়েন্ট!

প্রস্তাবিত: