Arduino Control MAX6675 Module with K-Type Thermocouple

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

Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 1 ลักษณะของ MAX6675 Module with K-Type Thermocouple
Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 2 อุปกรณ์ต่างๆ สำหรับเชื่อมต่อ MAX6675 Module with K-Type Thermocouple

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

รูปที่ 3 แสดงบล๊อกไดอะแกรมโครงสร้างภายในไอซี MAX6675 [Picture by Ref.1]
รูปที่ 4 แสดงตำแหน่งขาใช้งานและการต่อใช้งานไอซี MAX6675 [Picture by Ref.1]

Datasheet for MAX6675 Cold-Junction-Compensated

Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 5 การต่อ MAX6675 Module กับบอร์ดควบคุม Arduino NANO

ในรูปที่ 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 นัั้นเอง

Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 6 แสดงผลการทดลองที่ได้ของโมดูล MAX6675

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

Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 7 วงจรที่ใช้ในการทดลองโมดูล MAX6675
Arduino Control MAX6675 Module K-Type Thermocouple
รูปที่ 8 ลักษณะของการทดลองโมดูล MAX6675

สำหรับในรูปที่ 7 และรูปที่ 8 แสดงวงจรที่ใช้ในการทดลองโมดูล MAX6675 และลักษณะของการทดลองโมดูล MAX6675 ซึ่งใช้อุปกรณ์ต่างๆ ไม่มากนัก ทั้งนี้การนำโมดูล MAX6675 ไปใช้งานต่างๆ นั้น แนะนำให้ให้ผู้อ่านพัฒนาในส่วนของโปรแกรมการเพิ่มเติม เพื่อให้ตัวโครงงานนี้รองรับการทำงานในฟังก์ชั่นการใช้งานที่สูงขึ้น เช่น การส่งค่าอุณหภูมิแบบไร้สาย การรับส่งสัญญาณแบบแยกกันทางไฟฟ้าหรือการป้องกันอุณหภูมิเกินให้กับอุปกรณ์อื่นๆ ที่มีมูลค่าสูง เป็นต้น

Reference

  1. https://www.analog.com/media/en/technical-documentation/data-sheets/max6675.pdf
  2. https://www.arduino.cc/reference/en/libraries/max6675-library/
  3. https://www.digchip.com/datasheets/parts/datasheet/280/MAX6675-pdf.php
  4. https://github.com/adafruit/MAX6675-library
  5. https://electropeak.com/learn/interfacing-max6675-k-type-thermocouple-module-with-arduino/
  6. https://github.com/Bardia-Afshar/MAX31855-MAX6675-STM32