TERMOMETER DIGITAL DENGAN SENSOR TERMOKOPEL K

Rachmad Hartono *)

Jurusan Teknik Mesin
Fakultas Teknik - Universitas Pasundan Bandung

Abstrak : Temperatur zat merupakan salah satu besaran penting dalam termodinamika. Temperatur zat dapat diketahui dengan menggunakan termometer. Termometer yang sering digunakan adalah termometer gelas air raksa. Dengan menggunakan termometer ini temperatur suatu zat dapat diketahui secara langsung. Pada umumnya jangkauan pengukuran termometer gelas air raksa antara 0 oC sampai dengan 200 oC. Semakin lebar jangkauan pengukuran termometer gelas air raksa, semakin panjang dimensi termometer gelas air raksa. Dengan menggunakan termometer yang panjang, pengukuran temperatur menjadi tidak praktis lagi. Untuk mengatasi hal ini, pengukuran temperatur dapat dilakukan dengan menggunakan termometer digital dengan sensor berupa termokopel tipe K. Dengan menggunakan sensor tersebut, secara teoritis, pengukuran temperatur dapat dilakukan sampai temperatur 1250 oC.

Kata kunci : temperatur, termometer, digital

I.	
I.	PENDAHULUAN
Jumlah elektron bebas pada suatu keping logam tergantung pada temperatur dan jenis logam yang bersangkutan. Dua buah pasangan logam yang ujung-ujungnya disatukan dan setiap ujungnya berada pada temperatur yang berbeda, pada salah satu sambungannya akan menunjukkan adanya beda potensial. Beda potensial antara kedua pasangan logam tersebut tergantung pada selisih temperatur antara ujung-ujung sambungan, Doebolin [1]. Beda potensial antara kedua pasangan logam akibat beda temperatur antara kedua ujung sambungan logam diilustrasikan pada Gambar 1.

Gambar 1 

Beda potensial antara kedua pasangan logam akibat beda temperatur pada kedua ujung sambungan

*) Email : rachmad_hartono@yahoo.com

Bila salah satu temperatur pada ujung sambungan dijaga konstan, maka beda potensial antara kedua ujung sambungan logam akan sebanding dengan temperatur ujung sambungan yang lain. Cara paling mudah menjaga temperatur ujung sambungan berada pada harga yang konstan adalah dengan menempelkan ujung sambungan tersebut pada sesuatu yang sedang berubah fasa. Pada umumnya temperatur yang dijadikan temperatur referensi adalah temperatur es yang sedang mencair pada tekanan 1 atmosfir. Pada tingkat keadaan ini es yang mencair akan mempunyai temperatur 0oC. 

Sambungan logam seperti yang telah diuraikan di atas disebut dengan termokopel. Sifat termokopel seperti yang telah diuraikan, dapat dimanfaatkan untuk mengetahui temperatur suatu zat. Agar temperatur suatu zat yang terukur oleh termokopel dapat ditampilkan menjadi suatu besaran yang berarti, diperlukan beberapa komponen-komponen tertentu yang secara keseluruhan membentuk suatu alat ukur temperatur digital. Komponen-komponen tersebut adalah IC AD595, mikrokontroller, dan LCD.

II.	IC AD595
IC AD595 adalah salah satu IC yang dapat digunakan sebagai penguat sinyal yang berasal dari termokopel. Pada IC ini juga terdapat cold junction compensator. Termokopel tipe K dapat langsung dihubungkan dengan IC AD595 dan IC AD595 akan menghasilkan output tegangan 10 mV/oC, Hasibuan [2]. Diagram blok fungsional IC AD595 dapat dilihat pada Gambar 2.

Gambar 2 

Diagram blok fungsional IC AD595

