3.펌웨어 - 온도 정리.
내가 설정한 값.
#define TEMP_HYSTERESIS 5
#define TEMP_EWMA 0.01
TEMP_EWMA는 써미스터에 잡음이 있을 경우
(설정 온도 근처에서 스위치가 빠르게 꺼젔다 켜젔다 할 경우)
숫자를 줄인다.
Valid range: 0.001 to 1.0
써미스터 테이블 작성용 아두이노 프로그램 짠거.
int Vout=1; // Integer value of voltage reading
float Rfixed = 4700;
float Rt;
float Rt0 = 100000; // 100kΩ at T0
float RtB = 3950; // B value;
float T;
float T0 = 298.15; // T0 (25 °C = 298.15 K)
float C = 0;
int Step = 10;
void setup() {
Serial.begin(9600);
}
void loop() {
Rt = Rfixed * Vout / ( 1024 - Vout );
T = 1.0/(1.0/T0 + (1/RtB)*log((Rt/Rt0)));
C = T - 273.15;
if(Vout < 1024){
Serial.print(" "); Serial.print(Vout);
Serial.print(" "); Serial.print(Rt);
Serial.print(" "); Serial.print(T);
Serial.print(" "); Serial.println(C);
Vout += Step;
}
delay(100);
}
실제 온도랑은 10도 정도 차이가 난다. 왜인지는 모르겠다.