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