Rangkaian dasar IC AD595 yang digunakan untuk mengukur temperatur dengan menggunakan sensor termokopel tipe K  dapat dilihat pada Gambar 3. Dengan menggunakan rangkaian tersebut, output yang dapat dihasilkan oleh IC AD595 berkisar antara 0 Volt sampai dengan 3 Volt. Atau dengan kata lain, sistem tersebut dapat mengukur temperatur dengan jangkauan pengukuran 0oC sampai dengan 300oC. Bila catu daya pada kaki 11 (V+) diberi tegangan 15 Volt, maka sistem tersebut dapat mengukur temperatur dengan jangkauan pengukran 0oC sampai dengan 1250oC, [2].

Gambar 3 

Rangkaian dasar IC AD595

I.	
III.	MIKROKONTROLLER  ATMega8535
Output IC AD595 sebenarnya bisa secara langsung diukur dengan menggunakann Voltmeter. Tegangan yang terukur (dalam mV) dibagi 10 merupakan temperatur yang terukur pada ujung termokopel. Untuk kepentingan praktis, output IC AD595 diolah terlebih dahulu dengan menggunakan Analog to Digital Converter (ADC). Sinyal analog yang berasal dari IC AD595 oleh ADC diubah menjadi sinyal digital [2].

Untuk keperluan pengolahan sinyal analog menjadi sinyal digital, digunakan mikrokontroller ATMega8535. Mikrokontroller ini mempunyai 8 jalur ADC dengan resolusi 10 bit. Jalur-jalur ADC tersebut terdapat pada PORTA.0 sampai dengan PORTA.7 (kaki 33 s.d kaki 40). Bentuk mikrokontroller ATMega8535 dan penamaan kaki-kakinya dapat dilihat pada Gambar 4 [2].

Gambar 4 

Mikrokontroller ATMega8535

IV.	LCD
LCD pada termometer digital digunakan sebagai penunjuk alat ukur. LCD yang digunakan adalah LCD tipe LMB162A. Agar LCD ini dapat digunakan sebagai tampilan hasil pengukuran, kaki-kaki LCD harus dihubungkan dengan sumber catu daya dan kaki-kaki mikrokontroller. Hubungan antara kaki-kaki LCD dengan kaki-kaki mikrokotroller dapat dilihat pada Tabel 1. LCD tipe LMB162A dapat dilihat padaGambar 5, [3].
Tabel 1

Hubungan antara LCD dan ATMega8535

LCD	ATMega8535	
RS (PIN 4)	PX.0	
RD (PIN 5)	PX.1	
EN (PIN 6)	PX.2	
DB4 (PIN 11)	PX.4	
DB5 (PIN 12)	PX.5	
DB6 (PIN 13)	PX.6	
DB7 (PIN 14)	PX.7	

Gambar 5 

LCD tipe LMB162A

I.	
V.	SKEMATIK RANGKAIAN
Skematik rangkaian alat ukur temperatur digital dapat dilihat pada Gambar 6. Output IC AD595 dihubungkan dengan kaki ADC0 ATMega8535. Hasil konversi data analog menjadi data digital ditampilkan ke LCD melalui PORTC Atmega8535, Williams [4].

Gambar 6 
Skematik rangkaian alat ukur temperatur digital

VI.	PENGUJIAN ALAT UKUR TEMPERATUR DIGITAL

Pengujian alat ukur temperatur digital dilakukan dengan cara mengukur temperatur oli yang dipanaskan dengan menggunakan alat ukur temperatur digital dan dengan menggunakan alat ukur temperatur yang lain. Hasil pengukuran temperatur oli dengan menggunakan alat ukur temperatur yang lain dan hasil nilai konversi ADC pada alat ukur digital dicatat. Pada temperatur kurang dari 150 oC pengukuran temperatur oli dilakukan dengan menggunakan termometer gelas air raksa. Pada temperatur lebih dari 150 oC pengukuran temperatur oli dilakukan dengan menggunakan infra red termometer. Hasil pengujian dapat dilihat pada Tabel 2. Grafik antara nilai konversi ADC dan temperatur pengukuran dapat dilihat pada Gambar 7, [2].

Tabel 2 
Data pengujian alat ukur temperatur digital

