임베디드 보드에서 저항 타입의 센서를 사용하는 방법에 대해 알아보기로 하겠다.
위의 사진은 온도센서이다. 온도의 변화에 따라 저항값이 달라진다.
센서의 값을 읽으려면 기본적으로 다음과 같은 회로를 사용하면 된다.
위의 그림에 있는 공식과 같이 두개의 저항값에 따라 출력되는 전압이 달라지게 된다.
출력 전압은 위의 예제와 같이 두 저항값의 비율에 따라 결정된다.
위의 그림과 같이 하나의 저항값(R1)은 고정시켜 놓고 다른 저항(R2) 대신 저항 타입의 센서를 연결해 주면 온도의 변화에 따라 저항값이 변하고 결국 출력 전압이 따라 변하게 된다. 이 전압을 A/D 컨버터를 통해 읽어주면 된다.
센서의 온도의 변화에 따른 저항값의 변화표이다. 대략 -20도에서 125도 까지의 온도를 측정하고 싶다면 센서의 저항값은 100Kohm에서 0.33Kohm까지 변하게 된다.
이 센서를 위의 회로에 사용하려면 R1값을 결정해 줘야 한다.
R1의 값을 10 Kohm으로 했을 때 온도의 변화에 따른 출력전압의 변화를 계산한 것이다.
R1의 값을 1 Kohm으로 했을 때 온도의 변화에 따른 출력전압의 변화를 계산한 것이다.
동일한 정도의 온도변화에 대해 전압의 변화가 크고 리니어해야 온도를 읽는데 오차가 작아지고 정확하게 읽을 수 있다.
그러므로 위의 두개의 그래프에서 보듯이 주 사용환경이 -10~70도 사이라면 R1 저항으로 10 Kohm을 사용하는게 좋고 사용환경이 10~120도 사이라면 R1 저항으로 1 Kohm을 사용하는게 좋다.
오차를 최소화해서 정확하게 온도를 읽으려면 전압-온도 형태의 lookup table을 사용하면 되고 그 정도까지 정확할 필요가 없어 간단하게 하려면 저 구간에서는 온도-전압의 변화가 거의 리니어하기 때문에 간단한 수식으로 계산해도 된다.
R1이 1 Kohm인 경우 25도인 경우 전압이 4.545V, 125도인 경우 전압이 1.24V니까 직선의 기울기는 (1.24-4.545)/(125-25) = -0.033이 된다. 이 경우 Vo = -0.033T+5.365 라는 공식이 나오기 때문에 T = (5.365-Vo) / 0.033 이 된다. 즉 A/D컨버터의 전압값을 읽어 저 공식에 집어 넣으면 온도를 구할 수 있게 된다.
* 물론 좀 더 정확하게 하기 위해서는 calibration 과정을 거쳐줘야만 한다.
이 포스팅에서는 온도센서를 예로 들었지만 그 이외에도 환경의 변화에 따라 저항값이 변하는 타입의 센서(CDS photocell 등)는 모두 동일한 방식으로 사용하면 된다.
댓글 없음:
댓글 쓰기