Search Code

Cara Menggunakan Sensor Termokopel Tipe-K MAX6675 dengan Arduino

Cara Menggunakan Sensor Termokopel Tipe-K MAX6675 dengan Arduino

Pendahuluan

Mengukur suhu secara akurat adalah kebutuhan mendasar dalam banyak proyek elektronik, mulai dari membuat oven reflow untuk penyolderan PCB hingga memantau suhu hotend printer 3D atau pemanggang BBQ. Meskipun termistor standar dan sensor digital seperti DS18B20 bekerja dengan baik untuk suhu sedang, keduanya gagal ketika suhu menjadi sangat panas. Di sinilah termokopel tipe-K berperan. Ini adalah sensor yang kokoh dan murah yang mampu mengukur suhu ekstrem, tetapi memerlukan chip antarmuka khusus untuk menerjemahkan sinyal tegangan kecilnya menjadi nilai digital yang dapat dibaca.

Panduan ini menunjukkan cara menggunakan papan breakout MAX6675 dengan sensor termokopel tipe-K dan Arduino untuk membaca dan menampilkan suhu dalam Celsius dan Fahrenheit pada monitor serial (dalam video pada 00:00). Modul MAX6675 menangani pengkondisian sinyal yang kompleks dan kompensasi sambungan dingin untuk Anda, mengeluarkan data digital yang bersih melalui protokol SPI. Pengaturan ini sempurna untuk proyek yang memerlukan penginderaan suhu tinggi, seperti:

  • Memantau suhu hotend atau alas panas printer 3D.
  • Membangun termometer digital untuk panggangan BBQ atau oven dapur.
  • Membuat pengontrol suhu untuk oven reflow DIY atau stasiun solder.
  • Mengukur suhu gas buang dalam proyek otomotif atau robotika.

Komponen Perangkat Keras

Untuk mengikuti tutorial ini, Anda akan memerlukan komponen-komponen berikut. Pengkabelannya sederhana, dan kodenya kompatibel dengan semua versi papan Arduino (dalam video pada 00:47).

  • Papan Arduino (Uno, Mega, Nano, dll.)
  • Modul MAX6675 (papan breakout)
  • Sensor termokopel tipe-K (gaya probe apa pun)
  • Kabel jumper

Modul MAX6675 sendiri cukup kecil. Seperti yang ditunjukkan dalam video, dimensinya adalah 32,1mm panjang, 15,6mm lebar, dan 16,3mm kedalaman (dalam video pada 02:35). Modul ini memiliki blok terminal kecil untuk menghubungkan termokopel dan deretan pin untuk daya dan komunikasi SPI. Termokopel tipe-K terhubung ke modul dengan polaritas yang benar; kabel merah (positif) menuju terminal '+' dan kabel kuning (negatif) menuju terminal '-' (dalam video pada 01:27).

Spesifikasi Teknis

Sebelum kita masuk ke pengkabelan, penting untuk memahami kemampuan chip MAX6675. Menurut lembar data dari Maxim Integrated, modul ini dapat mengukur rentang suhu yang luas, membuatnya cocok untuk aplikasi industri dan hobi (dalam video pada 01:44).

  • Rentang Pengukuran: 0°C hingga +1024°C
  • Resolusi: 12-bit (0,25°C)
  • Komunikasi: SPI (Serial Peripheral Interface)
  • Tegangan Operasi: 3,0V hingga 5,5V

Panduan Pengkabelan

Pengkabelan untuk MAX6675 sederhana, hanya memerlukan koneksi daya dan tiga pin digital untuk komunikasi SPI. Dalam contoh ini, kita akan menggunakan pin Arduino 4, 5, dan 6 untuk jalur data (dalam video pada 03:28). Koneksinya adalah sebagai berikut:

  • VCC (Kabel oranye): Terhubung ke pin 5V Arduino (dalam video pada 02:56).
  • GND (Kabel kuning): Terhubung ke pin GND Arduino (dalam video pada 02:51).
  • SO - Serial Out (Kabel hijau): Terhubung ke pin digital Arduino 4 (dalam video pada 03:01).
  • CS - Chip Select (Kabel abu-abu): Terhubung ke pin digital Arduino 5 (dalam video pada 03:08).
  • SCK - Serial Clock (Kabel putih): Terhubung ke pin digital Arduino 6 (dalam video pada 03:14).

Penjelasan Kode

Kode yang disediakan dalam tutorial ini dirancang agar sederhana dan mudah dimodifikasi. Kode ini mengandalkan pustaka bernama max6675.h, yang perlu Anda instal terlebih dahulu. Anda dapat mengunduh pustaka sebagai file ZIP dan menambahkannya ke Arduino IDE dengan pergi ke Sketch -> Include Library -> Add .ZIP Library. Setelah instalasi, Anda harus menutup dan membuka kembali Arduino IDE agar pustaka dikenali (dalam video pada 04:14).