Nilai Konversi ADC	Temperatur
oC	Nilai Konversi ADC	Temperatur
oC	Nilai Konversi ADC	Temperatur
oC	
6	2	207	92	388	196	
49	24	218	98	400	202	
58	25	227	101	408	206	
59	25	238	108	418	212	
69	32	247	111	428	217	
79	36	258	118	438	221	
89	41	267	120	449	225	
98	45	276	125	459	232	
104	47	288	131	468	235	
114	53	298	138	479	241	
124	59	308	140	487	247	
136	63	317	145	498	251	
148	66	326	152	509	257	
158	70	339	170	519	262	
168	76	350	176	527	268	
180	78	358	182	538	271	
188	80	367	186	549	278	
196	88	379	190	558	280	
I.	
VII.	ANALISA DATA

Dari hasil pengujian dapat dilihat bahwa antara temperatur dengan nilai konversi ADC berkorelasi linier. Persamaan yang mengkorelasikan antara nilai konversi ADC dengan temperatur adalah :
y = 0.5206 x – 9.9593 .......... (1)
Jika persamaan tersebut diterapkan maka pada nilai konversi ADC yang rendah (nilai konversi ADC kurang dari 148) terjadi penyimpangan nilai temperatur yang cukup signifikan. Nilai konversi ADC, temperatur, dan nilai temperatur dari perhitungan dengan menggunakan persamaan 1 dapat dilihat pada Tabel 3.

Gambar 7 
Grafik pengujian alat ukur temperatur digital

Tabel 3
Nilai konversi ADC, temperatur terukur, dan temperatur hasil perhitungan

Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	
6	2	-7	
49	24	16	
58	25	20	
59	25	21	
69	32	26	
79	36	31	
89	41	36	
98	45	41	
104	47	44	
114	53	49	
124	59	55	
136	63	61	
148	66	67	

Untuk mengatasi kesalahan yang cukup signifikan pada perhitungan nilai temperatur jika digunakan persamaan 1, perlu dicari korelasi yang baru antara nilai konversi ADC dengan temperatur. Korelasi yang baru dicari untuk nilai konversi ADC dari 2 sampai dengan 227. Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi 2 sampai dengan 227 dapat dilihat pada Gambar 8.

Gambar 8 
Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 2 
sampai dengan 227

Persamaan yang mengkorelasikan antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 2 sampai dengan 227 adalah :
y = 0.4405 x + 1.0853 .......... (2)
Nilai konversi ADC, temperatur, dan nilai temperatur dari perhitungan dengan menggunakan persamaan 2 dapat dilihat pada Tabel 4. 

Pada Tabel 4 dapat dilihat bahwa selisih maksimum antara temperatur terukur dengan temperatur hasil perhitungan adalah 4 oC (terjadi pada nilai konversi ADC 188).

Tabel 4
Nilai konversi ADC, temperatur terukur, dan temperatur hasil perhitungan

Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	
6	2	4	124	59	56	
49	24	23	136	63	61	
58	25	27	148	66	66	
59	25	27	158	70	71	
69	32	31	168	76	75	
79	36	36	180	78	80	
89	41	40	188	80	84	
98	45	44	196	88	87	
104	47	47	207	92	92	
114	53	51	218	98	97	

Korelasi antara nilai konversi ADC dengan temperatur yang berikutnya diamati untuk nilai konversi ADC 227 sampai dengan 326. Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi 227 sampai dengan 326 dapat dilihat pada Gambar 9.

Gambar 9 

Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 227 
sampai dengan 326

Persamaan yang mengkorelasikan antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 227 sampai dengan 326 adalah :
y = 0.4941 x – 10.739 .......... (3)
Nilai konversi ADC, temperatur, dan nilai temperatur dari perhitungan dengan menggunakan persamaan 3 dapat dilihat pada Tabel 5. 

Pada Tabel 5 dapat dilihat bahwa selisih maksimum antara temperatur terukur dengan temperatur hasil perhitungan adalah 2 oC (terjadi pada nilai konversi ADC 326).

