Anda di halaman 1dari 8

PENDETEKSIAN SUHU SEKITAR MENGGUNAKAN SENSOR SUHU LM35 BERBASIS MIKROKONTOLER AVR ATMEGA16

Oleh : Rifki Reinaldo, Yudo Prakoso Abstrak Telah dilakukan penelitian yang bertujuan untuk mendeteksi suhu sekitar menggunakan sensor LM35 berbasiskan mikrokontroler AVR ATmega 16. Piranti keras yang digunakan adalah rangkaian sebuah sistem yang terdiri dari sensor, kendali utama, dan LCD sebagai penampil hasil pembacaan sensor. Program yang dirancang untuk merealisasikan tujuan penelitian ini dibuat dalam bahasa C dengan bantuan piranti lunak IDE (integrated development enviroment) codevision AVR. Hasil penelitian menunjukan bahwa nilai suhu yang terdeteksi dengan perintah yang telah ditanamkan didalam kendali utama memberikan hasil yang cukup relevan dengan keabsahan teori suhu kamar secara kualitatif, hal ini memperlihatkan bahwa thermometer digital dapat dijadikan solusi alternatif dari thermometer konvensional pada umumnya. Kata kunci : Mikrokontroler AVR ATMega 16, LM35, ADC, LCD, Codevision AVR 1. PENDAHULUAN agar kelak dapat dijadikan alat pengukur suhu Thermometer atau yang biasa dikenal sebagai alat pengukur dan pendeteksi suhu merupakan sebuah instrumen yang sudah lazim digunakan sebagai alat acuan penentu besarnya suhu yang banyak digunakan diberbagai bidang aplikasi. Keakuratan yang cukup tinggi dari segi pengukurannya pada instrumen analog ini membuat eksistansinya dapat dipertahankan dengan baik dari abad ke abad. Perkembangan teknologi abad 21 yang sangat pesat yang mana didominasi oleh perkembangan teknologi elektronika dan komputer, menyebabkan banyaknya alat-alat ukur analog diciptakan dalam bentuk 2. DASAR TEORI 2.1 Mikrokontroler AVR ATMega 16 Mikrokontroler AVR (Alf and Vegards Risc Prosessor) merupakan salah satu perkembangan produk mikroelektronika dari vendor Atmel. Mikrokontroler AVR memiliki arsitektur RISC (Reduced Instruction Set Computing ) 8 bit, di mana semua intruksi dikemas dalam kode 16 bit dan sebagian besar intruksi dieksekusi dalam 1 (satu) siklus digitalnya, walaupun dari segi harga alat ukur digital kurang kompetitif dibandingkan bentuk analognya, melihat permintaan abab 21 yang dapat dikatakan sebagai jaman digital atau digital age, eksistensi alat-alat ukur digital perlu untuk diseimbangkan dengan alat-alat ukur konvensional pada umumnya . Oleh karena itu, perlu dilakukan penelitian yang ditujukan untuk membuat bentuk digital dari alat ukur analog dalam hal ini, thermometer,
1

alternatif yang lebih modern disamping bentuk konvensionalnya. Penelitian ini direalisasikan menggunakan sebuah pengontrol mikro keluaran ATMEL yaitu AVR ATmega 16 sebagi kendali utama, sensor pendeteksi besaran yang ingin diukur dalam hal ini adalah suhu dengan bantuan IC LM35, sebuah modul LCD untuk menampilkan hasil pembancaan sensor, dan piranti lunak IDE (integrated development enviroment) codevison AVR untuk mengirimkan perintah-perintah yang harus dilakukan oleh kendali utama.

clock . Salah satu chip mikrokontroler jenis AVR yang banyak digunakan adalah tipe ATmega16 yang merupakan mikrokontroller CMOS 8-bit berdaya rendah berbasis arsitektur RISC yang ditingkatkan. ATmega16 mempunyai throughput mendekati 1 MIPS per MHz membuat
2

2.2 . ADC (Analog Digital Converter) ADC merupakan sebuah piranti

pengkonversi sinyal analog kedalam sinyal digtal. ADC biasanya terdapat dalam dua bentuk yaitu single chip atau integrated chip seperti yang ada didalam mikrokontroler AVR Atmega 16. Untuk mereduksi biaya pembuatan telah seperti suatu sistem didalam chip instrumentasi, kendali AVR utama

disainer

sistem daya

dapat

mengoptimasi

komsumsi Pin

terhadap

kecepatan proses . Konfigurasi Mikrokontroller ATmega16 dengan kemasan 40-pin DIP (dual in-line package) ditunjukan pada Gambar 1. Untuk memaksimalkan performa dan AVR paralelisme, mikrokontroler

biasanya orang menggunakan ADC yang terintegrasi pada tersebut.

Mikrokontroler AVR Atmega 16 merupakan tipe AVR yang dilengkapi dengan 8 saluran ADC internal dengan fidelitas 10 bit . Dalam mode operasinya, ADC ATMEGA16 dapat dikonfigurasi, baik sebagai single ended input maupun pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri.
4

menggunakan arsitektur Harvard (dengan memori dan bus terpisah untuk program dan data) . Arsitektur CPU dari AVR ditunjukkan oleh Gambar 1.1. Instruksi pada memori program dieksekusi dengan pipelining single level. Selagi sebuah instruksi sedang dikerjakan, maka instruksi berikutnya akan diambil dari memori program.
3

Gambar 1. Konfigurasi Pin-Pin AVR Atmega 16 kemasan 40 pin.


Gambar 2. Diagram Blok ADC Gambar 1.1. Arsitektur CPU AVR Atmega 16. Proses inisialisasi ADC meliputi proses

penentuan clock, tegangan referensi, format

output data, dan mode pembacaan. Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status Register A), dan SFIOR (special Function IO Register). ADMUX merupakan register 8 bit yang berfungsi menentukan tegangan referensi ADC, format data output, dan saluran ADC yang digunakan. Konfigurasi register ADMUX dapat dilihat pada Gambar 2.1. R E F 1 Gambar 2.1 Register ADMUX Bit penyusunnya sebagai berikut: a. REF[1..0] tegangan Memeiliki referensi merupakan referensi Nilai tegangan Awal bit 00 pengatur ATMega16. sehingga dari pin RE F0 AD LA R MU X4 MU X3 MU X2 MU X1 M U X 0

kontrol dan status dari ADC. Bit penyusunnya sebagai berikut: a. ADEN merupakan bit pengatur

aktivasi ADC. Bernilai awal 0. Jika bernilai 1, maka ADC aktif. b. ADSC merupakan bit penanda mulainya konversi ADC. Bernilai awal 0 selama konversi ADC akan bernilai 1, sedangkan jika konversi selesai, akan bernilai 0. c. ADATE merupakan bit pengatur aktivasi picu otomatis operasi ADC. Bernilai awal 0, jika bernilai1 maka konversi ADC akan dimulai pada saat transisi positif dari sinyal picu yang diplih. Pemiliha bit sinyal ADTS picu pada menggunakan register SFIOR. d. ADIF merupakan bit penanda akhir suatu konversi ADC. Bernilai awal 0. Jika bernilai 1, maka konversi ADC pada saluran telah selesai dan data siap diakses. e. ADIE merupakan bit pengatur aktivasi interupsi yang berhubungan dengan akhir konversi ADC. Bernilai awal 0. Jika berniali 1 dan jika konversi ADC telah selesai, sebuah interupsi akan dieksekusi. f. ADPS[2..0] merupakan bit pengatur clock ADC. Bernilai awal 000. Detail nilai bit dalam tabel .3 SFIOR merupakan register 8 bit

ADC

berasal

AREF. Detail nilai yang lain dapat dilihat pada tabel 5.1. b. ADLAR merupakan bit pemilih mode data keluaran ADC. Bernilai awal / default = 0, sehingga 2 bit tertinggi data hasil konversinya berada di register ADCH dan 8 bit sisanya berada di register ADCL, seperti dalam gambar 3. Apabila bernilai 1, maka hasilnya pada gambar.4 c. MUX[4..0] merupakan bit pemilih saluran pembacaan ADC. Bernilai awal 00000. Untuk 00111. ADCSRA merupakan register 8 bit yang berfungsi melakukan manajemen sinyal mode single ended input, MUX[4..0] bernilai dari 00000 hingga

pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal. ADTS[2..0] yang tidak lain adalah bagian dari SFIOR merupakan bit pengatur picu eksternal operasi ADC. Hanya berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Bernilai

awal 000 sehingga ADC bekerja pada mode free running dan tidak ada interupsi yang akan dihasilkan. Untuk Operasi ADC, bit ACME, konversi PUD, PSR2, dan PSR10 tidak diaktifkan. Dalam proses pembacaan hasil ADC, dilakukan pengecekan

