LANDASAN TEORI
2.1 Sensor Suhu IC LM35
Untuk mendeteksi suhu digunakan sebuah sensor suhu LM 35 yang dapat
dikalibrasikan langsung dalam , LM 35 ini difungsikan sebagai basic temperature
sensor seperti pada gambar 2.1
Gambar 2.1 LM 35 basic temperature sensor
IC LM 35 sebagai sensor suhu yang teliti dan terkemas dalam bentuk
Integrated Circuit (IC), dimana output tegangan keluaran sangat linear berpadanan
dengan perubahan suhu. Sensor ini berfungsi sebagai pengubah dari besaran fisis suhu
ke besaran tegangan yang memiliki koefisien sebesar 10 mV /°C yang berarti bahwa
kenaikan suhu 1° C maka akan terjadi kenaikan tegangan sebesar 10 mV.
IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar
karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature
ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35
catu daya terbelah. IC LM 35 dapat dialiri arus 60 m A dari supplay sehingga panas
yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan.
Gambar 2.2 Rangkaian pengukur suhu
LM 35 ialah sensor temperatur paling banyak digunakan untuk praktek, karena
selain harganya cukup murah, linearitasnya juga lumayan bagus. LM35 tidak
membutuhkan kalibrasi eksternal yang menyediakan akurasi ± ¼ °C pada
temperatur ruangan dan ± ¾ °C pada kisaran -55 °C to +150
°C. LM35 dimaksudkan untuk beroperasi pada -55 °C hingga +150 °C,
sedangkan LM35C pada -40 °C hingga +110 °C, dan LM35D pada kisran 0-100°C.
LM35D juga tersedia pada paket 8 kaki dan paket TO-220. Sensor LM35 umunya
akan naik sebesar 10mV setiap kenaikan 1°C (300mV pada 30 °C).
Gambar 2. 3 Bentuk Fisik LM 35
Sensor suhu LM35 berfungsi untuk mengubah besaran fisis yang berupa suhu
kenaikan 1°C tegangan keluarannya naik sebesar 10mV dengan batas maksimal
keluaran sensor adalah 1,5V pada suhu 150°C.
Pada perancangan kita tentukan keluaran ADC mencapai full scale pada saat
suhu 100°C, sehingga tegangan keluaran tranduser (10mV/°C x 100°C) = 1V.
Pengukuran secara langsung saat suhu ruang, keluaran LM35 adalah 0,3V
(300mV). Tengan ini diolah dengan mengunakan rangkaian pengkondisi sinyal agar
sesuai dangan tahapan masukan ADC. LM35 memiliki kelibihan – kelebihan sebagai
berikut:
1. Di kalibrasi langsung dalam celsius
2. Memiliki faktor skala linear + 10.0 mV/°C
3. Memiliki ketetapan 0,5°C pada suhu 25°C
4. Jangkauan maksimal suhu antara -55°C sampai 150°C
5. Cocok untuk applikasi jarak jauh
6. Harganya cukup murah
7. Bekerja pada tegangan catu daya 4 sampai 30Volt
8. Memiliki arus drain kurang dari 60 uAmp
9. Pemanasan sendiri yang lambat ( low self-heating)
10. 0,08˚C diudara diam
11. Ketidak linearanya hanya sekitar ±¼°C
12. Memiliki Impedansi keluaran yang kecil yaitu 0,1 watt untuk beban 1 mAmp.
Sensor suhu tipe LM35 merupakan IC sensor temperatur yang akurat yang
dibandingkan sensor temperatur linear dalam satuan kelvin, karena tidak memerlukan
pembagian dengan konstanta tegangan yang besar dan keluarannya untuk
mendapatkan nilai dalam satuan celcius yang tepat. LM35 memiliki impedansi
keluaran yang rendah, keluaran yang linear, dan sifat ketepatan dalam pengujian
membuat proses interface untuk membaca atau mengotrol sirkuit lebuh mudah. Pin
V+ dari LM35 dihubungkan kecatu daya, pin GND dihubungkan ke Ground dan pin
Vout- yang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke vin
(+) dan ADC 0840.
2.2 Mikrokontroler ATMega8535
Mikrokontroler, sebagai suatu terobosan teknologi mikrokontroler dan
microkomputer, hadir memenuhi kebutuhan pasar (market need) dan teknologi baru.
Sebagai teknologi baru, yaitu teknologi semi konduktor dengan kandungan transistor
yang lebih banyak namun hanya membutuhkan ruang kecil serta dapat diproduksi
secara massal (dalam jumlah banyak) sehingga harga menjadi lebih murah
(dibandingkan microprocessor). Sebagai kebutuhan pasar, mikrokontroler hadir untuk
memenuhi selera industri dan para konsumen akan kebutuhan dan keinginan alat-alat
bantu dan mainan yang lebih canggi serta dalam bidang pendidikan.
Tidak seperti sistem komputer, yang mampu menangani berbagai macam
program aplikasi (misalnya pengolah kata, pengolah angka, dan lain sebagainya),
Mikrokontroler hanya bisa digunakan untuk satu aplikasi tertentu saja. Perbedaan
lainnya terletak pada perbandingan RAM dan ROM-nya. Pada sistem komputer
perbandingan RAM dan ROM-nya besar, artinya program-program pengguna
perangkat keras disimpan dalam ruang ROM yang kecil. Sedangkan Pada
mikrokontroler, perbandingan ROM dan RAM-nya yang besar artinya program
control disimpan dalam ROM yang ukurannya relatif lebih besar, sedangkan RAM
digunakan sebagai tempat penyimpanan sederhana sementara, termasuk
register-register yang digunakan pada Microcontroller yang bersangkutan.
Mikrokontroler saat ini sudah dikenal dan digunakan secara luas pada dunia
industri. Banyak sekali penelitian atau proyek mahasiswa yang menggunakan
berbagai versi mikrokontroller yang dapat dibeli dengan harga yang relatif murah. Hal
ini dikarenakan produksi massal yang dilakukan oleh para produsen chip seperti
Atmel, Maxim, dan Microchip. Mikrokontroler saat ini merupakan chip utama pada
hamper setiap peralatan elektronika canggih. Alat-alat canggih pun sekarang ini pun
sangat bergantung pada kemampuan mikrokontroler tersebut. Mikrokontroler AVR
memiliki arsitektur RISC 8 bit,dimana semua instruksi dikemas dalam kode 16-bit
(16-bit word) dan sebagian besar instruksi dieksekusi dalam 1 (satu) siklus clock,
berbeda dengan instruksi MCS51 yang membutuhkan 12 siklus clock. Tentu saja itu
terjadi karena kedua jenis mikrokontroler tersebut memiliki arsitektur yang berbeda.
AVR berteknologi RISC (Reduced Instruction Set Computing), sedangkan seri
MCS51 berteknologi CISC (Complex Instruction Set Computing). Secara
umum,AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATtiny, keluarga
AT90Sxx, keluarga ATmega, dan AT86RFxx. Pada dasarnya, yang membedakan
masing-masing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur
dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
1. Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16
MHz.
2. Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte, dan EEPROM
(Electrically Erasable Programmable Read Only Memory) sebesar 512 byte.
3. ADC internal dengan fidelitas 10 bit sebanyak 8 channel.
4. Portal komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps.
5. Enam pilihan mode sleep menghemat penggunaan daya listrik.
Konfigurasi pin ATMega8535 bisa dilihat pada gambar 2.4 dibawah ini.
AVR ATMega8535 memiliki ruang pengalamatan memori data dan memori
program yang terpisah. Memori data terbagi menjadi 3 bagian, yaitu 32 buah register
umum, 64 buah register I/O, dan 512 byte SRAM Internal.
Register keperluan umum menempati space data pada alamat terbawah, yaitu
$00 sampai $1F. Sementara itu, register khusus untuk menangani I/O dan control
terhadap mikrokontroller menempati 64 alamat berikutnya, yaitu mulai dari $20
hingga $5F. Register tersebut merupakan register yang khusus digunakan untuk
mengatur fungsi terhadap berbagai peripheral mikrokontroller, seperti control register,
timer/conter, fungsi-fungsi I/O, dan sebagainya. Register khusus alamat memori
secara lengkap Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu
pada lokasi $60 sampai dengan $25F.
Data yang dipakai dalam mikrokontroler ATmega8535 dipresentasikan dalam
sistem bilangan biner, desimal, dan bilangan heksadesimal. Data yang terdapat di
mikrokontroler dapat diolah dengan berbagai operasi aritmatik (penjumlahan,
pengurangan, dan perkalian) maupun operasi nalar (AND, OR, dan EOR /eksklusif
OR). AVR ATmega8535 memiliki tiga buah timer, yaitu:
1. Timer/counter 0 (8 bit)
2. Timer/ counter 1 (16 bit)
3. Timer/counter 2 (8 bit)
Karena ATmega8535 memiliki 8 saluran ADC maka untuk keperluan
konversi sinyal analog menjadi data digital yang berasal dari sensor dapat langsung
1. Mudah dalam pengoperasian.
2. Resolusi 10 bit.
3. Memiliki 8 masukan analog.
4. Konversi pada saat CPU sleep.
5. Interrupt waktu konversi selesai.
2.3 Modul LCD (Liquid Crystal Display) M1632
M1632 merupakan modul LCD matrix dengan konfigurasi 16 karakter dan 2 baris
dengan setiap karakternya dibentuk oleh 8 baris pixel dan 5 kolom pixel (1 baris pixel
terakhir adalah kursor). HD44780 ini sudah tersedia dalam Modul M1632 yang
dikeluarkan oleh Hitachi, Hyundai dan modul-modul M1632 lainnya.
HD44780 sebetulnya merupakan mikrokontroler yang dirancang khusus untuk
mengendalikan LCD dan mempunyai kemampuan untuk mengatur proses scanning
pada layar LCD yang terbentuk oleh 16 COM dan 40 SEG sehingga mikrokontroler
/perangkat yang mengakses modul LCD ini tidak perlu lagi mengatur proses scanning
pada layar LCD. Mikrokontroler atau perangkat tersebut hanya mengirimkan
data-data yang merupakan karakter yang akan ditampilkan pada LCD atau perintah yang
mengatur proses tampilan pada LCD saja.
2.3.1Struktur Memori LCD
Modul LCD M1632 memiliki beberapa jenis memori yang digunakan untuk
menyimpan atau memproses data-data yang akan ditampilkan pada layar LCD. Setiap
a. DDRAM
DDRAM merupakan memori tempat karakter yang ditampilkan berada.
Contohnya, karakter “A” atau 41h yang ditulis pada alamat 00 akan tampil
pada baris pertama dan kolom pertama dari LCD. Apabila karakter tersebut
ditulis di alamat 40h, karakter tersebut akan tampil pada baris kedua kolom
pertama dari LCD
b. CGRAM
CGRAM adalah memori untuk menggambarkan pola sebuah karakter dan
bentuk karakter dapat diubah-ubah sesuai keinginan. Akan tetapi isi memori
akan hilang saat power supply tidak aktif sehingga pola karakter akan hilang.
c. CGROM
CGROM adalah memori untuk menggambarkan pola sebuah karakter dan pola
tersebut sudah ditentukan secara permanen dari HD44780 sehingga pengguna
tidak dapat mengubah lagi. Oleh karena ROM bersifat permanen, pola
karakter tersebut tidak akan hilang walaupun power suplly tidak aktif
2.4 Perangkat Lunak
2.4.1. Bahasa BASIC Menggunakan BASCOM-8051
. Bahasa yang digunakan untuk memprogram IC ATMega8535 yang digunakan
didalam pembuatan alat ini adalah Bahasa BASCOM-8051.
BASCOM-8051 adalah program BASIC compiler berbasis Windows untuk
BASCOM-8051 merupakan bahasa pemrograman tingkat tinggi ayng menggunakan
bahasa BASIC yang dikembangkan dan dikeluarkan oleh MCS Elektronik sebagai
perusahaan yang mempunyai hak paten atas software tersebut. Berikut dijelaskan
spesifikasi dari BASCOM – 8051:
2.4.1.1. Karakter dalam BASCOM
Dalam program BASCOM, karakter dasarnya terdiri atas karakter alphabet (A-Z dan
a-z), karakter numeric (0-9), dan karakter special (lihat tabel 2.1).
Tabel 2.1 Karakter Spesial
karakter Nama
Blank ‘ Apostrophe
* Asterisk (symbol perkalian) + Plus sign
, Comma - Minus sign
. Period (decimal point)
/ Slash (division symbol) will be handled as\ : Colon
“ Double quotation mark ; Semicolon
< Less than
= Equal sign (assignment symbol or relational operator)
> Greater than
2.4.1.2. Tipe Data
Setiap variabel dalam BASCOM memiliki tipe data yang menunjukkan daya
tampungnya. Hal ini berhubungan dengan penggunaan memori mikrokontroler.
Berikut adalah tipe data pada BASCOM berikut keterangannya.
Tabel 2.2 Tipe data BASCOM
Tipe Data Ukuran (byte) Range
Bit 1/8 - Byte 1 0 – 255 Integer 2 -32,768 - +32,767 Word 2 0 – 65535 Long 4 -214783648 - +2147483647 Single 4 - String hingga 254 byte - 2.4.1.3 Variabel
Variabel dalam sebuah pemrograman berfungsi sebagai tempat penyimpanan data
atau penampungan data sementara, misalnya menampung hasil perhitungan,
menampung data hasil pembacaan register, dan lainnya. Variabel merupakan pointer
yang menunjukkan pada alamat memori fisik dan mikrokontroler.
Dalam BASCOM, ada beberapa aturan dalam penamaan sebuah variable:
a. Nama variabel maksimum terdiri atas 32 karakter.
b. Karakter biasa berupa angka atau huruf.
d. Variabel tidak boleh menggunakan kata-kata yang digunkan oleh BASCOM
sebagai perintah, pernyataan, internal register, dan nama operator (AND, OR,
DIM, dan lain-lain).
Sebelum digunakan, maka variabel harus dideklarasikan terlebih dahulu.
Dalam BASCOM, ada beberapa cara untuk mendeklarasikan sebuah variabel. Cara
pertama adalah menggunakan pernyataan ‘DIM’ diikuti nama tipe datanya. Contoh
pendeklarasian menggunakan DIM sebagai berikut:
Dim nama as byte
Dim tombol1 as integer Dim tombol2 as word Dim tombol3 as word Dim tombol4 as word Dim Kas as string*10
2.4.1.4 Alias
Dengan menggunakan alias, variabel yang sama dapat diberikan nama yang lain.
Tujuannya adalah mempermudah proses pemrograman. Umumnya, alias digunakan
untuk mengganti nama variabel yang telah baku, seperti port mikrokontroler.
LEDBAR alias P1 Tombol1 alias P0.1 Tombol2 alias P0.2
Dengan deklarasi seperti diatas, perubahan pada tombol akan mengubah
kondisi P0.1. Selain mengganti nama port, kita dapat pula menggunakan alias untuk
Dim LedBar as byte
Led1 as LedBar.0 Led2 as LedBar.1 Led3 as LedBar.2
2.4.1.5 Konstanta
Dalam BASCOM, selain variabel kita mengenal pula constant. Konstanta meruupakan
variabel pula. Perbedaannya dengan variabel biasa adalah nilai yang dikandung tetap.
Dengan konstanta, kode program yang kita buat akan lebih mudah dibaca dan dapat
mencegah kesalahan penulisan pada program kita. Misalnya, kita akan lebih mudah
menulis phi daripada menulis 3,14159867. Sama seperti variabel, agar konstanta bias
dikenali oleh program, maka harus dideklarasikan terlebih dahulu. Berikut adalah cara
pendeklarasian sebuah konstanta.
Dim A As Const 5
Dim B1 As Const &B1001
Cara lain yang paling Mudah:
2.4.1.6 Array
Dengan array, kita bisa menggunakan sekumpulan variabel dengan nama dan tipe
yang sama. Untuk mengakses variabel tertentu dalam array, kita harus menggunakan
indeks. Indeks harus berupa angka dengan tipe data byte, integer, atau word. Artinya,
nilai maksimum sebuah indeks sebesar 65535.
Proses pendeklarasian sebuah array hampir sama dengan variabel, namun
perbedaannya kita pun mengikutkan jumlah elemennya. Berikut adalah contoh
pemakaian array;
Dim kelas(10) as byte Dim c as Integer
For C = 1 To 10
a(c) = c
p1 = a(c) Next
Program diatas membuat sebuah array dengan nama ‘kelas’ yang berisi 10 elemen (1-10) dan kemudian seluruh elemennya diisikan dengan nilai c yang
berurutan. Untuk membacanya, kita menggunakan indeks dimana elemen disimpan.
Pada program diatas, elemen-elemen arraynya dikeluarkan ke Port 1 dari
2.5 Software Downloader
Untuk mengeksekusi program-program yang telah dimasukkan kedalam IC
mikrokontroller dibutuhkan sebuah software yang berfungsi untuk mengkompile
program-program yang telah dimasukkan. Software yang digunakan untuk
mengkompile program-program yang dimasukkan tersebut digunakan software ISP-
Flash Programmer 3.0a yang dapat didownload dari internet. Tampilannya seperti
gambar di bawah ini
Gambar 2.5 ISP- Flash Programmer
Cara menggunakannya adalah dengan meng-klik Open File untuk mengambil
file dan kemudian dengan menekan write untuk mengisikan program kedalam IC
2.6 Operasi-operasi Dalam BASCOM
Pada bagian ini akan dibahas tentang cara menggabungkan, memodifikasi,
membandingkan, atau mendapatkan informasi tentang sebuah pernyataan dengan
menggunakan operator-operator yang tersedia di BASCOM dan bagaimana sebuah
pernyataan terbentuk dan dihasilkan dari operator-operator berikut:
a. Operator Aritmatika
Operator digunakan dalam perhitungan. Operator aritmatika meliputi +
(tambah), - (kurang), / (bagi), dan * (kali).
b. Operator Relasi
Operator berfungsi membandingkan nilai sebuah angka. Hasilnya dapat
digunakan untuk membuat keputusan sesuai dengan program yang kita buat.
Operator relasi meliputi:
Tabel 2.3 Tabel Operator Relasi
Operator Relasi Pernyataan
= Sama dengan X = Y
<> Tidak sama dengan X <> Y < Lebih kecil dari X < Y > Lebih besar dari X > Y <= Lebih kecil atau sama
dengan
X <= Y
>= Lebih besar atau sama dengan
X >= Y
c. Operator Logika
Operator digunakan untuk menguji sebuah kondisi atau memanipulasi bit dan
operasi bolean. Dalam BASCOM, ada empat buah operator logika, yaitu
Operator logika bias pula digunakan untuk menguji sebuah byte dengan pola bit
tertentu, sebagai contoh:
Dim A As Byte A = 63 And 19 PPRINT A A = 10 or 9 PRTINT A Output 16 11 d. Operator Fungsi
Operasi fungsi digunakan untuk melengkapi operator yang sederhana.
2.7 Aplikasi BASCOM dengan LCD
Salah satu kelebihan yang dimiliki oleh compiler BASCOM adalah program yang
menyediakan rutin-rutin khusus untuk menampilkan karakter menggunakan LCD.
Bahkan, kita pun dapat membuat karakter special dengan fasilitas LCD designer.
X = 100 Cls Lcd “namaku Satih” Lowerline Lcd “Nilaiku selalu”; x Wait 1 Cls Lcd “<<<< Hebat >>>>” For x=1 to 16 Shiftlcd left next For x=1 to 32 Shiftlcd right Waitms 200 next x = 100 cls lcd hex x loop
Penjelasan programnya sebagai berikut:
a. Dim x As Byte
Pernyataan di atas merupakan pendeklarasian variable x dengan ukuran byte.
b. Config LCD = 16*2
Oleh karena itu, konfigurasi yang dapat kita lakukan adalah mendeklarasikannya
dilisting program yang kita buat seperti dikontrolkan di atas.
c. CLS
Perintah CLS berfungsi membersihkan atau mengosongkan tampilan LCD.
d. Lowerline
Perintah berfungsi memindahkan kursor ke baris bawah. Karena LCD yang
e. X = 100
Lcd “namaku Satih” Lowerline
Lcd “Nilaiku selalu”; x
Ketika kita menjalankan perintah di atas, maka keluarannya adalah:
Namaku Satih
Nilaiku selalu 100
Contoh di atas menunjukkan bahwa kita dapat menampilkan isi sebuah variabel
menggunakan LCD hanya dengan menulis:
f. ShiftLCD left/right
Perintah digunakan untuk menggeser tampilan LCD ke kiri atau ke kanan
sebanyak 1 langkah. Perintah berguna untuk menampilkan kalimat yang panjang
dan mebuat animasi di LCD.
g. Lcdhex x
Perintah berfungsi mengirim isi sebuah variabel ke LCD dalam format