Tabel 5
Nilai konversi ADC, temperatur terukur, dan temperatur hasil perhitungan
Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	
227	101	101	
238	108	107	
247	111	111	
258	118	117	
267	120	121	
276	125	126	
288	131	132	
298	138	137	
308	140	141	
317	145	146	
326	152	150	

Korelasi antara nilai konversi ADC dengan temperatur yang berikutnya diamati untuk nilai konversi ADC 326 sampai dengan 558. Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi 326 sampai dengan 558 dapat dilihat pada Gambar 10.

Gambar 10 
Grafik korelasi antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 326 
sampai dengan 558

Persamaan yang mengkorelasikan antara nilai konversi ADC dengan temperatur untuk nilai konversi ADC 326 sampai dengan 558 adalah :
y = 0.5178 x – 6.3466 .......... (4)
Nilai konversi ADC, temperatur, dan nilai temperatur dari perhitungan dengan menggunakan persamaan 4 dapat dilihat pada Tabel 6. 

Pada Tabel 6 dapat dilihat bahwa selisih maksimum antara temperatur terukur dengan temperatur hasil perhitungan adalah 10 oC (terjadi pada nilai konversi ADC 326).

Tabel 6
Nilai konversi ADC, temperatur terukur, dan temperatur hasil perhitungan

Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	
326	152	162	
339	170	169	
350	176	175	
358	182	179	
367	186	184	
379	190	190	
388	196	195	
400	202	201	
408	206	205	
418	212	210	
428	217	215	

Tabel 6
Nilai konversi ADC, temperatur terukur, dan temperatur hasil perhitungan
Nilai konversi ADC	Temperatur
oC	Temperatur hasil perhitungan oC	
438	221	220	
449	225	226	
459	232	231	
468	235	236	
479	241	242	
487	247	246	
498	251	252	
509	257	257	
519	262	262	
527	268	267	
538	271	272	
549	278	278	
558	280	283	

Temperatur hasil perhitungan pada nilai konversi ADC 326 menunjukkan nilai yang berbeda bila perhitungan dilakukan dengan menggunakan persamaan (3) dan persamaan (4). Bila digunakan persamaan (3) temperatur hasil perhitungan adalah 150 oC. Bila digunakan persamaan (4)  temperatur  hasil  perhitungan 162 oC. Karena perbedaan hasil perhitungan cukup signifikan, pada selang nilai konversi ADC 326 dan 339 perlu dicari korelasi yang baru. 

Berdasarkan persamaan (3) pada nilai konversi ADC 326 temperatur hasil perhitungan adalah 150 oC. Berdasarkan persamaan (4) pada nilai konversi ADC 339 temperatur hasil perhitungan adalah 169 oC. Berdasarkan kedua data tersebut korelasi antara nilai konversi ADC dengan temperatur pada selang nilai konversi ADC 326 sampai dengan 339 adalah :
y = 0.5178 x – 6.3466 .......... (5)
VIII.	KESIMPULAN

Dari pembahasan pada paragrap-paragrap sebelumnya, dapat disimpulkan bahwa alat ukur temperatur digital dengan komponen-komponen penyusun seperti yang telah dijelaskan, sangat memungkinkan digunakan untuk mengukur temperatur dengan jangkauan pengukuran 2 oC sampai dengan 280 oC. Agar temperatur yang ditampilkan oleh termometer digital sesuai dengan temperatur yang  ”sebenarnya”, pengubahan nilai konversi ADC menjadi temperatur dilakukan dengan menggunakan beberapa persamaan yang telah diuraikan sebelumnya. Bila nilai konversi ADC berharga 2 sampai dengan 227 maka digunakan persamaan (2). Bila nilai konversi ADC berharga 227 sampai dengan 326 maka digunakan persamaan (3). Bila nilai konversi ADC berharga 326 sampai dengan 339 maka digunakan persamaan (5). Bila nilai konversi ADC berharga 339 sampai dengan 558 maka digunakan persamaan (1). 

