Vậy là bạn đã có:
R_x R_fixed
Vcc -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
Rx là một số điện trở không xác định (có thể là một loại cảm biến của một số loại). Và bạn đang sử dụng R_fixed ở mức 0,1% ngay bây giờ để tính R_x hiệu quả, nhưng bạn muốn sử dụng một điện trở cố định rẻ hơn với sai số thấp hơn có thể là 1%. Làm như vậy bạn muốn thực hiện một số loại hiệu chuẩn trong quá trình sản xuất để sửa lỗi tăng lên, đúng không?
Cách bạn kết thúc việc này là đặt một byte vào EEPROM (hoặc một số bộ nhớ không bay hơi khác) hoạt động như một "phần bù" trong tính toán của bạn và đó là một việc hoàn toàn khả thi. Vấn đề là nó sẽ khiến bạn mất một thời gian trong quá trình sản xuất để thực hiện hoạt động hiệu chuẩn. Để thực hiện hiệu chuẩn, bạn sẽ cần một trong những điện trở 0,1% đó (gọi là R_cal) có giá trị tương đương với điện trở 1% của bạn để thay thế vào mạch cho R_x. Đo V_sensed, bạn có thể suy ra chính xác hơn giá trị của R_fixed (nghĩa là tương đương 0,2%).
Nếu R_cal và R_fixed trên cùng một giá trị, bạn sẽ mong đợi V_sensed bằng Vcc / 2. Bạn sẽ lưu trữ độ lệch đo được từ Vcc / 2 dưới dạng byte bù hiệu chuẩn và luôn thêm nó vào V_sensed theo cảm nhận của ADC.
Điều đáng tiếc, như tôi thấy, là có một loạt các công việc liên quan đến việc thực hiện phép đo và sau đó là lưu trữ giá trị. Một điều khác được coi là một cạm bẫy là nhiệt độ có thể đóng một vai trò trong việc làm cho điện trở bị lệch khỏi giá trị danh nghĩa của nó, vì vậy bạn sẽ muốn có một môi trường hiệu chuẩn được kiểm soát nhiệt độ hợp lý. Cuối cùng, đừng quên sử dụng thiết bị đo đã hiệu chuẩn, vì đó là một lỗi phụ gia tiềm năng khác. Một điều đáng tiếc cuối cùng tôi có thể nghĩ đến là byte hiệu chuẩn nên được lưu trữ theo đơn vị lsb của ADC của bạn (vì vậy nếu bạn có ADC 12 bit, đơn vị byte bù hiệu chuẩn phải là "Vcc / 2 ^ 12 Volts") .
Biên tập
Nếu bạn đang sử dụng hai điện trở cố định để phân chia điện áp lớn xuống thang đo thấp hơn như sau:
R1_fixed R2_fixed
V_in -----^v^v^----+----^v^v^------- Gnd
|
|
+--- V_sensed --- ADC input
Phần chỉnh sửa lại
Vì vậy, bây giờ bạn muốn sử dụng một tham chiếu điện áp chính xác (gọi nó là V_cal) để kích thích V_in trong bước hiệu chỉnh trong sản xuất. Những gì bạn đã có là trên lý thuyết:
V_sensed = V_predicted = V_cal * R2_fixed / (R1_fixed + R2_fixed) = V_cal * slope_fixed
Nhưng những gì bạn có trong thực tế là:
V_sensed = V_measured = V_cal * R2_actual / (R1_actual + R2_actual) = V_cal * slope_actual
Trong thực tế, bạn có độ dốc hàm truyền khác nhau trong thực tế so với những gì bạn dự đoán từ các giá trị điện trở. Độ lệch so với hàm truyền phân chia dự đoán sẽ là tuyến tính đối với điện áp đầu vào và bạn có thể giả định rằng 0V in sẽ cung cấp cho bạn 0V, do đó, thực hiện một phép đo tham chiếu điện áp chính xác sẽ cung cấp cho bạn đủ thông tin để mô tả hệ số tỷ lệ tuyến tính này . Cụ thể là:
V_measured / V_predicted = slope_fixed / slope_actual
slope_actual = slope_fixed * V_measured / V_predicted
Và bạn sẽ sử dụng dốc_actual làm giá trị hiệu chỉnh của mình để xác định điện áp dưới dạng hàm của điện áp đo được.
bên dưới lịch sự của @markrages
Để có được độ nhạy dốc thực tế với các giá trị điện trở đòi hỏi phải phân biệt một phần: