আমার বন্ধু এবং আমি শেখার উদ্দেশ্যে একটি সার্বজনীন লার্নিং রিমোট কন্ট্রোলার এর মতো তৈরি করতে চাই । আমরা মূলত যা করতে চাই তা হ'ল ইনফ্রারেড ডালগুলি সঞ্চয় এবং পুনরায় চালানো।
আমরা 36kHz, 38kHz এবং 40kHz সংকেত সনাক্ত করতে চাই। একটি 40kHz সিগন্যালটির সময়কাল 25 এস হবে।
আমরা একটি 8-বিট পিআইসি মাইক্রোকন্ট্রোলার ব্যবহার করতে চাই, আপাতত আমরা PIC16F616 নির্বাচন করেছি, যা 20 মেগাহার্জ হাই স্পিডের স্ফটিক দোলকটিতে চলবে। আমাদের দুটি বিকল্প উপলব্ধ রয়েছে:
Interrupt On Change
মডিউলটি ব্যবহার করুন ।- সিসিপি মডিউলটির ক্যাপচার মোড ব্যবহার করুন।
প্রথম বিকল্পটি নিম্নরূপ হবে:
ধরে একটি রেজিস্টার হিসাবে সেট হয়: unsigned char _10_us = 0;
। এই রেজিস্টার সময় রাখা হবে। পিরিয়ড রেজিস্টার সহ টিএমআর 2 মডিউল প্রতি 10 সেকেন্ডে একটি বাধা তৈরি করতে সেট করা হয় । যখন কোনও বাধা ঘটে তখন তা নিবন্ধকে বাড়িয়ে দেয় এবং প্রস্থান করে। এটি সর্বোচ্চ 2.55msec সময় দেবে। যদি আরও সময় পরিমাপের প্রয়োজন হয় তবে অতিরিক্ত রেজিস্ট্রারগুলি যেমন প্রয়োজন হিসাবে সংজ্ঞায়িত করা যায় এবং বাড়ানো যায়।_10_us
_1_ms
এখন, প্রতিবার যে কোনও ধরণের পরিবর্তন (উচ্চ-থেকে-নিচু বা নিম্ন-থেকে-উচ্চ) দ্বারা একটি বাধা তৈরি করা হয়েছে, প্রোগ্রামটি বর্তমান সময়ের নোট করবে, এটিই _10_us
নিবন্ধকের মান । কিছুক্ষণ পরে, যখন পরবর্তী বাধা তৈরি করা হবে, প্রোগ্রামটি _10_us
রেজিস্টার থেকে সংরক্ষিত মানকে বিয়োগ করবে এবং এভাবে 10 the সেকেন্ডের একক সহ এখন সময় নেওয়া হবে ।
এই বিকল্পটি আমাকে আমার মাথা আঁচড়ান; টিএমআর 2 বিঘ্ন প্রতি 50 টি নির্দেশের মধ্যে ঘটবে। বাধা হ্যান্ডলিং প্রায় 20 টি নির্দেশনা নেবে। আমার কাছে পিরিয়ডটি গণনা করতে এবং একটি অ্যারেতে সংরক্ষণ করার জন্য 30 টি নির্দেশাবলী রেখে গেছে। এই পদ্ধতি কি কাজ করবে?
দ্বিতীয় বিকল্পটি নিম্নরূপ হবে:
সিসিপি মডিউলটির ক্যাপচার মোডটি সেট আপ করুন যাতে কোনও ইভেন্ট (উচ্চ-নীচু) সিসিপি 1 পিনে ঘটলে এটি একটি বাধা তৈরি করে। বিঘ্নিত রুটিনে এটি একটি পতাকা সেট করবে যাতে প্রোগ্রামের কোনও কাজ গণনা করতে পারে (যদি প্রয়োজন হয়) এবং সিসিপিআর 1 এইচ (সম্ভবত প্রয়োজন হবে না) এবং সিসিপিআর 1 এল এর মান সংরক্ষণ করতে পারে। তারপরে আমরা ক্যাপচার মোডের কনফিগারেশনটি পরিবর্তন করব যাতে নিম্ন-থেকে-উচ্চতর প্রান্তটি ঘটলে এটি বিঘ্ন ঘটায়। এবং তারপরে এটি পরবর্তী ইভেন্টের জন্য অপেক্ষা করবে। আমি এই পদ্ধতির পারফরম্যান্সটি অনুমান করতে পারি না যেহেতু আমি কখনই এটি ব্যবহার করি নি।
আরেকটি বিকল্প?
আমরা ইনফ্রারেড ডেমোডুলেটর আইসি যেমন TSOP17xx সিরিজ ব্যবহার করতে পারি । এটি আমাদের সমস্যাটিকে সম্পূর্ণ সমাধান করবে solve তবে কিছু প্রশ্ন মাথায় আসে।
আমাদের পড়ার দূরত্বের প্রয়োজনীয়তা খুব বেশি নয়; 1 মিটার (~ 3 ফুট)। যদি আমরা একটি টিএসওপি 1738 নির্বাচন করি যা বোঝায় 38kHz এ কাজ করা হয়, তবে 36kHz এবং 40kHz সংকেত দিয়ে এই কাজটি কতটা ভাল হবে?
TSOP17xx সিরিজের ডেটাশিটের পৃষ্ঠা 4 "দায়বদ্ধতার ফ্রিকোয়েন্সি নির্ভরতা" গ্রাফ দেখায়। আমরা যতদূর বুঝতে পেরেছি;
- 40kHz, যা 38kHz এর 1.053 ডলার, a 0.6 এর তুলনামূলকভাবে দায়িত্বশীলতা দেবে।
- 36kHz, যা 38kHz এর 0.95 ডলার, relative 0.65 এর আপেক্ষিক দায়িত্বশীলতা দেবে।
এই মান এর অর্থ কী? আমরা কি কোনও TSOP1738 ব্যবহার করতে পারি এবং ভাল হতে পারি?