Menghubungkan Modul Thermocouple MAX6675 dengan Arduino

Jika Anda ingin mengukur suhu dengan Arduino, ada banyak sensor yang bisa dipilih. Beberapa pilihan populer termasuk seri DHTxx, DS18B20, LM35, dan TMP36, serta beberapa lainnya, masing-masing menawarkan fitur dan kemampuan unik untuk memenuhi kebutuhan proyek Anda yang spesifik.

Namun, bagaimana jika Anda ingin mengukur suhu dari sesuatu yang sangat panas seperti gunung berapi (yang dapat mencapai lebih dari 1000°C atau 1800°F) atau sesuatu yang sangat dingin seperti nitrogen cair (yang dapat berada sekitar −195.8 °C atau −320 °F)? Dalam kasus seperti itu, sensor suhu biasa akan meleleh atau membeku sepenuhnya.

Jadi, bagaimana cara mengukur benda yang sangat panas atau dingin? Dengan sepasang kabel listrik pintar yang disebut Thermocouple. Thermocouple adalah jenis sensor suhu yang menggunakan efek termoelektrik untuk mengukur suhu mulai dari -330°F hingga +2460°F.

Panduan ini akan memandu Anda tentang cara menghubungkan modul thermocouple MAX6675—salah satu modul thermocouple yang paling sering digunakan, murah, namun akurat—ke Arduino. Tetapi pertama-tama, mari kita menyegarkan kembali pengetahuan dasar tentang thermocouple.

