본문 바로가기

[SENSOR]/Sensor

MAX31855 - 써모커플 온도센서 테스트 보드제작

MAX31855 - 써모커플 온도센서 테스트 보드제작

 

 

 

써모커플 온도센서를 간단히 측정할 수 있는 MAX31855 테스트 보드를 제작 했다. 다양한 MCU와 확장 보드에서 테스트 할 수 있도록 표준 핀맵의 SSM TYPE  EVM 보드 형태로 제작 했다.

 

 

MAX31855 특징

- Cold-Junction Compensation

- 14-Bit, 0.25NC Resolution

- Versions Available for K-, J-, N-, T-, S-, R-, and

- Simple SPI-Compatible Interface (Read-Only)

 

 

 

 

 

 

 

MAX31855 블록도

 

 

 

 

MAX31855 레지스터 맵

 

 

 

MAX31855 레지스터 리드 함수

unsigned long MAX31855_Read32(void)
{ 
    int i;

    union bytes_to_uint32 {
    unsigned char bytes[4];
    unsigned long integer;
    } buffer;

    MAX31855_CS_LO();
    Delay(1);

    for (i=3;i>=0;i--) 
    {
        buffer.bytes[i] = MAX31855_SpiRecvData(0x00);
    }

    MAX31855_CS_HI();
    return buffer.integer;
}

 

 

온도변환 함수

float MAX31855_readCelsius(void)
{
    unsigned long v;

    v = MAX31855_Read32();

    if (v & 0x7)
	{
		return 0.0; 
    }

    if (v & 0x80000000)
    {
        v = 0xFFFFC000 | ((v >> 18) & 0x00003FFFF);
    }
    else
    {
        v >>= 18;
    }

    float centigrade = v;
    centigrade *= 0.25;
    return centigrade;
}

 

 

MAX31855테스트 예제코드

//-----------------------------------------------------------------------------
int main(void)
{
	unsigned char flag = 1;
	unsigned char rxd = 0;
	unsigned char buffer[32];
	float temp;


	//시스템 초기화
	SystemInit();

	//LED포트 초기화
	Led1Init();
	Led1On();
	Delay(900);

	U0_Init(BAUD_115200);
	printf("START\r\n");
	MAX31855_SPI_INIT();

	while(1)
	{
		if(flag)
		{
			temp = MAX31855_readCelsius();
			printf("%.2f\r\n", temp);   

			Led1On();
			Delay(100);

			Led1Off();
			Delay(900);
		}
	}  
}
//-----------------------------------------------------------------------------
 
 
 
MAX31855 써모커플 온도 측정 테스트 동영상
썬모커플 온도 센서의 온도 값을 블루투스를 이용해 스마트폰으로 전송하기
 

 

반응형