memerlukan penyetelan lanjutan. Meskipun tegangan sensor ini dapat mencapai 30 volt akan tetapi yang diberikan kesensor adalah sebesar 5 volt, sehingga dapat digunakan dengan catu daya tunggal dengan ketentuan bahwa sebesar LM35 60 hanya A dari hal membutuhkan ini berarti yang arus LM35 dapat

terhadap bit ADIF (ADC Interupt Flag) pada register ADCSRA. ADIF akan benilai satu jika konversi sebuah saluran ADC telah selesai dilakukan dan data hasil konversi siap untuk diambil, dan demikian sebaliknya. Data disimpan dalam dua buah register, yaitu ADCH dan ADCL. Besar nilai dari hasil konversi data ADC tersebut dinyatakan dengan persamaan,

mempunyai kemampuan menghasilkan panas (self-heating) sensor menyebabkan kesalahan pembacaan yang rendah yaitu kurang dari 0,5 C pada suhu 25 C .
5

ADC =

( )
Gambar 3. Diagram sensor suhu LM35 3 kaki pada LM35 1 pada gambar 3

dimana Vin adalah tegangan masukan yang dipilih, n merupakan dan Vref jumlah adalah bit yang digunakan, AREF tegangan pada

referensi yang bisa berasal dari pin AVCC, atau tegangan internal mikrokontroler AVR. 2.3 . Sensor Suhu LM35 Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa LM35 komponen memiliki elektronika keakuratan elektronika yang diproduksi oleh National Semiconductor. tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan rangkaian mudah kendali dihubungkan khusus serta dengan tidak

menunjukkan fungsi masing-masing pena diantaranya, pena berfungsi sebagai sumber tegangan kerja dari LM35, pena 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangakauan kerja dari 0 Volt sampai dengan 1,5Volt dengan tegangan operasi LM35 yang dapat digunakan antar 4 Volt sampai 30 Volt. Keluaran sensor ini akan naik sebesar 10mV setiap derajat celcius sehingga diperoleh persamaan sebagai berikut :

Vlm35 = suhu x 10mV


Secara prinsip sensor akan melakukan

penginderaan pada saat perubahan suhu setiap suhu 1 C akan menunjukan tegangan sebesar 10 mV. Pada penempatannya LM35 dapat ditempelkan dengan perekat atau dapat

pula disemen pada permukaan akan tetapi suhunya akan sedikit berkurang sekitar 0,01 C karena terserap pada suhu permukaan tersebut. Dengan cara seperti ini diharapkan selisih antara suhu udara dan suhu permukaan dapat dideteksi oleh sensor LM35 sama dengan suhu disekitarnya, jika suhu udara disekitarnya jauh lebih tinggi atau jauh lebih rendah dari suhu permukaan, maka LM35 berada pada suhu permukaan dan suhu udara disekitarnya . Berikut ini adalah karakteristik dari sensor LM35. Memiliki sensitivitas suhu, dengan faktor skala linier antara tegangan dan suhu 10 mVolt/C, sehingga dapat dikalibrasi langsung dalam celcius. Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5C pada suhu 25 C. Memiliki jangkauan maksimal operasi suhu antara -55 C sampai +150 C. Bekerja pada tegangan 4 sampai 30 volt. Memiliki arus rendah yaitu kurang dari 60 A. 2.4 . LCD (Liquid Crystal Display) LCD merupakan atau suatu liquid media crystal yang display dapat

2X16 atau terdiri dari 2 buah baris dan 16 kolom dapat dilihat pada gambar 4. LCD dengan resolusi 2X16 hanya dapat menampilkan karakter sebanyak 16 buah pada baris 1 dan 2, jika jumlah karakter yang ingin ditampilkan melebihi jumlah ini, maka karakter tersebut tidak akan pernah tampil pada LCD tersebut. Oleh karena itu, dalam penggunaannya kita harus selalu menyesuaikan antara resolusi dan apa yang ingin kita tampilkan pada LCD tersebut agar hasil yang didapat sesuai dengan apa yang kita ekspektasikan.

