BAB II DASAR TEORI

advertisement
 BAB II
DASAR TEORI
2.1 AVR Atmega 8
AVR merupakan salah satu jenis mikrokontroler yang di dalamnya
terdapat berbagai macam fungsi. Perbedaannya pada mikro yang pada umumnya
digunakan seperti MCS51 adalah pada AVR tidak perlu menggunakan oscillator
eksternal karena di dalamnya sudah terdapat internal oscillator. Selain itu
kelebihan dari AVR adalah memiliki Power-On Reset, yaitu tidak perlu ada
tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara
otomatis AVR akan melakukan reset. Untuk beberapa jenis AVR terdapat
beberapa fungsi khusus seperti ADC, EEPROM sekitar 128 byte sampai dengan
512 byte.
AVR Atmega 8 adalah mikrokontroler CMOS 8-bit berarsitektur AVR
RISC yang memiliki 8K byte in-System Programmable Flash. Mikrokontroler
dengan konsumsi daya rendah ini mampu mengeksekusi instruksi dengan
kecepatan maksimum 16MIPS pada frekuensi 16MHz. Jika dibandingkan dengan
Atmega 8L perbedaannya hanya terletak pada besarnya tegangan yang diperlukan
untuk bekerja. Untuk Atmega8 tipe L, mikrokontroler ini dapat bekerja dengan
7 8 tegangan antara 2,7 - 5,5 V sedangkan untuk Atmega 8 hanya dapat bekerja pada
tegangan antara 4,5 – 5,5 V.
2.1.1 Konfigurasi AVR Atmega 8
ATmega8 memiliki 28 Pin, yang masing-masing pin nya memiliki fungsi
yang berbeda-beda baik sebagai port maupun fungsi yang lainnya.
Gambar 2.1 Konfigurasi AVR Atmega 8
Berikut akan dijelaskan fungsi dari masing-masing kaki Atmega 8
•
VCC
Merupakan supply tegangan digital.
9 •
GND
Merupakan ground untuk semua komponen yang membutuhkan
grounding.
•
Port B (PB7...PB0)
Didalam Port B terdapat XTAL1, XTAL2, TOSC1, TOSC2. Jumlah Port
B adalah 8 buah pin, mulai dari pin B.0 sampai dengan B.7. Tiap pin dapat
digunakan sebagai input maupun output. Port B merupakan sebuah 8-bit
bi-directional I/O dengan internal pull-up resistor. Sebagai input, pin-pin
yang terdapat pada port B yang secara eksternal diturunkan, maka akan
mengeluarkan arus jika pull-up resistor diaktifkan. Khusus PB6 dapat
digunakan sebagai input Kristal (inverting oscillator amplifier) dan input
ke rangkaian clock internal, bergantung pada pengaturan Fuse bit yang
digunakan untuk memilih sumber clock. Sedangkan untuk PB7 dapat
digunakan sebagai output Kristal (output oscillator amplifier) bergantung
pada pengaturan Fuse bit yang digunakan untuk memilih sumber clock.
Jika sumber clock yang dipilih dari oscillator internal, PB7 dan PB6 dapat
digunakan
sebagai
I/O
atau
jika
menggunakan
Asyncronous
Timer/Counter2 maka PB6 dan PB7 (TOSC2 dan TOSC1) digunakan
untuk saluran input timer.
•
Port C (PC5…PC0)
Port C merupakan sebuah 7-bit bi-directional I/O port yang di dalam
masing-masing pin terdapat pull-up resistor. Jumlah pin nya hanya 7 buah
10 mulai dari pin C.0 sampai dengan pin C.6. Sebagai keluaran/output port C
memiliki karakteristik yang sama dalam hal menyerap arus (sink) ataupun
mengeluarkan arus (source).
•
RESET/PC6
Jika RSTDISBL Fuse diprogram, maka PC6 akan berfungsi sebagai pin
I/O. Pin ini memiliki karakteristik yang berbeda dengan pin-pin yang
terdapat pada port C lainnya. Namun jika RSTDISBL Fuse tidak
diprogram, maka pin ini akan berfungsi sebagai input reset. Dan jika level
tegangan yang masuk ke pin ini rendah dan pulsa yang ada lebih pendek
dari pulsa
minimum, maka akan menghasilkan suatu kondisi reset
meskipun clock-nya tidak bekerja.
•
Port D (PD7…PD0)
Port D merupakan 8-bit bi-directional I/O dengan internal
pull-up
resistor. Fungsi dari port ini sama dengan port-port yang lain. Hanya saja
pada port ini tidak terdapat kegunaan-kegunaan yang lain. Pada port ini
hanya berfungsi sebagai masukan dan keluaran saja atau biasa disebut
dengan I/O.
•
AVcc
Pin ini berfungsi sebagai supply tegangan untuk ADC. Untuk pin ini harus
dihubungkan secara terpisah dengan VCC karena pin ini digunakan untuk
analog saja. Bahkan jika ADC pada AVR tidak digunakan tetap saja
11 disarankan untuk menghubungkannya secara terpisah dengan VCC. Jika
ADC digunakan, maka AVcc harus dihubungkan ke VCC melalui lowpass
filter.
•
AREF
Merupakan pin referensi jika menggunakan ADC
Gambar 2.2 Blok Diagram Atmega 8
12 Pada AVR status register mengandung beberapa informasi mengenai hasil
dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk
altering arus program sebagai kegunaan untuk meningkatkan performa
pengoperasian. Register ini di-update setelah operasi ALU (Arithmetic Logic
Unit) hal tersebut seperti yang tertulis dalam datasheet khususnya pada bagian
Instruction Set Reference. Dalam hal ini untuk beberapa kasus dapat membuang
penggunaan kebutuhan instrukasi perbandingan yang telah didedikasikan serta
dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih
sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika
memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah
setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui
software. Berikut adalah gambar status register.
Gambar 2.3 Status Register Atmega8
•
Bit 7(I)
Merupakan bit Global Interrupt Enable. Bit ini harus di-set agar semua
perintah interupsi dapat dijalankan. Untuk perintah interupsi individual
akan di jelaskan pada bagian yang lain. Jika bit ini di-reset, maka semua
perintah interupsi baik yang individual maupun yang secara umum akan di
13 abaikan. Bit ini akan dibersihkan atau cleared oleh hardware setelah
sebuah interupsi di jalankan dan akan di-set kembali oleh perintah RETI.
Bit ini juga dapat di-set dan di-reset melalui aplikasi dan intruksi SEI dan
CLL.
•
Bit 6(T)
Merupakan bit Copy Storage. Instruksi bit Copy Instructions BLD (Bit
Load) and BST (Bit Store) menggunakan bit ini sebagai asal atau tujuan
untuk bit yang telah dioperasikan. Sebuah bit dari sebuah register dalam
Register File dapat disalin ke dalam bit ini dengan menggunakan instruksi
BST, dan sebuah bit di dalam bit ini dapat disalin ke dalam bit di dalam
register pada Register File dengan menggunakan perintah BLD.
•
Bit 5(H)
Merupakan bit Half Carry Flag. Bit ini menandakan sebuah Half Carry
dalam beberapa operasi aritmatika. Bit ini berfungsi dalam aritmatika
BCD.
•
Bit 4(S)
Merupakan Sign bit. Bit ini selalu merupakan sebuah ekslusif di antara
Negative Flag (N) dan two’s Complement Overflow Flag (V).
•
Bit 3(V)
Merupakan bit Two’s Complement Overflow Flag. Bit ini menyediakan
fungsi aritmatika dua komplemen.
14 •
Bit 2(N)
Merupakan bit Negative Flag. Bit ini mengindikasikan sebuah hasil
negative di dalam sebuah fungsi logika atai aritmatika.
•
Bit 1(Z)
Merupakan bit Zero Flag. Bit ini mengindikasikan sebuah jasil nol “0”
dalam sebuah fungsi aritmatika atau logika.
•
Bit 0(C)
Merupakan bit Carry Flag. Bit ini mengindikasikan sebuah Carry atau sisa
dalam sebuah aritmatika atau logika.
2.1.2 Memori AVR Atmega 8
Memori atmega terbagi menjadi tiga yaitu :
1. Memori Flash
Memori flash adalah memori ROM tempat kode-kode program berada.
Kata flash menunjukan jenis ROM yng dapat ditulis dan dihapus secara
elektrik. Memori flash terbagi menjadi dua bagian yaitu bagian aplikasi
dan bagian boot. Bagian aplikasi adalah bagian kode-kode program apikasi
berada. Bagian boot adalah bagian yang digunakan khusus untuk booting
15 awal yang dapat diprogram untuk menulis bagian aplikasi tanpa melalui
programmer/downloader, misalnya melalui USART.
2. Memori Data
Memori data adalah memori RAM yang digunakan untuk keperluan
program. Memori data terbagi menjadi empat bagian yaitu : 32 GPR
(General Purphose Register) adalah register khusus yang bertugas untuk
membantu eksekusi program oleh ALU (Arithmatich Logic Unit), dalam
instruksi assembler setiap instruksi harus melibatkan GPR. Dalam bahasa
C biasanya digunakan untuk variabel global atau nilai balik fungsi dan
nilai-nilai yang dapat memperingan kerja ALU. Dalam istilah processor
komputer sahari-hari GPR dikenal sebagai “chace memory”. I/O register
dan Aditional I/O register adalah register yang difungsikan khusus untuk
mengendalikan berbagai pheripheral dalam mikrokontroler seperti pin
port, timer/counter, usart dan lain-lain. Register ini dalam keluarga
mikrokontrol MCS51 dikenal sebagi SFR(Special Function Register).
3. EEPROM
EEPROM adalah memori data yang dapat mengendap ketika chip mati
(off), digunakan untuk keperluan penyimpanan data yang tahan terhadap
gangguan catu daya.
16 Gambar 2.4 Peta Memori Atmega 8
2.1.3 Timer / Counter 0
Timer/counter 0 adalah sebuah timer/counter yang dapat mencacah
sumber pulsa/clock baik dari dalam chip (timer) ataupun dari luar chip (counter)
dengan kapasitas 8-bit atau 256 cacahan. Timer/counter dapat digunakan untuk :
•
Timer/counter biasa
•
Clear Timer on Compare Match (selain Atmega 8)
•
Generator frekuensi (selain Atmega 8)
•
Counter pulsa eksternal
2.1.4 Komunikasi Serial Pada Atmega 8
AVR Atmega 8 memiliki Port USART pada Pin 2 dan Pin 3 untuk
melakukan komunikasi data antara mikrokontroler dengan mikrokontroler ataupun
mikrokontroler dengan komputer. USART dapat difungsikan sebagai transmisi
data sinkron, dan asinkron. Sinkron berarti clock yang digunakan antara
transmiter dan receiver satu sumber clock. Sedangkan asinkron berarti transmiter
17 dab receiver mempunyai sumber clock sendiri-sendiri. USART terdiri dalm tiga
blok yaitu clock generator, transmiter, dan receiver.
Gambar 2.5 Blok USART
2.1.4.1 Clock Generator
Clock generator berhubungan dengan kecepatan transfer data (baud rate),
register yang bertugas menentukan baud rate adalah register pasangan.
18 Tabel 2.1 Baud Rate
Dimana :
Fosc adalah frekuensi ossilator yang digunakan BAUD adalah transfer bit per
detik.
2.1.4.2 USART Transmiter
USART Transmiter berhubungan dengan data pada Pin TX. Perangkat
yang sering digunakan seperti register UDR sebagi tempat penampungan data
yang akan ditransmisikan. Flag TXC sebagai akibat dari data yang ditransmisikan
telah sukses (complete), dan flag UDRE sebagai indikator jika UDR kosong dan
siap untuk diisi data yang akan ditransmisikan lagi.
19 2.1.4.2 USART Receiver
USART Receiver berhubungan dengan penerimaan data dari Pin RX.
Perangkat yang sering digunakan seperti register UDR sebagai tempat penampung
data yang telah diterima, dan flag RXC sebagi indikator bahwa data telah sukses
(complete) diterima.
2.2 Sensor Suhu LM 35
Sensor adalah piranti yang menghasilkan sinyal keluaran yang sebanding
dengan parameter yang diindra (Sensing). Pengukuran temperatur merupakan hal
yang sangat penting. Pendeteksian temperature dapat dilakukan dengan
menggunakan sensor temperature. Ada beberapa jenis sensor temperatur yang
dapat digunakan pada pengukutan temperatur, yakni : termokopel,termistor.
Sensor temperature yang sering di gunakan adalah sensor LM35 karena
keakuratannya dibandingkan dengan sensor lain.
LM35 adalah sensor temperature semiconductor-juncion yang tegangan
outputnya sebanding dengan temperature dalam derajat celcius ( °C). LM35
memiliki kelebihan dibandingkan sensor suhu berpresisi Kelvin, dimana pemakai
tidak perlu mengambil tegangan konstan yang besar untuk mendapatkan celcius
yang tepat. LM35 memiliki keadaan default yaitu akurasi ±1/4 °C pada
temperature ruang dan ±3/4°C pada range maksimum – sampai + 150°C.
LM35 memiliki faktor skala linier +10.0 mV/°C, ini berarti untuk
kenaikan satu derajat Celsius pada suhu sekitar tegangan output akan naik 10 mV.
20 Tegangan kerja dari LM35 adalah 4 sampai 30 Volt dengan kuat arus sebesar
60µA.
Adapun beberapa kelebihan dari LM35 dari sensor temperature lain adalah:
•
Hasil pengkuran lebih akurat disbanding dengan menggunakan termistor.
•
Rangkaian sensor tertutup dan tidak bergantung (tidak terpengaruh) pada
Oksidasi
•
LM35 menghasilkan tegangan keluaran lebih besar dbanding dengan
thermocouple dan tegangan keluaran tidak perlu diperbesar.
2.3 Elemen Peltier (Thermoelectric Cooler)
Peltier seperti yang ditunjukan pada Gambar 2.6, adalah suatu komponen
yang mengaplikasikan Efek Peltier. Peltier merupakan sebuah komponen yang
tergolong komponen Thermoelectric, dimana ketika terjadi perbedaan suhu
diantara dua sisinya maka komponen ini mengubahnya menjadi besaran tegangan
listrik, dan begitu pula sebaliknya, ketika suatu tegangan listrik diberikan kepada
komponen ini, maka dia dapat mengubahnya menjadi dua suhu yang berbeda.
Dalam prakteknya, TEC menggunakan beberapa termokopel yang disusun seri
yang memudahkan perpindahan panas. Umumnya bagian luar komponen ini
dibungkus sejenis keramik tipis yang berisikan batang-batang Bismuth Telluride
di dalamnya. Material tersebut adalah suatu semikonduktor yang didalamya
ditambahkan suatu zat tambahan. Zat tambahan tersebut bertujuan untuk
21 memberikan kelebihan elektron bebas (N-type semiconductor) atau memberikan
kekurangan elektron bebas (P-type semiconductor).
Gambar 2.6 Elemen Peltier
Elektron dari material yang kekurangan elektron (P-type material)
bergerak ke material yang kelebihan elektron (N-type material). Dalam keadaan
ini maka konektor akan menyerap energi. Ketika elektron bergerak dari N-type
menuju P-type, maka pada konektor akan dilepas energi. Energi yang diserap atau
dilepas ini diberikan dalam bentuk panas. Ilustrasi kerja elemen pertier
ditunjukkan pada Gambar 2.7.
Gambar 2.7 Ilustrasi Kerja Elemen Peltier
22 2.3.1 Efek Seebeck
Pada tahun 1821, J. T. Seebeck (1770-1831) menyatakan bahwa logam
yang berbeda yang dihubungkan pada dua lokasi berbeda, maka akan ada
tegangan mikro yang timbul jika kedua sisi plat memiliki perbedaan temperatur.
Efek ini disebut “Efek Seebeck”.
Seebeck dalam percobaannya menghubungkan tembaga dan besi dalam
sebuah rangkaian. Di antara kedua logam tersebut lalu diletakkan jarum kompas.
Ketika sisi logam tersebut dipanaskan, jarum kompas ternyata bergerak.
Belakangan diketahui, hal ini terjadi karena aliran listrik yang terjadi pada logam
menimbulkan medan magnet. Medan magnet inilah yang menggerakkan jarum
kompas. Medan magnet ini terjadi karena adanya tegangan yang mengalir di
antara kedua plat tersebut. Tegangan (Vo) tersebut dapat dinyatakan dengan
persamaan :
V0 =
α
XY X
( Th – Tc )…………………………………….(2.1)
Dimana :
V0
= Tegangan keluaran ( Volt )
α
= Koefisien Seebeck antara 2 material X dan Y (Volt / K )
XY
Th , Tc = Temperatur Termokopel panas dan dingin ( K )
23 Nilai dari efek seebeck dapat ditentukan bergantung material yang
digunakan. Berikut adalah tabel nilai seebeck untuk beberapa material :
Tabel 2.2 Koefisien Seebeck
2.3.2 Efek Peltier
Pada 1834, seorang ilmuwan bernama Jean Charles Athanase Peltier
menemukan suatu teori pembalikan efek Seebeck. Teori tersebut disebut Efek
Peltier. Beliau menemukan bahwa ketika suatu termokopel diberikan tegangan,
maka akan terjadi perbedaan temperatur pada kedua sisinya. Teori ini juga sering
dikenal sebagai Thermo-Electric Cooler (TEC).
Ketika dua buah plat dialiri arus listrik maka akan timbul perbedaan suhu
pada kedua plat tersebut. Jumlah kalor yang diserap dan juga yang dilepas dapat
dinyatakan dalam persamaan berikut :
Qc = Qh =
πxy x I
xy……………………………(2.2)
24 Dimana :
Qc = Qh
= Tingkat pendinginan atau pemanasan (Watt)
πxy
= Koefisien Peltier antara 2 material ( Volt )
Ixy
= Arus yang mengalir ( Ampere )
Besar suhu di sisi panas dan sisi dingin dapat diubah-ubah tergantung arus
polaritas yang diberikan. Hal tersebut menunjukkan bahwa proses terjadinya efek
peltier bersifat reversibel.
2.3.3 Cara Kerja Elemen Peltier
Suatu elemen Peltier memiliki 2 sisi dimana satu sisi bertindak sebagai
bagian panas dan sisi lainnya bertindak sebagai bagian dingin. Cara kerja elemen
peltier ditunjukkan pada Gambar 2.8.
Gambar 2.8 Cara Kerja Elemen Peltier
25 Elektron dari material yang kekurangan elektron (P-type material)
bergerak ke material yang kelebihan elektron (N-type material). Dalam keadaan
ini maka konektor akan menyerap energi sehingga sisi ini akan menjadi sisi dingin
dari Peltier. Dilain pihak, ketika elektron bergerak dari N-type menuju P-type,
maka pada konektor akan melepas energi sehingga sisi ini akan menjadi sisi panas
dari Peltier.
2.3.4 Faktor Thermal Dalam Elemen Peltier
Ada beberapa faktor thermal yang mempengaruhi penggunaan elemen
Peltier untuk aplikasi, yaitu:
•
Temperatur permukaan sisi panas ( Th )
Pada penggunaan elemen peltier, salah satu sisinya akan menjadi
sisi panas. Dimana temperatur sisi panas (hot side) elemen peltier dapat
ditentukan dengan persamaan berikut :
Th = Tamb + (θ)(Qh)………………………….(2.3)
Dimana :
Th
= Temperatur sisi panas ( oC )
Tamb
= Temperatur Ambient ( oC )
θ
= Tahanan termal dari heat exchanger( oC/watt )
Qh = Qc + Pin…………………………………(2.4)
Dimana :
Qh
= Kalor yang dilepaskan pada bagian sisi panas elemen Peltier
(Watt)
26 Qc
= Kalor yang diserap pada bagian cold side elemen Peltier (Watt)
Pin
= Daya input (Watt)
Persamaan
tersebut
dapat
digunakan
ketika
menggunakan
pendinginan menggunakan udara secara natural maupun konveksi paksa
(forced convection) misalnya dengan penambahan fan.
•
Temperatur permukaan sisi dingin ( Tc )
Pada penggunaan elemen peltier, salah satu sisinya akan menjadi
sisi dingin. Sisi dingin ini harus ditentukan agar suhunya lebih dingin dari
temperatur yang diinginkan pada bagian yang didinginkan. Sisi dingin ini
harus ditentukan agar tercapai suhu dingin yang kita inginkan. Perbedaan
temperatur antara sisi panas dan sisi dingin disebut juga delta temperatur
(∆T) yang ditentukan dengan persamaan :
∆T = Th – Tc……………………………(2.5)
Pada elemen peltier konvensional, delta temperature (∆T) yang
dapat dihasilkan berkisar antara 30 oC - 40 oC tergantung dari jenis dan
kualitas elemen peltier yang digunakan.
•
Heat load yang dapat dialirkan dari obyek yang didinginkan ( Qc )
Faktor lain yang perlu dipertimbangkan dalam penggunaan elemen
Peltier untuk aplikasi umum ialah material alat yang digunakan dan
pertimbangan terhadap lingkungan sekitar. Heatsink dan coldsink harus
dibuat dari material yang memiliki nilai konduktivitas thermal yang tinggi
untuk memudahkan proses perpindahan kalor.
27 Faktor dari lingkungan seperti kelembaban (humidity) dan
kondensasi dari sisi dingin (cold side) yang harus diminimalisir dengan
metode sealing yang tepat. Sealing berfungsi untuk melindungi elemen
Peltier dari kontak dengan air, gas, mengurangi kemungkinan korosi,
korsleting listrik atau thermal yang dapat merusak elemen Peltier.
2.4 Heatsink
Heatsink adalah material yang dapat menyerap dan mendisipasi panas dari
suatu tempat yang bersentuhan dengan sumber panas dan membuangnya.
Heatsink digunakan pada beberapa teknologi pendingin seperti refrijerasi, air
conditioning, dan radiator pada mobil.
Gambar 2.9 Heatsink
28 Sebuah heatsink dirancang untuk meningkatkan luas kontak permukaan
dengan fluida
disekitarnya, seperti udara. Kecepatan udara pada lingkungan
sekitar, pemilihan material, desain sirip (atau bentuk lainnya) dan surface
treatment adalah beberapa faktor yang mempengaruhi tahanan thermal dari
heatsink. Thermal adhesive (juga dikenal dengan thermal grease) ditambahkan
pada dasar permukaan heatsink agar tidak ada udara yang terjebak di antara
heatsink dengan bagian yang akan diserap panasnya.
2.5 Coldsink
Coldsink menggunakan mekanisme yang sama dengan heatsink namun
yang membedakan seperti dalam penamaannya adalah bila heatsink berfungsi
untuk memindahkan panas dari permukaan benda yang ingin didinginkan, maka
coldsink berfungsi sebaliknya yaitu coldsink digunakan untuk memindahkan
dingin (temperature yang lebih rendah) dari sisi dingin Peltier untuk
mendinginkan udara box.
Rumusan yang digunakan dalam perhitungan perpindahan kalor dari sisi
dingin Peltier ke Coldsink sama dengan yang digunakan pada Heatsink yaitu
dengan menggunakan rumusan perpindahan kalor konduksi.
Q = Kmaterial . A . ∆T…………………………….(2.6)
Dimana :
Q
= Kalor yang dipindahkan (Watt)
29 Kmaterial
= Koefisien Perpindahan Panas Konduksi (Watt/m 0C)
A
= Luasan permukaan (m2)
∆T
= Perbedaan temperatur sisi dingin Peltier dengan Coldsink (K)
2.6 Relay
Relay adalah saklar yang dikendalikan secara elektronik (electronically
switch). Arus listrik yang mengalir pada kumparan relay akan menciptakan
medan magnet yang kemudian akan menarik lengan relay dan mengubah posisi
saklar, yang sebelumnya terbuka menjadi terhubung.
Relay memiliki tiga jenis kutub: COMMON = kutub acuan, NC (Normally
Close) = kutub yang dalam keadaan awal terhubung pada COMMON, dan NO
(Normally Open) = kutub yang pada awalnya terbuka dan akan terhubung
dengan COMMON saat kumparan relay diberi arus listrik.
Berdasarkan jumlah kutub pada relay, maka relay dibedakan menjadi 4 jenis:
•
SPST = Single Pole Single Throw
•
SPDT = Single Pole Double Throw
•
DPST = Double Pole Single Throw
•
DPDT = Double Pole Double Throw
Pole adalah jumlah COMMON, sedangkan Throw adalah jumlah terminal output
(NO dan NC). Untuk lebih memahami dapat dilihat gambar 2.10:
30 Gambar 2.10 Skematik Tipe-tipe Relay
Pada umumnya, output dari mikrokontroler berarus rendah, sehingga
dibutuhkan rangkaian tambahan berupa penggerak (driver) yang berupa
electronic switch untuk bisa mengendalikan relay. Dan driver tersebut pun perlu
ditambahkan suatu komponen peredam GGL-induksi yang dihasilkan oleh
kumparan relay, seperti dioda yang diarahkan ke VCC seperti pada gambar 2.11:
Gambar 2.11 Rangkaian Penggerak (Driver) Relay
31 2.7 BASCOM AVR
BASCOM-AVR adalah salah satu tool untuk pengembangan / pembuatan
program untuk kemudian ditanamkan dan dijalankan pada microcontroller
terutama microcontroller keluarga AVR . BASCOM-AVR juga bisa disebut
sebagai IDE (Integrated Development Environment) yaitu lingkungan kerja yang
terintegrasi, karena disamping tugas utamanya (meng-compile kode program
menjadi file HEX / bahasa mesin), BASCOM-AVR juga memiliki kemampuan /
fitur lain yang berguna sekali, contoh :
•
Terminal (monitoring komunikasi serial)
•
Programmer (untuk menanamkan program yang sudah di-compile ke
microcontroller).
Dan perlu diketahui, sesuai dengan namanya BASCOM (Basic Compiler)
bahasa yang digunakan adalah bahasa BASIC. Jadi, jika anda sudah pernah
menggunakan bahasa BASIC (Visual Basic, Turbo Basic, dll), akan menjadi
modal penting untuk mempelajari tool ini karena secara struktur pemrograman
dasar tidak ada perbedaan.
2.7.1 Langkah Awal Penulisan Program
Untuk memulai pembuatan program dengan BASCOM-AVR, klik menu
File -> New. Langkah awal penulisan program adalah dengan menentukan file
register, kristal yang digunakan, yakni dengan menuliskan :
$regfile = "m8def.dat"
$crystal = 1200000
32 Dimana "m8def.dat" adalah nama file yang berisi konfigurasi alamat
register pada Microcontroller AVR ATMEGA 8, jika anda menggunakan jenis
lain, maka anda harus mengganti nama file register ini sesuai dengan
mikrocontroller yang anda gunakan, file-file ini dapat ditemukan pada direktori :
C:\Program Files\MCS Electronics\BASCOM-AVR
Sedangkan 12000000 adalah frekuensi denyut kristal yang digunakan,
satuannya adalah dalam Hertz (12000000 = 12MHz).
2.7.2 Variabel dan Tipe data
Di dalam pemrograman tipe data adalah hal yang sangat penting untuk
diketahui sebelum kita memulai pemrograman itu sendiri. Pada bahasa Basic yang
telah disesuaikan dengan BASCOM-AVR, tipe-tipe data yang dikenal dan dapat
digunakan adalah sebagai berikut :
•
Bit (1/8 byte). Satu bit hanya bisa menampung nilai 1 atau 0. Kumpulan
dari bit sebanyak 8 disebut byte.
•
Byte (1 byte). Byte bisa menampung angka binari 8 bit dengan jangkauan
0 sampai 255.
•
Integer (2 byte). Integer bisa menampung angka bulat 16 bit dengan
jangkauan -32,768 sampai +32,767.
•
Word (2 byte). Words memiliki daya tampung yang sama dengan
Integer, perbedaannya adalah Wor tidak mendukung nilai negatif adapun
jangkauannya adalah dari 0 sampai 65535.
33 •
Long (4 byte). Long mampu menampung angka bulat 32 bit mulai dari 2147483648 sampai 2147483647.
•
Single. Single mampu menampung angka pecahan (desimal) 32 bit dengan
jangkauan dari 1.5 x 10^–45 sampai 3.4 x 10^38
•
Double. Double mampu menampung angka pecahan (desimal) 64 bit
dengan jangkauan dari 5.0 x 10^–324 sampai 1.7 x 10^308
•
String (bisa sampai 254 byte). String bisa menampung karakter ataupun
kumpulan karakter. Misalnya : "Reza" => merupakan kumpulan karakter,
sehingga bisa ditampung ke dalam variabel dengan tipe data String.
Cara mendeklarasikan sebuah variabel pada BASCOM-AVR adalah sebagai
berikut :
Dim namavariabel tipedata, contoh : Dim x as Byte.
Khusus untuk tipe data String ada sedikit tambahan yakni jumlah karakter
maksimal yang bisa ditampung oleh variabel tersebut. Contoh : Dim x as String *
10, berarti variabel x mampu menampung karakter sepanjang 10 karakter.
Di dalam penulisan nama variabel terdapat beberapa aturan yang harus di
perhatikan :
1. Tidak boleh menggunakan karakter khusus seperti :
*/#$@!%^&*(),;'~`?<>+=-\
34 2. Tidak boleh menggunakan kata kunci yang telah ada di dalam bahasa
pemrograman, contoh : for, next, do, loop, while, until, dll.
3. Karakter pertama dalam nama varibel tidak boleh angka, contoh : 4ndi =>
salah, n4di => benar.
4. Tidak boleh ada spasi, jika nama variabel lebih dari satu kata dapat
dihubungkan dengan underscore.
2.7.3 Operator
Operator yang digunakan secara umum adalah, operator pembanding,
operator aritmatik, dan operator logika.
1. Operator Pembanding
Digunakan untuk mewakili sebuah nilai logika (nilai boolean), dari
suatu persamaan atau nilai.
Tabel 2.3 Operator Pembanding
Operator
Keterangan
=
<>
Sama Dengan
Tidak Sama Dengan
Penggunaan
X = Y
X <> Y
>
Besar Dari
X > Y
<
Kecil Dari
X < Y
>=
Besar Sama Dengan
X >= Y
<=
Kecil Sama Dengan
X <= Y
Hasil dari operasi dengan menggunakan operator pembanding
adalah true atau false.
35 2. Operator Aritmatik
Digunakan untuk mengoperasikan data-data numerik, seperti
penjumlahan, pengurangan, perkalian, pembagian, dll. Dalam proses
aritmatika tersebut, pengerjaan operasi tergantung dari tingkat valensi
operator-operator yang terlibat. Perpangkatan memiliki valensi tertinggi,
kemudian dilanjutkan dengan perkalian, pembagian, pembagian bulat dan
sisa pembagian, sedangkan penjumlahan dan pengurangan mempunyai
valensi yang terendah.
Tabel 2.4 Operator Aritmatik
Operator
Keterangan
Penggunaan
+
Tambah
X=Y+Z
-
Kurang
X=Y-Z
*
Kali
X=Y*Z
/
Bagi
X=Y/Z
Pembagian
\
bulat
X=Y\Z
^
Pangkat
X=Y^Z
36 3. Operator Logika
Digunakan untuk mengoperasikan operand (konstanta, variabel,
atau suatu ekspresi) secara logis
Tabel 2.5 Operator Logika
Operator
Keterangan
Penggunaan
and
Konjungsi
Y and Z
or Disjungsi
Y or Z
Exclusive
xor Or
Y xor Z
not Komplemen
Not Y
2.7.4 Perulangan / Looping
Perulangan / looping tidak bisa dipisahkan dengan bahasa pemrograman.
di dalam bahasa basic (disesuaikan dengan BASCOM-AVR) perulangan yang
dapat digunakan adalah sebagai berikut :
1. Do ... Loop Until Kondisi
Contoh penggunaan :
Dim x as byte
x=0
Do
statement
...
37 x=x +1
Loop until x = 10
2. While Kondisi ..... Wend
Contoh penggunaan :
Dim x as byte
x=0
While x < 10
statement
...
x=x+1
Wend
3. For..... Next
Contoh penggunaan :
Dim x as byte
For x = 1 to 10
statement
...
Next x
38 2.7.5 Konfigurasi Dasar Port
Agar dapat digunakan, Port yang terdapat pada mikrocontroller harus
dikonfigurasi
terlebih
dahulu.
Pada
kesempatan
ini
kita
hanya
akan
mengkonfigurasi Port sebagai I/O (Input atau Output).
1. Konfigurasi Port Sebagai Output
Dengan mengkonfigurasi Port sebagai output berarti Port tersebut
ditugaskan untuk mengeluarkan suatu logika. Untuk mengkonfigurasi Port
sebagai output dapat dilakukan dengan 2 cara :
•
Konfigurasi Semua Pin dalam suatu Port secara keseluruhan. Dengan
mengggunakan cara ini berarti kita menginginkan semua pin pada Port
tertentu dikonfigurasi sebagai output. Adapun cara penulisannya adalah :
Config PORTX= output. Contoh : Config PORTA = output.
•
Konfigurasi Pin tertentu dalam suatu Port. Dengan menggunakan cara ini
berarti kita menginginkan salah satu Pin atau beberapa Pin pada Port
tertentu dikonfigurasi sebagai output. Adapun cara penulisannya adalah:
Config PORTX.y = output. Contoh : Config PORTA.3 = output. Pada
contoh tersebut dapat dilihat bahwa hanya Pin 3 ( Pin ke 4, karena
penomoran Pin dimulai dari 0) pada PORTA yang dikonfigurasi sebagai
output.
2. Konfigurasi Port Sebagai Input
Dengan mengkonfigurasi Port sebagai input berarti Port tersebut
ditugaskan untuk menangkap perubahan logika dari suatu sumber tertentu
39 (misalnya sensor). Untuk mengkonfigurasi Port sebagai input dapat
dilakukan dengan 2 cara :
•
Konfigurasi Semua Pin dalam suatu Port secara keseluruhan. Dengan
mengggunakan cara ini berarti kita menginginkan semua pin pada Port
tertentu dikonfigurasi sebagai input. Adapun cara penulisannya adalah :
Config PORTX= input. Contoh : Config PORTA = input.
•
Konfigurasi Pin tertentu dalam suatu Port. Dengan menggunakan cara ini
berarti kita menginginkan salah satu Pin atau beberapa Pin pada Port
tertentu dikonfigurasi sebagai input. Adapun cara penulisannya adalah:
Config PINX.y = input. Contoh : Config PINA.3 = input. Pada contoh
tersebut dapat dilihat bahwa hanya Pin 3 (Pin ke 4, karena penomoran Pin
dimulai dari 0) pada PORTA yang dikonfigurasi sebagai input.
Download