DTS-H150 온도 센서는 적외선 온도 센서로 SPI통신을 이용한다.
DTS-H150 온도 센서의 핀 아웃 정보는 다음 과 같다.
DTS-H150의 VCC의 인가 전원의 범위는 2.4-3.6 V로 arduino uno의 3.3V를 이용하면 된다. DTS-H150의 최대 SCK는 1 MHz이다. 따라서 arduino의 SPI library에서
SPI.setClockDivider(SPI_CLOCK_DIV16);
와 같이 설정 해야 한다. DTS-H150의 datasheet를 보면 다음과 같은 clock diagram이 나온다.
SPI에 관한 wikipedia 자료를 보면 (http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus)
DTS-H150의 경우 CPOL을 1로 설정해주어야 하며 CPHA는 1로 설정 해야 한다. 이에 따라 MODE를 3으로 설정해 주어야 한다.
따라서 다음과 같이 SPI를 설정해 준다.
SPI.setDataMode(SPI_MODE3);
또한 전송 방식을 보면 MSB라고 되어 있으므로 SPI의 Bit 모드를 설정해 준다.
SPI.setBitOrder(MSBFIRST);
PIN연결은 SCLK(SCK)와 MOSI(SDI,DI,DIN,SI), MISO(SDO,DO,DOUT,SO)를 arduino uno의 경우 SCK는 13번, MISO는 12번, MOSI는 11번 의 Digital PIN에 연결하면 되고 Chip Select는 digital pin중 아무거나 이용 하면 된다.
다음은 arduino에서 DTS-H150 온도 센서를 이용하여 온도를 측정하는 sketch이다.
온도 계산은 high_byte*256+low_byte 하여 나온 숫자를 뒤 두 자리를 소수점 이하로 생각 하면 된다. 예를 들어 상위 0x0E, 하위 0x43이면 0x0E42 로 10진수로는 3650, 즉 36.50 도가 된다.