Gambar 4. Bentuk Modul LCD LCD pada dasarnya memiliki 14 kaki, dimana 8 dari 14 kaki tersebut merupakan kaki masukan data yang ditunjukan pada gambar 4.1 dengan nama port D0 sampai D7. Sementara kaki yang bertandakan RS dan EN yang tidak lain adalah reset dan enable ketika dihubungkan, akan mendapat kendali dari mikrokontroler, mikrokontroler melalui pin ini. dengan akan kata lain LCD mengendalikan

menampilkan informasi dalam bentuk karakter atau grafik secara visual. Modul LCD dapat dihubungkan dengan mikrokontroler sebagai pengendali data apa saja yang perlu dan akan ditampilkan. LCD diperlukan dalam suatu instrumen sebagai output interface untuk menampilkan atau memonitor aktifitas yang sedang diperintahkan oleh mikrokontroler untuk ditampilkan pada LCD tersebut. Dalam produksinya LCD terdiri dari berbagai jenis ukuran resolusi yang didesain seperti halnya sebuah matriks, yaitu mempunyai baris dan kolom. Untuk LCD dengan besar resolusi

gambar 4.1. Konfigurasi kaki LCD

2.5. CodeVision AVR CodeVisionAVR merupakan sebuah cross compiler C, Integrated Development Environtment (IDE), dan Automatic Program Generator yang didesain untuk mikrokontroler buatan Atmel seri AVR. CodeVisionAVR dapat dijalankan pada sistem operasi Windows 95, 98, Me, NT4, 2000, dan XP. Cross-compiler C mampu menerjemahkan hampir semua perintah dari bahasa ANSI C, sejauh yang diijinkan oleh arsitektur dari AVR, dengan tambahan beberapa fitur untuk
6

unsigned char lcd_init(unsigned char lcd_columns): modul LCD, Untuk menginisialisasi layar dan menghapus

meletakkan posisi karakter pada baris ke-0 kolom ke-0. Jumlah kolom pada LCD harus disebutkan (misal, 16). Kursor tidak ditampakkan. Nilai yang dikembalikan adalah 1 bila modul LCD terdeteksi, dan bernilai 0 bila tidak terdapat modul LCD. Fungsi ini harus dipanggil pertama kali sebelum menggunakan fungsi yang lain. void lcd_clear(void): Menghapus layar LCD dan meletakkan posisi karakter pada baris ke-0 kolom ke-0. void lcd_gotoxy(unsigned char x, unsigned char y): Meletakkan posisi karakter pada kolom ke-x baris ke-y. Nomor baris dan kolom dimulai dari nol. void lcd_putchar(char c): Menampilkan karakter c pada LCD. void lcd_putsf(char *str): Menampilkan string yang disimpan pada memori flash terhadap LCD. void lcd_puts(char *str): Menampilkan string yang disimpan pada SRAM terhadap LCD. 3. METODOLOGI PENELITIAN Pada penelitian ini, digunakan sebuah sistem yang sudah terintegrasi dengan baik untuk setiap komponen yang dibutuhkan pada penelitian ini didalam sebuah modul belajar mikrokontroler mengkoneksikan sensor LM35 yang digunakan. kendali seperti Secara utama yang umum, rangkaian sistem tersusun dengan langsung dan LCD yaitu mikrokontroler AVR Atmega 16 dengan ditunjukan pada gambar 5. Port I/O pada mikrokontroler AVR Atmega 16 berjumlah 32 kaki yang terdiri dari 4 blok port yaitu port A,

mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded . File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C, dengan pengamatan variabel, menggunakan debugger Atmel AVR Studio. IDE seperti codevision AVR mempunyai fasilitas internal berupa software AVR Chip InSystem Programmer yang memungkinkan kita untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis. 2.6. Pemrograman LCD Memprogram sebuah LCD terhadap sebuah mikrokontroler sangatlah berbeda dengan memprogram keluaran lainnya, karena untuk menampilkan data pada LCD dari mikrokontroler memerlukan beberapa fungsi-fungsi tertentu yang harus disertakan pada compiler program. Pada codevision AVR fungsi-fungsi tersebut telah disediakan dan user dapat mengaksesnya dengan mudah. Fungsi fungsi untuk mengakses LCD dengan mikrokontroler pada codevision AVR tersebut diantaranya adalah :

B, C, dan D dimana setiap blok port mempunyai 8 pin I/O, tetapi pada penelitian ini sensor LM35 sudah terkoneksi pada port A pin ke-2, karena memang jika kita tidak menggunakan ADC eksternal maka kita dapat menggunakan ADC internal milik mikrokontroler AVR Atmega 16 yang hanya terdapat pada port A, dan untuk LCD juga sudah terkoneksi pada port C dengan resolusi 2x16. Pada proses kalibrasi oleh ADC digunakan tegangan internal kendali utama sebagai tegangan referensi ADC sebesar 2,56 volt dengan resolusi 10 bit. Pada penelitian ini kendali utama akan ditugaskan untuk membaca output tegangan yang dibaca oleh sensor LM35 dan dengan proses kalibrasi oleh ADC, nilai suhu aktual nantinya dapat ditampilkan pada LCD sebagai penampil output hasil pembacaan suhu oleh sensor. Program yang akan dirancang untuk merealisasikan hal ini kurang lebih akan seperti diagram alir dibawah ini.

lcd_gotoxy(0,0); sprintf(lcd_buffer,su hu: %.1fC,suhu) lcd_puts(lcd_buffer);

delay_ms(1000);
Berdasarkan diagram alir tersebut, mikrokontroler akan membaca data suhu yang terdeteksi setiap 1 detik lalu ditampilkan pada LCD dengan bantuan fungsi lcd_buffer agar hasil dapat ditampilkan dalam bentuk karakter dan juga angka secara bersamaan. Program pada penelitian ini dibuat menggunakan piranti lunak IDE (integrated development enviroment) codevision AVR dan express burner yang merupakan piranti lunak pembantu khusus untuk mengunduh program yang telah dibuat kedalam mikrokontroler agar proses pengunduhan

Start char lcd_buffer[16]; float suhu; unsigned int temp; While (true)

tersebut bisa dilakukan dengan lebih mudah.

LCD

Mikrokont roler AVR Atmega 16

Sensor LM35

temp = read_adc(2); suhu = (float) (temp * 2.56 * 100/1023);

Gambar 5. Blok diagram rangkaian sistem 4. HASIL DAN PEMBAHASAN

Dari

hasil

penelitian

yang

telah

dilakukan, program yang dirancang dapat merealisasikan apa yang diekspektasikan.

Suhu yang terdeteksi dari hasil perancangan tersebut sebesar 28.5 celcius yang mana dapat dilihat pada gambar 6. Suhu yang dideteksi memiliki kesesuaian dengan teori bahwa besar rata-rata suhu kamar pada umumnya ada dalam jangkauan 27 sampai 29 celcius.
0 0

mikrokontroler AVR Atmega 16 dan sensor suhu LM35, dapat ditarik kesimpulan bahwa keberadaan sebuah thermometer digital dapat dijadikan solusi alternatif alat pengukur suhu dari thermometer dari serta meskipun konvensional. kemudahan pembangunan dari segi Hal ini alat dibuktikan perancangan tersebut dalam akurasi

thermometer analog lebih baik, tidak menutup kemungkinan bahwa thermometer digital akan dapat menyamai kebaikan tersebut. DAFTAR PUSTAKA 1. Lingga, Sendiri Wardhana. 2006. Belajar AVR,

Mikrokontroler

Yogyakarta. C.V ANDI OFFSET. 2. http://www.datasheet4u.com/datashe ets_pdf/ ATMega16.pdf Gambar 6. Hasil pembacaan suhu sekitar Hal ini menunjukan bahwa program yang dirancang dalam penelitian ini telah berhasil mencapai tujuan yang diinginkan walaupun seharusnya banyak yang harus diperbaiki dalam kegiatan ini seperti pengujian secara kuantitatif yang harus dilakukan terhadap hasil penelitian yang didapatkan, tetapi secara garis besar hasil penelitian ini dapat merepresentasikan keabsahan teori dengan baik. 5. KESIMPULAN Dari hasil penelitian yang telah dilakukan untuk mendeteksi suhu sekitar menggunakan 3. Winoto Ardi. 2008. Mikrokontoler AVR Atmega 16 dan Pemrogramannya dengan Bahasa C pada CodeVision AVR, Jakarta. INFORMATIKA. 4. http://student.eepisits.edu/~basoka/taq/ulet%20titip/PER TEMUAN%2048%20ver%20AVR/Code%20Vision%2 0AVR%20ver%20125%20%20Tutorial/Sekilas%20CodeVisionA VR.pdf 5. http://www.wikipedia.org/LM35 6. http://www.hpinfotech.ro/html/cvavr.ht m