IX.	DAFTAR RUJUKAN
[1]	Doebelin, Ernest O., (1990), Measurement And Design, Fourth Edition, McGraw-Hill Publishing Company.
[2]	Hasibuan, Suparman, (2009), Termometer Digital dengan Sensor Termokopel Tipe K, Tugas Akhir Jurusan Teknik Mesin FT UNPAS.
[3]	Prawira, Rifky T., (2007), Pembuatan Prototype Pengukur Kerataan Permukaan Jalan Menggunakan LED-LDR, Tugas Akhir Jurusan Teknik Mesin FT UNPAS.
[4]	Williams, Arthur B., (1984), Designer’s Handbook of Integrated Circuits, McGraw-Hill.

Lampiran : program AVR yang ditanamkan di mikrokontroller
/*******************************************

This program was produced by the
CodeWizardAVR V2.03.9 Standard
Automatic Program Generator
© Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project : 
Version : 
Date    : 1/28/2010
Author  : Rachmad Hartono
Company : Unpas
Comments: 

Chip type               : ATmega8535
Program type            : Application
AVR Core Clock frequency: 16.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 128
*********************************************/

#include <mega8535.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

#include <delay.h>
#define FIRST_ADC_INPUT 0
#define LAST_ADC_INPUT 0
unsigned int adc_data[LAST_ADC_INPUT-FIRST_ADC_INPUT+1];
#define ADC_VREF_TYPE 0x40

// ADC interrupt service routine
// with auto input scanning
interrupt [ADC_INT] void adc_isr(void)
{
static unsigned char input_index=0;
// Read the AD conversion result
adc_data[input_index]=ADCW;
// Select next ADC input
if (++input_index > (LAST_ADC_INPUT-FIRST_ADC_INPUT))
   input_index=0;
ADMUX=(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))+input_index;
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
}

// Declare your global variables here
void tulis(int angka)
{
int ratus, puluh, satu, sisa;
if(angka>99)
  {
  ratus=angka/100;
  sisa=angka%100;
  puluh=sisa/10;
  satu=sisa%10;
  lcd_putchar(48+ratus);
  lcd_putchar(48+puluh);
  lcd_putchar(48+satu);
  }                   
if((angka>9) && (angka<=99))
  {
  puluh=angka/10;
  satu=angka%10;
  lcd_putchar(48+puluh);
  lcd_putchar(48+satu);
  }    
if(angka<=9) lcd_putchar(48+angka);
}

void main(void)
{
// Declare your local variables here
   int a0,a1;
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In //Func4=In Func3=In Func2=In //Func1=In Func0=In 
// State7=T State6=T State5=T //State4=T State3=T State2=T //State1=T State0=T 

PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In //Func4=In Func3=In Func2=In //Func1=In Func0=In 
// State7=T State6=T State5=T //State4=T State3=T State2=T //State1=T State0=T 
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In //Func4=In Func3=In Func2=In //Func1=In Func0=In 
// State7=T State6=T State5=T //State4=T State3=T State2=T //State1=T State0=T 
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In //Func4=In Func3=In Func2=In //Func1=In Func0=In 
// State7=T State6=T State5=T //State4=T State3=T State2=T //State1=T State0=T 
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture //by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);
ADCSRA=0xCF;
SFIOR&=0xEF;

// LCD module initialization
lcd_init(16);
_lcd_ready();
// Global enable interrupts
#asm("sei")

while (1)
      {
      // Place your code here
         a0=adc_data[0];
         if((a0>=2)&&(a0<227))     a1=0.4405*a0+1.0853;
         if((a0>=227)&&(a0<326)) a1=0.4941*a0–10.73;
         if((a0>=326)&&(a0<339)) a1=0.5178*a0–6.3466;
         if(a0>=339) a1=0.5178*a0–6.3466;
         lcd_clear();
         lcd_gotoxy(0,0);
         tulis(a1);
         delay_ms(50);
      };
}