NTC 온도계 저항값 변환
==================================Outline====================================
NTC 온도계 저항값 변환
----------------------------------------------------------------------------
NTC의 저항 값을 온도로 변환시키는 공식에 대해서 알아보자.
우선 저항 값을 구하는 공식이다.
<<1>>
float fCalcNtc(short wADCVal) // from ADC
{
float fRntc;
fRntc = 10000 * (float) wADCVal / ( 1023.0 - (float) wADCVal); // 10000 = pullup resistor
return(fRntc);
}
<<2>>
float fCalcNtc(int wADCVal) // from ADC
{
double fRntc;
fRntc = ((SERIESRESISTOR * ( 1023.0 - (float) wADCVal) /(float) wADCVal)); // SERIESRESISTOR = pullup resi stor
return(fRntc);
}
회로구성에 따라 NTC가 GND로 들어가는 경우는 <<1>>, NTC의 회로가 MCU에 직접적으로 들어가는 구성은 <<2>>이다.
저항 값이 나오면 이 값을 Steinhart-Hart equation에 넣어서 값을 구하면 된다.
float fCalcTemp( float fRntc)
{
float fTemp;
fTemp = (1.0 / ( (log(fRntc/THERMISTORNOMINAL))/BCOEFFICIENT + 1.0/298.0)) - 273.0; //log = ln
return( fTemp);
}
이것을 활용하여 온도 값을 통신으로 넘겨주는 프로그래밍을 해보자.
//'--'는 DC(Don't care) 영역
통신으로 받은 값은 UI를 활용하여 표시해 주어야 한다.
무조건 아스키코드로 전송된다.