Dasar-Dasar Thermocouple
Sebuah thermocouple terbuat dari dua kawat logam yang berbeda (istilah “dissimilar” hanya berarti different/berbeda.

Kawat-kawat logam tersebut dihubungkan hanya pada satu tempat, biasanya ujung thermocouple, yang dikenal sebagai Hot Junction, Measurement Junction, Sensing Point, atau Sensing Junction. Sesuai dengan namanya, junction ini terpapar oleh sumber panas yang ingin diukur.

Ujung sebaliknya dari kawat-kawat logam disebut sebagai Cold Junction dan dihubungkan dengan perangkat pengukur. Biasanya, cold junction tidak terpapar pada tingkat energi termal yang sama seperti hot junction.

Efek Termoelektrik
Semua thermocouple bekerja dengan cara yang sama—mereka menghasilkan tegangan kecil ketika terpapar panas.

Ketika Anda memanaskan sepotong logam, panas merangsang elektron dalam logam tersebut, menyebabkan mereka bergetar. Saat logam semakin panas, lebih banyak elektron cenderung “mengalir” dan bergerak menuju ujung logam yang lebih dingin.

Hal ini membuat ujung yang lebih panas sedikit bermuatan positif dan ujung yang lebih dingin sedikit bermuatan negatif, menciptakan perbedaan tegangan. Ini dikenal sebagai Efek Termoelektrik atau Efek Seebeck, dinamai berdasarkan ilmuwan Jerman, Thomas Seebeck, yang menemukan fenomena ini pada tahun 1821.

Kerja Thermocouple
Sebuah thermocouple beroperasi berdasarkan pergerakan elektron dalam kawat logamnya yang disebabkan oleh perbedaan suhu antara hot dan cold junctions.

Jika dua kawat thermocouple terbuat dari jenis logam yang sama, misalnya tembaga, elektron dalam kedua kawat akan menjauh dari panas dan mengumpulkan di ujung-ujung yang dingin dalam jumlah yang sama, sehingga tidak ada perbedaan tegangan yang dapat diukur.

Namun, jika Anda ingat, thermocouple terbuat dari dua jenis kawat logam yang berbeda. Jadi, jika dua kawat thermocouple terbuat dari bahan yang berbeda, misalnya satu dari tembaga dan satu dari besi, logam-logam ini akan menghantarkan panas dengan cara yang berbeda, menghasilkan gradien suhu yang jelas. Hal ini menyebabkan akumulasi elektron yang berbeda di ujung-ujung yang dingin, menghasilkan perbedaan tegangan yang dapat diukur.

Perbedaan tegangan ini sangat kecil. Perubahan tegangan sebenarnya per derajat Celsius sangatlah kecil. Sebagai contoh, untuk thermocouple tipe K, perubahannya sekitar 41 µV/°C.

Kabel Kawat Thermocouple
Ketika terpapar panas, elektron dalam masing-masing kawat thermocouple bereaksi dengan cara yang berbeda dan bergerak dengan laju yang berbeda.

Kawat di mana lebih banyak elektron terakumulasi di cold junction disebut sebagai kabel kawat negatif, sementara kawat di mana lebih sedikit elektron terakumulasi di cold junction disebut sebagai kabel kawat positif.

Perbedaan muatan antara kabel kawat positif dan negatif ini dapat diukur dan digunakan untuk menentukan suhu di hot junction.

Thermocouple Tipe-K
Ada berbagai jenis thermocouple, seperti Tipe-J, Tipe-K, Tipe-E, Tipe-T, dan lain sebagainya, berdasarkan kombinasi logam atau paduan yang digunakan untuk dua kawatnya. Setiap jenis thermocouple memiliki fungsi karakteristiknya sendiri, rentang suhu, akurasi, dan aplikasi yang khusus.

Namun, thermocouple yang paling banyak digunakan dalam aplikasi industri adalah Tipe-K, karena merespons secara dapat diprediksi dalam rentang suhu yang luas (sekitar -328 °F hingga +2300 °F) dan memiliki sensitivitas sekitar 41 μV/°C. Terdiri dari kawat positif yang terbuat dari Chromel (paduan nikel-krom) dan kawat negatif yang terbuat dari Alumel (paduan nikel-aluminium).

Digitizer Thermocouple
Untuk membuat thermocouple bermanfaat, diperlukan kalibrasi dengan mengujinya pada suhu yang diketahui dan mencatat tegangan yang dihasilkan. Formula kemudian dapat digunakan untuk menghitung suhu berdasarkan tegangan yang diukur.

Di sinilah integrated circuit (IC) digitizer thermocouple seperti IC MAX6675 masuk ke dalam permainan. IC ini dirancang untuk melakukan kompensasi cold-junction dan mengdigitalkan sinyal yang diterima dari thermocouple.

Modul Thermocouple MAX6675
Modul thermocouple MAX6675 biasanya mencakup papan pemecah MAX6675 dan probe thermocouple Tipe-K. Mari kita pelajari lebih lanjut tentang keduanya.

Papan Pemecah MAX6675
Di jantung papan pemecah ini terdapat integrated circuit digitizer thermocouple Tipe-K yang telah dikompensasi cold-junction dari Microchip, yaitu MAX6675.

Papan pemecah ini menerima thermocouple Tipe-K standar di satu ujungnya, mengdigitalkan suhu yang diukur, dan mengirimkan data tersebut ke ujung lain melalui antarmuka SPI, sehingga mengartikan data tersebut dan menerjemahkannya agar dapat Anda baca!

IC MAX6675 mencakup konverter analog-digital (ADC) 12-bit, yang berarti IC dapat menentukan suhu hingga 0,25°C (resolusi 12-bit).

MAX6675 dapat mengukur suhu dalam rentang 0 °C hingga +1024 °C dengan akurasi ±3 °C. Namun, perlu diingat bahwa rentang ini tergantung pada jenis probe yang Anda gunakan.

Selain harganya yang murah, ukurannya yang kecil, dan rentang yang luas, MAX6675 beroperasi pada +3.0V hingga +5.5V dan mengkonsumsi sekitar 700 µA. Arus maksimum yang dapat diambilnya adalah sekitar 1.5 mA.

Probe Thermocouple Tipe-K
Probe thermocouple yang disertakan dengan modul ini memiliki panjang sekitar 18 inci dan rentang pengukuran suhu dari 0 °C hingga 80 °C.

Terminal merah pada probe adalah kabel positif yang terbuat dari Chromel (paduan nikel-krom), dan terminal biru adalah kabel negatif yang terbuat dari Alumel (paduan nikel-aluminium).

Probe ini dilapisi dengan bahan isolasi fiberglass, sebuah bahan yang dikenal karena kemampuannya untuk tahan pada suhu tinggi dan kondisi yang keras. Hal ini membuatnya menjadi pilihan yang cocok untuk berbagai proyek.

Probe ini berakhir pada sambungan berulir M6. Jenis sambungan ini memungkinkan thermocouple dapat terpasang pada objek seperti heatsink, di mana ia dapat diikat atau dipasang dengan mur.

Spesifikasi Teknis
Berikut adalah spesifikasinya:

Overating Voltage3.0 to 5.5V
InterfaceHigh Speed SPI
Current Consumption700µA (typ.), 1.5mA (max)
Temperature Range0 – 1024 °C (of MAX6675)0 – 80 °C (of supplied probe)
Accuracy±3 °C
Resolution12-Bit (0.25 °C)
Convertion Time~170 ms

Untuk informasi lebih lanjut mengenai IC MAX6675, silakan merujuk pada lembar data di bawah ini.

Pinout Modul MAX6675

Sekarang mari kita lihat pinoutnya.

Konektor Masukan
VCC adalah pin daya. Sambungkan dengan sumber daya sekitar 3V hingga 5.5V.

GND adalah pin ground.

SCK adalah pin clock SPI.

CS adalah pin pemilihan chip. Tarik pin ini rendah dan terapkan sinyal clock di SCK untuk membaca hasil di SO. Menariknya rendah akan segera menghentikan proses konversi apa pun. Mulailah proses konversi baru dengan menariknya tinggi.

SO adalah pin Serial Data Out / MISO, untuk data 12-bit yang dikirim dari modul ke Arduino Anda. Urutan semua nol berarti pembacaan thermocouple adalah 0°C. Urutan semua satu berarti pembacaan thermocouple adalah +1023.75°C.

adalah tempat Anda menghubungkan Kabel Alumel (biru) dari thermocouple Tipe-K.

+ adalah tempat Anda menghubungkan Kabel Chromel (merah) dari thermocouple Tipe-K.

Menghubungkan Modul MAX6675 ke Arduino
Mari menghubungkan modul MAX6675 ke Arduino. Koneksi-koneksi ini cukup sederhana.

Mulailah dengan menghubungkan pin VCC pada modul ke 5V pada Arduino dan pin GND ke ground.

Selanjutnya, hubungkan tiga pin digital untuk digunakan sebagai antarmuka SPI. Kami menggunakan pin 4, 5, dan 6 sebagai contoh.

Terakhir, pasang probe thermocouple ke modul. Sambungkan kabel merah (Chromel Lead) dari thermocouple ke terminal ‘+’ pada modul, dan kabel biru (Alumel Lead) ke terminal ‘-‘.

Tabel berikut mencantumkan koneksi pin:

Gambar di bawah ini menunjukkan cara membangun rangkaian tersebut.

Catatan Karena modul ini mengonsumsi daya yang sangat sedikit (kurang dari 1,5mA), mungkin memungkinkan untuk memberinya daya menggunakan pin output digital pada mikrokontroler. Jika Anda memutuskan untuk menggunakan metode ini dan mematikan daya MAX6675 antara pembacaan, Anda sebaiknya menunggu beberapa detik setelah menghidupkan kembali daya sebelum mencoba melakukan pembacaan.

Instalasi Library

Tersedia Library yang sangat bagus untuk bekerja dengan modul MAX6675. Anda perlu mengunduh dan menginstalnya dalam Arduino IDE Anda.

Untuk menginstal perpustakaan, navigasi ke Sketch > Include Library > Manage Libraries… Tunggu hingga Manajer Perpustakaan mengunduh indeks perpustakaan dan memperbarui daftar perpustakaan yang telah diinstal.

Saring pencarian Anda dengan memasukkan ‘MAX6675’. Cari perpustakaan MAX6675 oleh Adafruit. Klik pada entri tersebut, lalu pilih Install.

Kode Contoh Arduino Sekarang bahwa semua telah terhubung, mari jalankan sebuah sketsa sederhana untuk menguji modul MAX6675 dengan cepat. Silakan unggah ke Arduino Anda. Anda seharusnya dapat melihat suhu lingkungan yang tercetak pada antarmuka serial.

#include "max6675.h"

// Define the Arduino pins, the MAX6675 module is connected to
int SO_PIN = 4;  // Serail Out (SO) pin
int CS_PIN = 5;  // Chip Select (CS) pin
int SCK_PIN = 6; // Clock (SCK) pin

// Create an instance of the MAX6675 class with the specified pins
MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

void setup() {
  Serial.begin(9600);
  delay(500);
}

void loop() {
  // Read the current temperature and print it to the serial monitor

  // Read the temperature in Celsius
  Serial.print("Temperature: ");
  Serial.print(thermocouple.readCelsius());
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.print("C  |  ");

  // Read the temperature in Fahrenheit
  Serial.print(thermocouple.readFahrenheit());
  Serial.print("\xC2\xB0"); // shows degree symbol
  Serial.println("F");

  delay(1000);
}

Setelah sketsa diunggah, buka monitor serial Anda, dengan mengatur kecepatan baud ke 9600 bps. Cobalah menempatkan thermocouple untuk berkontak dengan bahan yang akan diukur. Anda seharusnya dapat melihat suhu yang diukur mulai ditampilkan.

Penjelasan Kode: Sketsa dimulai dengan memasukkan berkas header MAX6675. Ini memungkinkan kode Arduino berinteraksi dengan modul MAX6675.

#include "max6675.h"

Pada area global yang sama, tiga bilangan bulat, yaitu SO_PIN, CS_PIN, dan SCK_PIN dideklarasikan, yang menentukan pin Arduino yang Anda hubungkan dengan pin keluar serial modul (SO), pin pilihan chip (CS), dan pin clock (SCK).

int SO_PIN = 4;  // Serail Out (SO) pin
int CS_PIN = 5;  // Chip Select (CS) pin
int SCK_PIN = 6; // Clock (SCK) pin

Selanjutnya, sebuah instance dari kelas MAX6675 yang disebut sebagai “thermocouple” dibuat. Itulah yang akan kita gunakan untuk membaca modul dari sekarang. Ini menginisialisasi objek thermocouple dengan pin SCK, CS, dan SO yang telah didefinisikan.

MAX6675 thermocouple(SCK_PIN, CS_PIN, SO_PIN);

Bagian pengaturan (setup) dari kode menginisialisasi komunikasi serial dengan komputer pada kecepatan baud 9600.

void setup() {
  Serial.begin(9600);
  delay(500);
}


Pada loop(), kita membaca dari thermocouple MAX6675 dan mencetaknya ke Serial Monitor. Untuk ini, digunakan dua fungsi perpustakaan:

thermocouple.readCelsius(): returns temperature in Celsius.
thermocouple.readFahrenheit(): returns temperature in Fahrenheit.

Serial.print("Temperature: ");
Serial.print(thermocouple.readCelsius());
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.print("C  |  ");

// Read the temperature in Fahrenheit
Serial.print(thermocouple.readFahrenheit());
Serial.print("\xC2\xB0"); // shows degree symbol
Serial.println("F");

Loop terus berjalan secara tak terbatas, terus membaca dan mencetak suhu setiap detik.

Referensi :
“Interfacing MAX6675 Thermocouple Module with Arduino”  Last Minute Engineer,https://lastminuteengineers.com/max6675-thermocouple-arduino-tutorial/


Diterbitkan

dalam

oleh

Tags:

Comments

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *