카테고리 없음

3.펌웨어 - 온도 정리.

조몰락조몰락 2014. 3. 12. 01:42

내가 설정한 값.


#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도 정도 차이가 난다. 왜인지는 모르겠다.