[아두이노] 가변저항 튜너 + 저항 형태의 온도센서와 보정 필요성에 대한 이해
아두이노와 NTC 서미스터를 이용해 생육 챔버나 스마트팜용 온도계를 만들 때, 단순히 전압을 읽어 map() 함수로 변환하면 반드시 실패합니다. 우리의 목표는 온도->전압 함수의 정확한 역함수(전압->온도)를 구하는 것입니다. 정밀한 제어를 위해서는 다음 3단계 공정이 필요합니다: 하드웨어(가변저항) → 수학(로그) → 보정(투 포인트) 이 과정을 👉 "세상에 하나뿐인 나만의 정밀 자(Scale)를 만드는 과정" 으로 비유해 보겠습니다. 1️⃣ 가변저항: 눈금을 진하고 촘촘하게 (Resolution 확보) 가변저항을 조절하는 것은 👉 내가 보고 싶은 온도 구간에서 데이터 밀도를 높이는 작업 입니다. ✔️ 엔지니어링 포인트 서미스터는 저항이 변하는 소자이므로 전압 분배 회로를 사용합니다. Vout = Vcc × (R_thermistor / (R_fixed + R_thermistor)) 이때, R_fixed (가변저항)을 조절하면 특정 온도 구간에서 전압 변화 폭이 달라집니다 👉 핵심 전략: 관심 온도 (예: 25°C)에서 ADC 값이 "중간값(≈512)" 근처가 되도록 조정 이렇게 하면: 1°C당 더 많은 ADC 값을 사용하게 됨 해상도(Resolution) 최대화 ✔️ 비유 자 위의 눈금이 흐릿하면 측정 자체가 불가능합니다. 가변저항 조정은 👉 희미한 눈금을 진하고 촘촘하게 다시 그리는 작업 이 단계에서 우리는 👉 좋은 "생데이터"를 확보 합니다. 2️⃣ 로그 보정: 휘어진 막대기를 반듯하게 (Linearization) 데이터를 촘촘하게 모았다고 끝이 아닙니다. 서미스터는 본질적으로 비선형 소자 입니다. 👉 온도 vs 저항 관계: R ∝ e^(1/T) 즉, 온도가 올라갈수록 저항은 지수적으로 감소 전압은 곡선 형태로 변화 ✔️ 문제 저온 영역 → 변화 큼 고온 영역 → 변화 작음 👉 결과: 같은 1°C라도 구간마다 민감도가 다름 ✔️ 해결 방법: 로그(Log) 변환 대표 공식: St...