Setelah pustaka terinstal, Anda dapat menyalin kode yang disediakan ke sketsa Anda. Langkah pertama adalah menyertakan file pustaka, yang memberi Arduino akses ke fungsi-fungsi yang diperlukan untuk berkomunikasi dengan chip MAX6675 (dalam video pada 03:55). Selanjutnya, Anda akan mendefinisikan pin-pin yang terhubung ke modul. Ini adalah satu-satunya baris kode yang perlu Anda ubah jika Anda memutuskan untuk menggunakan pin yang berbeda pada Arduino Anda (dalam video pada 04:52).


int soPin = 4;// SO=Serial Out
int csPin = 5;// CS = chip select CS pin
int sckPin = 6;// SCK = Serial Clock pin

Setelah mendefinisikan pin, kita membuat sebuah instance dari kelas MAX6675. Urutan argumen dalam baris ini sangat penting; mereka harus dalam urutan sckPin, csPin, dan soPin. Menukarnya akan mencegah sensor bekerja dengan benar (dalam video pada 05:21).


MAX6675 robojax(sckPin, csPin, soPin);// buat instance objek dari MAX6675

Pada fungsi setup(), kita menginisialisasi monitor serial pada baud rate 9600 sehingga kita dapat melihat pembacaan suhu di komputer kita (dalam video pada 05:41). Logika utama berada pada fungsi loop(). Di sini, kita memanggil metode readCelsius() dan readFahrenheit() dari objek robojax untuk mengambil suhu dan mencetaknya ke monitor serial. Penundaan 1000 milidetik (1 detik) ditambahkan di akhir loop untuk mengatur kecepatan pembaruan (dalam video pada 05:54). Jika Anda ingin pembaruan lebih cepat, Anda dapat mengurangi penundaan ini menjadi 100 milidetik atau kurang (dalam video pada 08:44).


Serial.print("C = "); 
Serial.print(robojax.readCelsius());
Serial.print(" F = ");
Serial.println(robojax.readFahrenheit());
delay(1000);

Kode ini adalah tes pembacaan dasar. Anda dapat dengan mudah mengembangkannya untuk memicu tindakan berdasarkan ambang batas suhu. Misalnya, Anda dapat menggunakan pernyataan if untuk memeriksa apakah suhu melebihi nilai tertentu dan kemudian menyalakan kipas untuk mendinginkan sistem, atau menyalakan pemanas jika suhu turun terlalu rendah (dalam video pada 06:42).

Demonstrasi Proyek Langsung

Untuk mendemonstrasikan kemampuan sensor, video menunjukkan termokopel dipanaskan dengan heat gun. Saat panas diterapkan, pembacaan suhu pada monitor serial meningkat dengan cepat. Demonstrasi menunjukkan suhu mencapai lebih dari 125 derajat Celsius, dengan nilai Fahrenheit yang sesuai ditampilkan di sampingnya (dalam video pada 08:25). Setelah heat gun dilepas, Anda dapat melihat suhu secara bertahap mendingin, mengonfirmasi akurasi dan responsivitas sensor. Umpan balik waktu nyata ini menjadikan modul MAX6675 pilihan yang sangat baik untuk proyek apa pun yang memerlukan pemantauan suhu tinggi yang presisi.

Bab Video

  • [00:00] Pendahuluan dan gambaran proyek
  • [01:15] Penjelasan perangkat keras
  • [02:41] Penjelasan pengkabelan
  • [03:28] Penjelasan kode
  • [07:26] Demonstrasi pengukuran suhu

Gambar

MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
K-Type Thermocoupler module with wire
K-Type Thermocoupler module with wire
K-Type thermocoupler connector
K-Type thermocoupler connector
Arduino wiring for MAX6675 Thermocoupler module
Arduino wiring for MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
MAX6675 Thermocoupler module
171-How to use a MAX6675 thermocouple K-type sensor with Arduino
Bahasa: C++
// Original library source:
// www.ladyada.net/learn/sensors/thermocouple
 /*
 * Arduino code to read temperature using MAX6675 chip and K-type thermocouple
 * and display it on the serial monitor
 * 
 * Watch video instructions for this code: https://youtu.be/VGqONmUinqA
 * Download this code from Robojax.com
 *  
 * Updated by Ahmad Shamshiri for Robojax.com on Saturday, November 23, 2018 
 * at 21:25 in Ajax, Ontario, Canada
 * 
 
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 * This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */

 
#include "max6675.h" // max6675.h file is part of the library that you should download from Robojax.com

int soPin = 4;// SO=Serial Out
int csPin = 5;// CS = chip select CS pin
int sckPin = 6;// SCK = Serial Clock pin

MAX6675 robojax(sckPin, csPin, soPin);// create instance object of MAX6675


void setup() {

          
  Serial.begin(9600);// initialize serial monitor with 9600 baud
  Serial.println("Robojax MAX6675"); 

}

void loop() {
  // Basic readout test, just print the current temperature
  // Robojax.com MAX6675 temperature reading on serial monitor
   Serial.print("C = "); 
   Serial.print(robojax.readCelsius());
   Serial.print(" F = ");
   Serial.println(robojax.readFahrenheit());

             
   delay(1000);
}

Hal-hal yang mungkin Anda butuhkan

Sumber daya & referensi

Berkas📁

File lainnya