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 penelitia n menunjukan menunju kan bahwa nilai suhu yang terdeteksi terdetek si dengan denga n perintah yang telah ditanamkan ditanam kan didalam kendali utama memberikan membe rikan 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
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.
bentuk
digitalnya, walaupun dari segi harga alat ukur digital kurang kompetitif dibandingkan bentuk
2. DASAR TEORI 2.1 Mikrokontroler AVR ATMega 16
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 1
ukur konvensional pada umumnya . Oleh karena itu, perlu dilakukan penelitian yang ditujukan untuk membuat bentuk digital dari alat ukur analog dalam hal ini, thermometer,
Mikrokontroler AVR (Alf and Vegard’s 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
clock . Salah satu chip mikrokontroler jenis
2.2 . ADC ( Analog Digital Converter )
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
mengoptimasi
disainer
komsumsi
sistem daya
dapat
terhadap
2
kecepatan proses . Konfigurasi
Pin
Mikrokontroller
ATmega16 dengan kemasan 40-pin DIP (dual in-line package) ditunjukan pada Gambar 1.
Untuk
memaksimalkan
paralelisme, menggunakan
performa
mikrokontroler arsitektur
Harvard
dan AVR
(dengan
memori dan bus terpisah untuk program dan 3
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.
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.
pembuatan
Untuk
suatu
mereduksi
sistem
biaya
instrumentasi,
biasanya orang menggunakan ADC yang telah
terintegrasi
seperti
pada
didalam chip
kendali AVR
utama
tersebut.
Mikrokontroler AVR Atmega 16 merupakan tipe AVR yang dilengkapi dengan 8 saluran 4
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.
Gambar 1. Konfigurasi Pin-Pin AVR Atmega 16 kemasan 40 pin.
Gambar 2. Diagram Blok ADC
Gambar 1.1. Arsitektur CPU AVR
Proses
inisialisasi
ADC
meliputi
proses
Atmega 16.
penentuan clock, tegangan referensi, format
output data, dan mode pembacaan. Register
kontrol dan status dari ADC . Bit penyusunnya
yang perlu diset nilainya adalah ADMUX
sebagai berikut:
(ADC
Multiplexer
Selection
Register) ,
ADCSRA (ADC Control and Status Register
a.
ADEN
merupakan
bit
pengatur
A), dan SFIOR (special Function IO Register).
aktivasi ADC . Bernilai awal 0. Jika
ADMUX
bernilai 1, maka ADC aktif.
merupakan
berfungsi
register
menentukan
8
bit
tegangan
yang
referensi
b.
ADSC
merupakan
bit
penanda
ADC, format data output, dan saluran ADC
mulainya konversi ADC . Bernilai awal
yang digunakan. Konfigurasi register ADMUX
0 selama konversi ADC akan bernilai
dapat dilihat pada Gambar 2.1.
1, sedangkan jika konversi selesai, akan bernilai 0. c.
ADATE
merupakan
bit
pengatur
R
RE
AD
MU
MU
MU
MU
M
E
F0
LA
X4
X3
X2
X1
U
aktivasi picu otomatis operasi ADC .
X
Bernilai awal 0, jika bernilai1 maka
0
konversi ADC akan dimulai pada saat
F
R
1
transisi positif dari sinyal picu yang Gambar 2.1 Register ADMUX
diplih.
Pemiliha
menggunakan Bit penyusunnya sebagai berikut: a.
REF[1..0]
merupakan
tegangan
referensi
Memeiliki
Nilai
referensi
Awal
tegangan
pengatur
d.
00
berasal
dari
siap diakses. e.
tertinggi
data
akhir konversi ADC . Bernilai awal 0. Jika berniali 1 dan jika konversi ADC
hasil
telah selesai, sebuah interupsi akan
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
mode
single
ended
input ,
MUX[4..0] bernilai dari 00000 hingga 00111. ADCSRA merupakan register 8 bit yang berfungsi melakukan manajemen sinyal
ADIE merupakan bit pengatur aktivasi interupsi yang berhubungan dengan
keluaran ADC. Bernilai awal / default = 0, bit
ADIF merupakan bit penanda akhir
pada saluran telah selesai dan data
pin
ADLAR merupakan bit pemilih mode data
2
pada
Jika bernilai 1, maka konversi ADC
sehingga
pada tabel 5.1.
sehingga
ADTS
suatu konversi ADC . Bernilai awal 0.
ATMega16.
AREF. Detail nilai yang lain dapat dilihat
b.
picu
register SFIOR.
bit
ADC
bit
sinyal
dieksekusi. f.
ADPS[2..0] merupakan bit pengatur clock ADC . Bernilai awal 000. Detail nilai bit dalam tabel .3 SFIOR
merupakan
register
8
bit
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
memerlukan penyetelan lanjutan. Meskipun
free running dan tidak ada interupsi yang
tegangan sensor ini dapat mencapai 30 volt
akan dihasilkan. Untuk Operasi ADC, bit
akan tetapi yang diberikan kesensor adalah
ACME,
tidak
sebesar 5 volt, sehingga dapat digunakan
Dalam proses pembacaan hasil
dengan catu daya tunggal dengan ketentuan
PUD,
diaktifkan. konversi
PSR2,
ADC,
dan
PSR10
dilakukan
pengecekan
bahwa
LM35
hanya
membutuhkan
arus
terhadap bit ADIF (ADC Interupt Flag) pada
sebesar
register ADCSRA. ADIF akan benilai satu jika
mempunyai kemampuan menghasilkan panas
konversi sebuah saluran ADC telah selesai
(self-heating)
dilakukan dan data hasil konversi siap untuk
menyebabkan kesalahan pembacaan yang
diambil,
rendah yaitu kurang dari 0,5 ºC pada suhu 25
dan
demikian
sebaliknya.
Data
disimpan dalam dua buah register, yaitu
60
µA
hal
dari
ini
berarti
sensor
LM35
yang
dapat
5
ºC .
ADCH dan ADCL. Besar nilai dari hasil konversi
data ADC tersebut dinyatakan
dengan persamaan,
ADC =
( − ) ∗
Gambar 3. Diagram sensor suhu LM35 dimana Vin adalah tegangan masukan yang dipilih,
n
digunakan,
merupakan dan
Vref
jumlah
bit
yang
adalah
tegangan
referensi yang bisa berasal dari pin AVCC, AREF
atau
tegangan
internal
pada
mikrokontroler AVR.
3
kaki
pada
LM35
menunjukkan
fungsi
diantaranya,
pena
pada
gambar
masing-masing 1
berfungsi
3
pena
sebagai
sumber tegangan kerja dari LM35, pena 2 atau tengah digunakan sebagai tegangan keluaran atau Vout dengan jangakauan kerja
2.3 . Sensor Suhu LM 35
dari 0 Volt sampai dengan 1,5Volt dengan Sensor suhu LM35 adalah komponen elektronika
memiliki
LM35
yang
dapat
digunakan antar 4 Volt sampai 30 Volt.
mengubah besaran suhu menjadi besaran
Keluaran sensor ini akan naik sebesar 10mV
listrik dalam bentuk tegangan. Sensor Suhu
setiap derajat celcius sehingga diperoleh
LM35 yang dipakai dalam penelitian ini
persamaan sebagai berikut :
komponen
fungsi
operasi
untuk
berupa
yang
tegangan
elektronika
elektronika
yang diproduksi oleh National Semiconductor. LM35
memiliki
keakuratan
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
Vlm35 = suhu x 10mV
dengan tidak
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
2X16 atau terdiri dari 2 buah baris dan 16
suhunya akan sedikit berkurang sekitar 0,01
kolom dapat dilihat pada gambar 4. LCD
ºC karena terserap pada suhu permukaan
dengan
tersebut. Dengan cara seperti ini diharapkan
menampilkan karakter sebanyak 16 buah
selisih
pada baris 1 dan 2, jika jumlah karakter yang
antara
suhu
udara
dan
suhu
resolusi
2X16
hanya
dapat
permukaan dapat dideteksi oleh sensor LM35
ingin ditampilkan melebihi jumlah ini, maka
sama dengan suhu disekitarnya, jika suhu
karakter tersebut tidak akan pernah tampil
udara disekitarnya jauh lebih tinggi atau jauh
pada LCD tersebut. Oleh karena itu, dalam
lebih rendah dari suhu permukaan, maka
penggunaannya
LM35 berada pada suhu permukaan dan suhu
menyesuaikan antara resolusi dan apa yang
udara
ingin kita tampilkan pada LCD tersebut agar
disekitarnya
.
Berikut
ini
adalah
kita
harus
selalu
karakteristik dari sensor LM35.
hasil yang didapat sesuai dengan apa yang
• Memiliki sensitivitas suhu, dengan faktor
kita ekspektasikan.
skala linier antara tegangan dan suhu 10 mVolt/ºC, sehingga dapat dikalibrasi langsung dalam celcius. • Memiliki ketepatan atau akurasi kalibrasi yaitu 0,5ºC pada suhu 25 ºC. • Memiliki jangkauan maksimal operasi suhu antara -55 ºC sampai +150 ºC. • Bekerja pada tegangan 4 sampai 30 volt.
Gambar 4. Bentuk Modul LCD
• Memiliki arus rendah yaitu kurang dari 60 µA.
LCD pada dasarnya memiliki 14 kaki, dimana 8 dari 14 kaki tersebut merupakan kaki
2.4 . LCD (Liquid Crystal Display )
masukan data yang ditunjukan pada gambar display
4.1 dengan nama port D0 sampai D7.
dapat
Sementara kaki yang bertandakan RS dan EN
menampilkan informasi dalam bentuk karakter
yang tidak lain adalah reset dan enable ketika
atau grafik secara visual. Modul LCD dapat
dihubungkan, akan mendapat kendali dari
dihubungkan dengan mikrokontroler sebagai
mikrokontroler,
pengendali data apa saja yang perlu dan akan
mikrokontroler
ditampilkan. LCD diperlukan dalam suatu
melalui pin ini.
LCD merupakan
atau
liquid
suatu
media
crystal
yang
dengan akan
kata
mengendalikan
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
lain LCD
2.5. CodeVision AVR
• unsigned char lcd_init(unsigned char lcd_columns):
CodeVisionAVR merupakan sebuah
modul
cross compiler C, Integrated Development
seri
dapat
dijalankan
AVR. pada
ditampakkan.
operasi
beberapa
fitur
•
baris ke-0 kolom ke-0.
6
object
COFF
hasil
kompilasi
•
dapat
seperti
codevision
AVR
System Programmer yang memungkinkan kita untuk melakukan transfer program kedalam chip mikrokontroler setelah sukses melakukan kompilasi/asembli secara otomatis.
char
x,
Meletakkan posisi
Nomor baris dan kolom dimulai dari nol. • void lcd_putchar(char c): Menampilkan
mempunyai
fasilitas internal berupa software AVR Chip In-
lcd_gotoxy(unsigned
karakter pada kolom ke-x baris ke-y.
tingkatan C, dengan pengamatan variabel,
IDE
void
unsigned char y):
digunakan untuk keperluan debugging pada
menggunakan debugger Atmel AVR Studio.
void lcd_clear(void): Menghapus layar
LCD dan meletakkan posisi karakter pada
mengambil kelebihan khusus dari arsitektur
File
dikembalikan
sebelum menggunakan fungsi yang lain.
untuk
AVR dan kebutuhan pada sistem embedded .
yang
Fungsi ini harus dipanggil pertama kali
hampir semua perintah dari bahasa ANSI C,
tambahan
Nilai
bernilai 0 bila tidak terdapat modul LCD.
Cross-compiler C mampu menerjemahkan
dengan
dan
adalah 1 bila modul LCD terdeteksi, dan
Windows 95, 98, Me, NT4, 2000, dan XP.
sejauh yang diijinkan oleh arsitektur dari AVR,
layar
harus disebutkan (misal, 16). Kursor tidak
CodeVisionAVR sistem
menghapus
kolom ke-0. Jumlah kolom pada LCD
Generator yang didesain untuk mikrokontroler
Atmel
menginisialisasi
meletakkan posisi karakter pada baris ke-0
Environtment (IDE), dan Automatic Program
buatan
LCD,
Untuk
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.
2.6. Pemrograman LCD
Memprogram sebuah LCD terhadap
3. METODOLOGI PENELITIAN
sebuah
mikrokontroler
sangatlah
berbeda
Pada penelitian ini, digunakan sebuah
dengan
memprogram
keluaran
lainnya,
sistem yang sudah terintegrasi dengan baik
karena untuk menampilkan data pada LCD
untuk setiap komponen yang dibutuhkan pada
dari
penelitian ini didalam sebuah modul belajar
mikrokontroler
memerlukan
beberapa
fungsi-fungsi tertentu yang harus disertakan
mikrokontroler
pada compiler program. Pada codevision AVR
umum, rangkaian sistem tersusun dengan
fungsi-fungsi tersebut telah disediakan dan
mengkoneksikan
user dapat mengaksesnya dengan mudah.
yaitu mikrokontroler AVR Atmega 16 dengan
Fungsi
sensor
-
fungsi
untuk
mengakses
LCD
LM35
yang
digunakan.
langsung
dan
LCD
kendali
seperti
Secara
utama
yang
dengan mikrokontroler pada codevision AVR
ditunjukan pada gambar 5. Port I/O pada
tersebut diantaranya adalah :
mikrokontroler AVR Atmega 16 berjumlah 32 kaki yang terdiri dari 4 blok port yaitu port A,
B,
C,
dan
D
dimana
setiap
blok
port
1
mempunyai 8 pin I/O, tetapi pada penelitian ini sensor LM35 sudah terkoneksi pada port A
lcd_gotoxy(0,0); sprintf(lcd_buffer,”su hu:%.1fC”,suhu) lcd_puts(lcd_buffer);
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.
delay_ms(1000); Berdasarkan
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
mikrokontroler
Start
diagram
telah
agar
dibuat
proses
kedalam
pengunduhan
tersebut bisa dilakukan dengan lebih mudah.
charlcd_buffer[16]; floatsuhu; unsignedinttemp; LCD
Mikrokont rolerAVR Atmega16
Sensor LM35
While(true)
temp=read_adc(2); suhu=(float)(temp* 2.56*100/1023);
Gambar 5. Blok diagram rangkaian sistem
4. HASIL DAN PEMBAHASAN
1
Dari
hasil
penelitian
yang
telah
dilakukan, program yang dirancang dapat merealisasikan apa yang diekspektasikan.
Suhu yang terdeteksi dari hasil perancangan 0
mikrokontroler AVR Atmega 16 dan sensor
tersebut sebesar 28.5 celcius yang mana
suhu LM35, dapat ditarik kesimpulan bahwa
dapat dilihat pada gambar 6. Suhu yang
keberadaan sebuah thermometer digital dapat
dideteksi memiliki kesesuaian dengan teori
dijadikan solusi alternatif alat pengukur suhu
bahwa besar rata-rata suhu kamar pada
dari
umumnya ada dalam jangkauan 27 sampai
dibuktikan
0
29 celcius.
thermometer dari
perancangan tersebut
konvensional.
Hal
kemudahan
serta
meskipun
dalam
pembangunan dari
segi
ini
alat
akurasi
thermometer analog lebih baik, tidak menutup kemungkinan bahwa thermometer digital akan dapat menyamai kebaikan tersebut. DAFTAR PUSTAKA
1.
Lingga, Sendiri
Wardhana.
2006.
Belajar
Mikrokontroler
AVR,
Yogyakarta. C.V ANDI OFFSET. 2.
http://www.datasheet4u.com/datashe ets_pdf/ ATMega16 .pdf
Gambar 6. Hasil pembacaan suhu sekitar
3.
Winoto Ardi. 2008. Mikrokontoler AVR Atmega
dengan Bahasa C pada CodeVision
Hal ini menunjukan bahwa program
AVR, Jakarta. INFORMATIKA.
yang dirancang dalam penelitian ini telah berhasil mencapai tujuan yang diinginkan
16 dan Pemrogramannya
4.
http://student.eepis-
walaupun seharusnya banyak yang harus
its.edu/~basoka/taq/ulet%20titip/PER
diperbaiki dalam kegiatan ini seperti pengujian
TEMUAN%204-
secara
8%20ver%20AVR/Code%20Vision%2
kuantitatif
yang
harus
dilakukan
terhadap hasil penelitian yang didapatkan,
0AVR%20ver%20125%20-
tetapi secara garis besar hasil penelitian ini
%20Tutorial/Sekilas%20CodeVisionA
dapat merepresentasikan keabsahan teori
VR.pdf
dengan baik.
5. KESIMPULAN
Dari hasil penelitian yang telah dilakukan untuk mendeteksi suhu sekitar menggunakan
5.
http://www.wikipedia.org/LM35
6.
http://www.hpinfotech.ro/html/cvavr.ht m