Arduino Control MAX6675 Module with K-Type Thermocouple

โครงงานการใช้งานเซนเซอร์วัดค่าอุณหภูมิด้วย MAX6675 Module with K-Type Thermocouple ร่วมกับบอร์ดควบคุม Arduino NANO ที่สามารถต่อใช้งานได้ง่าย และใช้ในการวัดค่าอุณหภูมิที่ค่อยข้างสูง (มากกว่า 500 องศาเซลเซียล) ด้วยเทอร์โมคับเปิ้ลแบบ K-Type ด้วยการใช้ลักษณะการสื่อสารแบบ SPI- Serial Interface รวมทั้งสามารถนำไปประยุกต์ใช้งานต่างๆ ได้หลากหลาย เช่น งานในด้านอุตสาหกรรมและเครื่องใช้ไฟฟ้าต่างๆ เป็นต้น


รูปที่ 1 และรูปที่ 2 แสดงลักษณะของโมดูล MAX6675 Module with K-Type Thermocouple ที่สามารถนำมาต่อใช้งานได้ทันที มีตำแหน่งการเชื่อมต่อสายให้เข้าใจง่าย และสามารถหาซื้อได้ทั่วไปหรือซื้อผ่านออนไลน์ก็จะค่อนข้างสะดวก


Datasheet for MAX6675 Cold-Junction-Compensated

ในรูปที่ 5 เป็นการต่อใช้งานโมดูล MAX6675 กับบอร์ดควบคุม Arduino NANO ในส่วนวงจรต้นแบบ โดยจะประกอบบนแผ่นเบรดบอร์ดและใช้สายจั้มระหว่างบอร์ดทั้ง 2 ส่วนเข้าด้วยกัน ในการอ่านค่าและแสดงผลอุณหภูมิที่ได้
// Arduino Control MAX6675 Module with K-Type Thermocouple
// https://github.com/adafruit/MAX6675-library
// https://learn.adafruit.com/thermocouple
#include "max6675.h"
int thermoDO = 2;
int thermoCS = 3;
int thermoCLK = 4;
int TempSET = 45;
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
Serial.println(" Lab MAX6675 Module K-Type Thermocouple");
delay(1000);
}
void loop() {
Serial.print(" C = ");
Serial.println(thermocouple.readCelsius());
if (thermocouple.readCelsius()>TempSET) {
digitalWrite(13, HIGH);
delay(100);
}
if (thermocouple.readCelsius()<(TempSET-2)) {
digitalWrite(13, LOW);
delay(100);
}
delay(1000);
}
Arduino Library MAX6675 Module K-Type Thermocouple
ในส่วนของโปรแกรมสำหรับบอร์ดควบคุม Arduino NANO (ดังแสดงข้างบน) จะเชื่อมต่อกับ MAX6675 Module และใช้การสื่อสารแบบ SPI-Compatible Serial Interface โดยจะทำหน้าที่แสดงผลค่าอุณหภูมิที่วัดได้มีหน่วยเป็นองศาเซลเซียล (C) จากนั้นโปรแกรมจะทำหน้าที่ตรวจจับอุณหภูมิที่ต้องการได้ โดยในตัวอย่างจะกำหนดไว้ที่ 45 องศาเซลเซียล เมื่ออุณหภูมิมีค่าสูงกว่า 45 องศา จะทำให้แอลอีดี L (ขา D13) สว่างขึ้นให้ทราบและเมื่ออุณหภูมิต่ำกว่า 43 องศาเซลเซียล ก็จะทำให้แอลอีดี L ดับลง ซึ่งผู้ใช้งานสามารถกำหนดค่าอุณหภูมิที่ต้องการใหม่ได้ที่ตัวแปร int TempSET = 45 นัั้นเอง

รูปที่ 6 แสดงผลการทดลองที่ได้ของโมดูล MAX6675 จากในรูปจะเห็นว่าเมื่อเริ่มให้โมดูลทำงานจะวัดค่าอุณหภูมิทั่วไปที่ประมาณ 36 องศาเซลเซียล (ในกรอบสีส้ม) จากนั้นจะใช้หัวแร้งบัดกรีมาแตะที่หัวโพรบเซนเซอร์จะทำให้มีอุณหภูมิเพิ่มขึ้นมาที่ประมาณ 66 องศาเซลเซียล (ในกรอบสีเขียว) ซึ่งแสดงว่าโมดูลทั้ง 2 ส่วนสามารถใช้งานร่วมกันได้


สำหรับในรูปที่ 7 และรูปที่ 8 แสดงวงจรที่ใช้ในการทดลองโมดูล MAX6675 และลักษณะของการทดลองโมดูล MAX6675 ซึ่งใช้อุปกรณ์ต่างๆ ไม่มากนัก ทั้งนี้การนำโมดูล MAX6675 ไปใช้งานต่างๆ นั้น แนะนำให้ให้ผู้อ่านพัฒนาในส่วนของโปรแกรมการเพิ่มเติม เพื่อให้ตัวโครงงานนี้รองรับการทำงานในฟังก์ชั่นการใช้งานที่สูงขึ้น เช่น การส่งค่าอุณหภูมิแบบไร้สาย การรับส่งสัญญาณแบบแยกกันทางไฟฟ้าหรือการป้องกันอุณหภูมิเกินให้กับอุปกรณ์อื่นๆ ที่มีมูลค่าสูง เป็นต้น
Reference
- https://www.analog.com/media/en/technical-documentation/data-sheets/max6675.pdf
- https://www.arduino.cc/reference/en/libraries/max6675-library/
- https://www.digchip.com/datasheets/parts/datasheet/280/MAX6675-pdf.php
- https://github.com/adafruit/MAX6675-library
- https://electropeak.com/learn/interfacing-max6675-k-type-thermocouple-module-with-arduino/
- https://github.com/Bardia-Afshar/MAX31855-MAX6675-STM32