PortDock

아날로그 입력 스케일링 — ADC 원시값을 bar·°C 같은 공학값으로

4–20mA·0–10V 센서 신호를 션트 저항·분압으로 ADC 에 넣고, 원시 코드를 직선 비례로 공학값으로 바꾸는 법. 1카운트의 크기, 상한 잘림, 단선 판정, PLC 카운트까지.

이 글에서 쓰는 도구Plot 윈도우 프로그램 · 무료Modbus Master 윈도우 프로그램 · 무료ADC 분해능·스케일링 계산기 웹 · 설치 없음4–20mA 환산 계산기 웹 · 설치 없음

압력 전송기·온도 변환기 같은 센서는 값을 4–20 mA 나 0–10 V 로 내보냅니다. 이것을 MCU 의 ADC, PLC 아날로그 입력 모듈, 패널 미터가 숫자로 바꾸고, 그 숫자를 다시 bar·°C 로 되돌리는 것이 «스케일링» 입니다. 단계는 늘 같습니다: 신호 → ADC 입력 전압 → ADC 코드 → 공학값. 각 단계가 일차식이라 양 끝 두 점만 알면 됩니다.

4–20 mA 가 150 Ω 션트에서 0.6–3.0 V 가 되고, 12비트 3.3 V ADC 에서 1 LSB 0.806 mV 로 나눠 코드 745–3724, 직선 비례로 0–10 bar 가 되는 흐름
4–20 mA 압력 전송기(0–10 bar)를 150 Ω 션트와 12비트 3.3 V ADC 로 읽는 예. 쓰는 코드는 4096 단계가 아니라 약 2979 개입니다.

1. 신호를 ADC 입력 전압으로

전류 신호는 션트 저항 하나로 전압이 됩니다(V = I × R). 0–10 V 같은 전압 신호는 ADC 기준 전압보다 크면 분압으로 줄입니다. 어느 쪽이든 상한 신호의 전압이 기준 전압보다 조금 낮게 고르는 것이 요점입니다.

션트 저항4 mA20 mA기준 전압결과
150 Ω0.6 V3.0 V3.3 V위로 약 9 % 여유 — 코드 끝(4095)은 약 22 mA
165 Ω0.66 V3.3 V3.3 V20 mA 가 정확히 풀스케일 — 그 위는 잘림
250 Ω1 V5 V5 V20 mA 가 정확히 풀스케일 — 그 위는 잘림

상한에 여유가 없으면 20 mA 를 조금만 넘는 값도 코드 끝에 붙어, «딱 상한» 과 «상한 초과» 를 구별할 수 없습니다. 0–10 V 를 3.3 V ADC 로 받을 때는 분압비 0.3(10 V → 3.0 V)처럼 같은 여유를 둡니다. 분압 저항의 표준 값은 분압 저항 계산기로 고릅니다.

2. 전압을 코드로

1 LSB = V_REF ÷ 2^N                     (Microchip AN693)
코드  = ⌊V_IN × 2^N ÷ V_REF⌋, 최댓값 2^N − 1   (ATmega328P §23.7 을 N비트로)

12비트, 3.3 V → 1 LSB = 0.806 mV
0.6 V → 744.7,  3.0 V → 3723.6      ← 쓰는 코드 약 2979 개

12비트라고 4096 단계를 모두 쓰지는 않습니다. 4 mA 아래(0~0.6 V)와 20 mA 위(3.0~3.3 V)를 빼면 약 2979 개이고, 0–10 bar 라면 1카운트는 약 0.0034 bar 입니다. 이것이 이 회로의 실제 분해능입니다. Microchip AN693 은 이상적인 변환기도 양자화 오차가 최대 ±½ LSB 이고, 실제 변환기는 오프셋·이득 오차와 비직선성(DNL·INL)이 더해진다고 설명합니다 — 1 LSB 는 «구별할 수 있는 단계» 이지 정확도가 아닙니다.

3. 코드를 공학값으로 — 두 점 직선

공학값 = 하한 + (코드 − 코드_하한) ÷ (코드_상한 − 코드_하한) × (상한 − 하한)

코드 2234 → 0 + (2234 − 744.7) ÷ (3723.6 − 744.7) × 10 = 5.00 bar   (12 mA)
코드신호공학값 (0–10 bar)
00 mA−2.50 bar (단선·전원 없음)
7454.00 mA0.00 bar
14898.00 mA2.50 bar
223412.00 mA5.00 bar
297916.00 mA7.50 bar
372420.00 mA10.00 bar
409522.0 mA11.25 bar (코드 끝)

4. 범위 밖과 단선

4–20 mA 는 0 이 아니라 4 mA 에서 시작하므로, 하한보다 한참 낮은 값(위 표의 코드 0 근처)은 «0 bar» 가 아니라 단선이나 전송기 전원 문제입니다. 상한 위 값도 «측정 범위 밖» 으로 따로 보여 주는 편이 좋습니다. 어디부터를 고장으로 볼지(NAMUR NE 43 경계 등)는 4–20mA 환산 계산기에 정리돼 있습니다.

5. 노이즈와 입력 필터

ATmega328P 데이터시트(§23.6.1)는 ADC 가 출력 임피던스 약 10 kΩ 이하의 신호에 맞춰져 있고, 나이퀴스트 주파수(f_ADC/2)보다 높은 성분은 입력 전에 저역 필터로 없애라고 권합니다. 션트 전압에 RC 필터를 두면 τ = R × C 만큼 응답이 늦어지므로, 필요한 응답 속도와 함께 RC 시정수 계산기로 고릅니다. 소프트웨어에서 여러 번 읽어 평균하는 방법도 흔합니다.

장비가 이미 바꿔서 주는 값

PortDock 에서는

작성 2026-10-23