সুতরাং আপনি পেয়েছেন:
R_x R_fixed
Vcc -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
আরএক্স হ'ল কিছু অজানা প্রতিরোধ (সম্ভবত কোনও প্রকারের সেন্সর)। আর আপনি কার্যকরভাবে আর_এক্স গণনা করতে এখনই 0.1% এ আর_ফিক্সড ব্যবহার করছেন তবে আপনি সম্ভবত 1% এর কম সহনশীলতার সাথে একটি সস্তা ফিক্সড রেজিস্টার ব্যবহার করতে চান want এমনটি করে আপনি বর্ধিত ত্রুটির জন্য উত্পাদনের সময় এক ধরণের ক্রমাঙ্কন সম্পাদন করতে চান, এটি কি ঠিক?
আপনি যেভাবে এটি শেষ করেছেন তা হ'ল EEPROM (বা অন্য কোনও অ-উদ্বায়ী মেমরি) এ একটি বাইট স্থাপন করা যা আপনার গণনায় "অফসেট" হিসাবে কাজ করে এবং এটি করা একেবারে কার্যকরী জিনিস। জিনিসটি ক্রমাঙ্কন ক্রিয়াকলাপটি করতে উত্পাদনের সময় আপনার কিছুটা সময় ব্যয় করবে। ক্রমাঙ্কনটি করার জন্য, আপনাকে আর_এক্সের সার্কিটের বিকল্প হিসাবে স্থানান্তর করতে আপনার 1% রেজিস্টরের সাথে নামমাত্র তুলনামূলক মানটির 0.1% প্রতিরোধকগুলির (একে আর_ক্যাল কল করুন) প্রয়োজন। ভি_সেন্সড পরিমাপ করে আপনি আরও স্পষ্টভাবে আর_ফিক্সডের মান নির্ধারণ করতে পারেন (অর্থাত্ 0.2% এর মতো কিছু)।
যদি আর_সিএল এবং আর_ফিক্সড নামমাত্র একই মান হয় তবে আপনি V_sensed ভিসি / ২ এর সমান হওয়ার প্রত্যাশা করবেন আপনি ভিসি / 2 থেকে পরিমাপকৃত বিচ্যুতিটি একটি ক্রমাঙ্কন অফসেট বাইট হিসাবে সংরক্ষণ করবেন এবং আপনার এডিসির দ্বারা অনুমিত হিসাবে এটি সর্বদা ভি_সেনসে যুক্ত করবেন।
সমস্যাটি, যেমনটি আমি দেখছি, এটি হ'ল পরিমাপটি করার জন্য এবং পরে মানটি সংরক্ষণের সাথে জড়িত কাজগুলি রয়েছে। সমস্যা হিসাবে বিবেচনা করার মতো আরেকটি বিষয় হ'ল তাপমাত্রা এর নামমাত্র মূল্য থেকে বিচ্যুত হওয়ার প্রতিরোধের কারণ হতে পারে, সুতরাং আপনি তাপমাত্রা নিয়ন্ত্রিত তাপমাত্রা নিয়ন্ত্রন পরিবেশ চান। পরিশেষে পরিমাপক পরিমাপ সরঞ্জাম ব্যবহার করতে ভুলবেন না, কারণ এটি অ্যাডিটিভ ত্রুটির আরও সম্ভাব্য উত্স। একটি শেষ পরিণতি আমি ভাবতে পারি যে ক্যালিগ্রেশন বাইটটি আপনার এডিসির lsb এর ইউনিটগুলিতে সংরক্ষণ করা উচিত (সুতরাং আপনার যদি 12-বিট এডিসি থাকে তবে ক্যালিব্রেশন অফসেট বাইটের ইউনিটগুলি "ভিসি / 2 ^ 12 ভোল্ট" হওয়া উচিত) ।
সম্পাদন করা
আপনি যদি একটি বৃহত ভোল্টেজকে নীচে নিম্ন স্কেলে বিভক্ত করতে দুটি স্থির প্রতিরোধকের ব্যবহার করে থাকেন:
R1_fixed R2_fixed
V_in -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
পুনরায় সম্পাদিত বিভাগ
সুতরাং এখন আপনি উত্পাদনের ক্রমাঙ্কন পদক্ষেপের সময় ভি_ইনকে উদ্দীপিত করতে একটি নির্ভুল ভোল্টেজ রেফারেন্স (একে V_cal কল করুন) ব্যবহার করতে চান। আপনি যা পেয়েছেন তা তত্ত্বের মধ্যে রয়েছে:
V_sensed = V_predicted = V_cal * R2_fixed / (R1_fixed + R2_fixed) = V_cal * slope_fixed
তবে আপনি বাস্তবে যা পেয়েছেন তা হ'ল:
V_sensed = V_measured = V_cal * R2_actual / (R1_actual + R2_actual) = V_cal * slope_actual
বাস্তবে আপনি প্রতিরোধকের মানগুলি থেকে কী ভবিষ্যদ্বাণী করবেন তার চেয়ে বাস্তবে আপনার আলাদা ট্রান্সফার ফাংশন slাল রয়েছে। পূর্বাভাসক বিভাজন স্থানান্তর ফাংশন থেকে বিচ্যুতি ইনপুট ভোল্টেজের ক্ষেত্রে রৈখিক হবে এবং আপনি নিরাপদে ধরে নিতে পারেন যে 0 ভি আপনাকে 0 ভি প্রদান করবে, সুতরাং একটি নির্ভুল ভোল্টেজ রেফারেন্স পরিমাপ আপনাকে এই লিনিয়ার স্কেল ফ্যাক্টরের বৈশিষ্ট্যযুক্ত করার জন্য পর্যাপ্ত তথ্য দেবে । যথা:
V_measured / V_predicted = slope_fixed / slope_actual
slope_actual = slope_fixed * V_measured / V_predicted
এবং ভোল্টেজ পরিমাপের কোনও ফাংশন হিসাবে ভোল্টেজ নির্ধারণ করতে আপনি আপনার ক্যালিব্রেটেড মান হিসাবে স্লোপ_্যাকটিউয়াল ব্যবহার করবেন।
@ চিহ্নের সৌজন্যে নীচে
প্রতিরোধকের মানগুলিতে আসল opeাল সংবেদনশীলতা পেতে আংশিক পার্থক্য প্রয়োজন: