1. MAX31865
K-Type 온도 센서를 arduino 와 연결하여 측정하는 MAX31855 은 아래 포스팅에서 가지고 놀아 봤습니다.
* Hardware | MAX31855 + K-type 온도센서 조합
- http://chocoball.tistory.com/entry/Hardware-MAX31855-Ktype
그 외의 온도센서에 대해서는 아래 포스트들을 참고해보세요.
* Hardware | AM2322 Temperature & Humidity Sensor
- http://chocoball.tistory.com/entry/Hardware-AM2322-Temperature-Humidity-Sensor
* Hardware | Arduino 비접촉 온도센서 GY-906 MLX90614
- http://chocoball.tistory.com/entry/HardwareArduinoMLX90614
* Hardware | Arduino BMP280 고도/온도/기압 센서
- http://chocoball.tistory.com/entry/HardwareArduinoBMP280
* Hardware | BME280 sensor
- http://chocoball.tistory.com/entry/HardwareBME280
* Hardware | DS18B20 온도센서
- http://chocoball.tistory.com/entry/Hardware-DS18B20-temperature-sensor
여기서 주의할 점은, MAX31865은 MAX31855와 제일 마지막 앞번의 digit 차이 입니다.
주문시 주의해야 합니다.
* MAX31865 : PT100 / PT1000 용
* MAX31855 : K-type 용
2. MAX31865 구입
AliExpress 에서 검색하면 아래의 링크가 가장 많이 구입한걸로 나옵니다.
바로 주문 넣습니다.
* MAX31865 SPI PT100/PT1000 RTD-to-Digital Converter Board Temperature Thermocouple Sensor Amplifier Module For Arduino 3.3V/5V
3. 도착
다른 센서들보다는 조금 높은 가격입니다.
그러나 업자는 항상 1 USD 미만으로 보내주십니다. :-)
포장은 일반적인 간단한 포장입니다.
Adafruit 제품과 거의 동일하게 만들었습니다.
Chip 을 확대해 봤습니다.
Taiwan 에서 생산된 M31865 라고 인쇄되어 있습니다.
Pin array 와 terminal 을 납땜해 줍니다.
Rref 의 저항은 431 = 430 ohm 입니다.
4. Thermocouple K-Type 구매하기
MAX31865 를 구입하면서, 거의 동시에 온도 센서도 주문에 넣습니다.
* Thermocouple K-Type Thermocouple Thermometer Probe WRNT-03 200mm*1000mm
분명히 K-Type 이라고 적혀 있습니다.
Probe 형이라 길이가 깁니다. 포장도 큼지막 합니다.
뽁뽁이로 잘 쌓여서 도착했습니다.
음? CU50?
이미 MAX31855 글에서도 CU50 에 대해서 적었습니다.
MAX31865 / MAX31855 의 개념이 없었고, K-Type / PT100 / PT1000 개념도 없이 처음 질렀던 온도계 센서 입니다.
더욱 헷갈리게 된 것은, K-Type 이라고 주문한게 CU50 이 도착해, 처음 한동안은 뭐가 문제인지 몰랐습니다.
그 뒤에 센서 및 coverter chip 종류가 다르다는걸 알았죠.
* CU50 / WRNT-03 spec.
뭘 모르면 알때까지 삽질해야 하는 것은 인생의 진리 입니다.
5. PT100 구입하기
MAX31865 는 PT100 / PT1000 용 analog to digital converter 입니다.
PT1000 은 예민하면서 실험실용으로 사용되고 있어서, PT100 을 선택합니다.
* MYLB-0-400C PT100 Type 5mm x 50mm Temperature Controller Thermocouple Probe 2 Meters
점점 진실에 접근하는 느낌이 듭니다.
도착.
포장 문제 없슴.
선은 3 wire 센서 이군요.
흠흠.
색이 다른 터미널끼리는 거의 100 ohm 의 차이를 보입니다.
이는 PT100 의 일반적인 현상이며, 더운 여름에 측정하다 보니 저항값이 조금 높습니다.
이 저항값의 변화를 가지고 온도를 측정하는 것입니다.
동일 선끼리는 거의 0 ohm 입니다.
6. Pinout / Layout
Pinout 에 대해서는 아래 Adafruit 의 링크를 참조해 보세요.
* Adafruit MAX31865 RTD PT100 or PT1000 Amplifier
- https://learn.adafruit.com/adafruit-max31865-rtd-pt100-amplifier/pinouts
MAX31865 | Arduino Micro --------------------------- Vin | 3.3V GND | GND CLK | D13 SDO | D12 SDI | D11 CS | D10 ---------------------------
Layout 입니다.
7. sketch
레퍼런스 소스를 이용해서 기본적인 동작 확인에 들어갑니다.
우선 Library Manager 에서 max31865 를 검색해서 install 해줍니다.
인스톨이 완료되면, "File > Examples > Adafruit MAX31865 library > max31865" 을 선택하여 소스를 로딩합니다.
아래는 sketch 입니다.
/*************************************************** This is a library for the Adafruit PT100/P1000 RTD Sensor w/MAX31865 Designed specifically to work with the Adafruit RTD Sensor ----> https://www.adafruit.com/products/3328 This sensor uses SPI to communicate, 4 pins are required to interface Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! Written by Limor Fried/Ladyada for Adafruit Industries. BSD license, all text above must be included in any redistribution ****************************************************/ #include// Use software SPI: CS, DI, DO, CLK Adafruit_MAX31865 max = Adafruit_MAX31865(10, 11, 12, 13); // use hardware SPI, just pass in the CS pin //Adafruit_MAX31865 max = Adafruit_MAX31865(10); // The value of the Rref resistor. Use 430.0 for PT100 and 4300.0 for PT1000 #define RREF 430.0 // The 'nominal' 0-degrees-C resistance of the sensor // 100.0 for PT100, 1000.0 for PT1000 #define RNOMINAL 100.0 void setup() { Serial.begin(115200); Serial.println("Adafruit MAX31865 PT100 Sensor Test!"); max.begin(MAX31865_3WIRE); // set to 2WIRE or 4WIRE as necessary } void loop() { uint16_t rtd = max.readRTD(); Serial.print("RTD value: "); Serial.println(rtd); float ratio = rtd; ratio /= 32768; Serial.print("Ratio = "); Serial.println(ratio,8); Serial.print("Resistance = "); Serial.println(RREF*ratio,8); Serial.print("Temperature = "); Serial.println(max.temperature(RNOMINAL, RREF)); // Check and print any faults uint8_t fault = max.readFault(); if (fault) { Serial.print("Fault 0x"); Serial.println(fault, HEX); if (fault & MAX31865_FAULT_HIGHTHRESH) { Serial.println("RTD High Threshold"); } if (fault & MAX31865_FAULT_LOWTHRESH) { Serial.println("RTD Low Threshold"); } if (fault & MAX31865_FAULT_REFINLOW) { Serial.println("REFIN- > 0.85 x Bias"); } if (fault & MAX31865_FAULT_REFINHIGH) { Serial.println("REFIN- < 0.85 x Bias - FORCE- open"); } if (fault & MAX31865_FAULT_RTDINLOW) { Serial.println("RTDIN- < 0.85 x Bias - FORCE- open"); } if (fault & MAX31865_FAULT_OVUV) { Serial.println("Under/Over voltage"); } max.clearFault(); } Serial.println(); delay(1000); }
결과는 아래와 같습니다.
뭔가 많이 이상하군요... 뭐가 문제일까...
8. Jumper !!!
그렇습니다.
Adafruit 의 점퍼 설정을 대충 읽은 결과 입니다.
위의 글에 나와 있듯이, 미세하게 연결된 24 부분의 선을 잘라줘야 합니다.
시키는 대로 했으나 제대로 되지 않았습니다.
처음에는 CU50 으로 삽질하면서 2 wire 설정으로 납땜 했다가, 납 지워줬다가, 3 wire 설정으로 다시 납땜 했다가,
기판이 지저분해진 상태이고, 자주 인두로 지져서 기판 상태가 엉망으로 되면서 고장난게 분명하다는 결론에 도달했습니다.
(모두 합하면 10시간동안 삽질함)
9. 재구매
breakout 보드값이 비싸지만, 모든걸 다 해본 뒤라 새로운 converter 를 구입하기로 합니다.
이번에는 색이 다른것으로 구입합니다.
배송료 합하면 거의 6천원이군요... ㅠ.ㅠ
* 31865 MAX31865 RTD platinum resistance temperature detector module PT100 to PT1000
잘 도착했습니다. 얼른 시험해보고 싶습니다.
점퍼 사시의 간극이 커서 잘 납땜해야 합니다.
Rref 저항은 430 ohm 으로 동일하며, 2 4 사이에 미세하게 연결되어 있는것도 확인했습니다.
커터로 잘 그어서 절단해 줍니다.
두둥!
잘 연결하고 확인해 봅니다.
Aㅏ.....
그렇습니다. 여러 삽질을 하는 동안, 기존 breakout 기판이 고장난 것이었습니다.
그간 삽질하면서 학습한 내용을 토대로 잘 jumper 도 납땜하고, 자를껀 자르고 연결하니 한방에 성공합니다.
애증의 MAX31865 와 PT100 센서 입니다.
찬물 / 상온 물 / 뜨거운 물을 가지고 확인한 동영상 입니다.
calibration 이 필요해 보이지만, 그딴거는 나중에 기회되면 하겠습니다.
여기까지 오는것만 해도 힘들었습니다.
그래프화 시킨 그림입니다.
동작에 무리 없어 보입니다.
FIN
제가 가지고 있는 온도센서 및 converter breakout 보드는 다 확인해 봤네요.
CU50 만 빼고... 이놈은 어떻게 해야 할까요.
'Hardware' 카테고리의 다른 글
Hardware | Safecast bGeigi nano firmware upgrade (0) | 2018.08.12 |
---|---|
Hardware | Raspberry Pi 3 model B+ unboxing (0) | 2018.08.10 |
Hardware | ML8511 UV sensor 를 가지고 놀아보자 (0) | 2018.08.01 |
Hardware | MAX31855 + K-type 온도센서 조합 (2) | 2018.07.31 |
Hardware | SSD1306 에 로고를 세겨보자 (0) | 2018.07.24 |