একটি 8-বিট PIC ব্যবহার করে কোনও আইআর সিগন্যালের ডাল প্রস্থ কীভাবে পরিমাপ করা যায়?


14

আমার বন্ধু এবং আমি শেখার উদ্দেশ্যে একটি সার্বজনীন লার্নিং রিমোট কন্ট্রোলার এর মতো তৈরি করতে চাই । আমরা মূলত যা করতে চাই তা হ'ল ইনফ্রারেড ডালগুলি সঞ্চয় এবং পুনরায় চালানো।

আমরা 36kHz, 38kHz এবং 40kHz সংকেত সনাক্ত করতে চাই। একটি 40kHz সিগন্যালটির সময়কাল 25 এস হবে।μ

আমরা একটি 8-বিট পিআইসি মাইক্রোকন্ট্রোলার ব্যবহার করতে চাই, আপাতত আমরা PIC16F616 নির্বাচন করেছি, যা 20 মেগাহার্জ হাই স্পিডের স্ফটিক দোলকটিতে চলবে। আমাদের দুটি বিকল্প উপলব্ধ রয়েছে:

  1. Interrupt On Changeমডিউলটি ব্যবহার করুন ।
  2. সিসিপি মডিউলটির ক্যাপচার মোড ব্যবহার করুন।

প্রথম বিকল্পটি নিম্নরূপ হবে:

ধরে একটি রেজিস্টার হিসাবে সেট হয়: 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 ব্যবহার করতে পারি এবং ভাল হতে পারি?


কেন কেবল একটি সফ্টওয়্যার লুপ লিখবেন না যা ডালের মধ্যে কত লুপ গণনা করে?
রকেটম্যাগনেট

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

উত্তর:


11

0.65

পিকের পারফরম্যান্স নিয়ে চিন্তা করবেন না। TSOP1738 38 kHz সিগন্যাল আউটপুট দেয় না। এটি বাহক ফ্রিকোয়েন্সি, যা বেসব্যান্ড সিগন্যালটি ফিরে পাওয়ার জন্য TSOP1738 দ্বারা মুছে ফেলা হয়েছে, যার মধ্যে অনেক কম ফ্রিকোয়েন্সি রয়েছে, 1 এমএসের ক্রমে ডাল সময়কাল সহ, তাই সঠিকভাবে প্রান্তগুলির মধ্যে সময় নির্ধারণ করার জন্য প্রচুর সময় রয়েছে।

নিম্নলিখিত স্কোপ চিত্রগুলি এটি চিত্রিত করে:

এখানে চিত্র বর্ণনা লিখুন

এটি একটি আরসি 5 কোড। উপরের সিগন্যালটি হ'ল 36 kHz মডুলেটেড সিগন্যাল, নীচের আসল কোড সহ বেসব্যান্ড সিগন্যাল।

এখানে চিত্র বর্ণনা লিখুন

এটি বেসব্যান্ড সিগন্যালের একটি ডালে জুম করা হয়। আপনি 36 kHz ক্যারিয়ারের পৃথক ডাল দেখতে পারেন।

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

40 kHz: 25 µs
38 kHz: 26.3 36s
36 kHz: 27.8 µs

একটি 20 মেগাহার্জ পিআইসি 16 এফ 1616 এর 200 এনএসের একটি নির্দেশ চক্র রয়েছে (এটি ঘড়িকে 4 দ্বারা ভাগ করে দেয়)। সুতরাং তিনটি ফ্রিকোয়েন্সিগুলির জন্য পঠনগুলি প্রায় 125, 131 এবং 139 এর মতো হওয়া উচিত them এগুলি আলাদা করে বলাই যথেষ্ট। তবে আপনি যদি চান তবে আপনি বেশ কয়েকটি প্রান্তটি পাস করতে পারবেন এবং কেবল 10 ম বাধা দেওয়ার পরে টাইমারটি পড়তে পারেন, উদাহরণস্বরূপ: 1250, 1316, 1389 too বেশি দিন নয় কারণ আপনাকে বেসব্যান্ড সিগন্যালের একটি পালসের চেয়ে সময় কম রাখতে হবে have ।

সফল!


ধন্যবাদ এখন, শিথিল। আমি অনেকদিন আগে TSOP1738 এর উপর ভিত্তি করে একটি "আইআর লার্নার" তৈরি করেছি, তবে এটি একটি গোলমাল ছিল।
আবদুল্লাহ কাহরামান
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.