तो आपको मिल गया है:
R_x R_fixed
Vcc -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
Rx कुछ अज्ञात प्रतिरोध (शायद किसी प्रकार का सेंसर) है। और आप अभी R_xed का उपयोग 0.1% पर कर रहे हैं ताकि R_x की प्रभावी रूप से गणना की जा सके, लेकिन आप 1% की कम सहिष्णुता के साथ एक सस्ता फिक्स्ड रेसिस्टर का उपयोग करना चाहते हैं। ऐसा करने में आप बढ़ी हुई त्रुटि को सुधारने के लिए उत्पादन के दौरान किसी तरह का अंशांकन करना चाहते हैं, क्या यह सही है?
जिस तरह से आप इसे समाप्त करते हैं, वह EEPROM (या कुछ अन्य गैर-वाष्पशील मेमोरी) में एक बाइट डाल रहा है जो आपकी गणना में "ऑफसेट" के रूप में कार्य करता है, और यह पूरी तरह से व्यवहार्य चीज़ है। अंशांकन गतिविधि करने के लिए उत्पादन के दौरान यह कुछ समय आपको खर्च करने वाला है। अंशांकन करने के लिए, आपको R_x के लिए सर्किट में स्थानापन्न करने के लिए अपने 1% रोकनेवाला के लिए नाममात्र तुलनीय मूल्य के उन 0.1% प्रतिरोधों (इसे R_cal कहते हैं) की आवश्यकता होगी। V_sensed को मापते हुए, आप R_fixed के मान को अधिक सटीक रूप से अनुमान लगा सकते हैं (अर्थात 0.2% की तरह कुछ)।
यदि R_cal और R_fixed मुख्य रूप से समान मान हैं, तो आप V_saded को Vcc / 2 के बराबर होने की अपेक्षा करेंगे। आप Vcc / 2 से मापा विचलन को अंशांकन ऑफ़सेट बाइट के रूप में संग्रहीत करेंगे, और इसे हमेशा अपने ADC के अनुसार V_sered में जोड़ें।
जैसा कि मैंने देखा है, नुकसान यह है कि माप को करने और बाद में मूल्य को संग्रहीत करने में शामिल काम का एक गुच्छा है। एक और बात के रूप में विचार करना है कि तापमान नाममात्र मूल्य से विचलन करने के लिए एक प्रतिरोध पैदा करने में भूमिका निभा सकता है, इसलिए आप एक उचित रूप से अच्छी तरह से तापमान नियंत्रित अंशांकन वातावरण चाहते हैं। अंत में कैलिब्रेटेड माप उपकरण का उपयोग करना न भूलें, क्योंकि यह एडिटिव एरर का एक और संभावित स्रोत है। एक अंतिम नुकसान मैं यह सोच सकता हूं कि अंशांकन बाइट को आपके ADC के lsb की इकाइयों में संग्रहीत किया जाना चाहिए (इसलिए यदि आपके पास 12-बिट ADC है, तो अंशांकन ऑफसेट बाइट की इकाइयां "Vcc / 2" 12 वोल्ट "होनी चाहिए) ।
संपादित करें
यदि आप एक बड़े वोल्टेज को निम्न स्तर पर विभाजित करने के लिए दो स्थिर प्रतिरोधों का उपयोग कर रहे हैं:
R1_fixed R2_fixed
V_in -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
फिर से संपादित अनुभाग
तो अब आप उत्पादन में एक अंशांकन कदम के दौरान V_in को प्रोत्साहित करने के लिए एक सटीक वोल्टेज संदर्भ (इसे 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
वास्तव में आपके पास एक अलग हस्तांतरण फ़ंक्शन ढलान है जो कि आप प्रतिरोधक मानों से भविष्यवाणी करेंगे। पूर्वानुमानित विभक्त ट्रांसफर फ़ंक्शन से विचलन इनपुट वोल्टेज के संबंध में रैखिक होगा, और आप सुरक्षित रूप से मान सकते हैं कि 0V आपको 0V से बाहर कर देगा, इसलिए एक सटीक वोल्टेज संदर्भ माप बनाने से आपको इस रैखिक पैमाने कारक को चिह्नित करने के लिए पर्याप्त जानकारी मिलनी चाहिए । अर्थात्:
V_measured / V_predicted = slope_fixed / slope_actual
slope_actual = slope_fixed * V_measured / V_predicted
और आप मापे गए वोल्टेज के एक फंक्शन के रूप में वोल्टेज को निर्धारित करने के लिए अपने कैलिब्रेटेड वैल्यू के रूप में स्लोप_एक्चुअल का उपयोग करेंगे।
@markrages के सौजन्य से नीचे
रोकनेवाला मानों के लिए वास्तविक ढलान संवेदनशीलता प्राप्त करने के लिए आंशिक भेदभाव की आवश्यकता होती है: