BAB II
DASAR TEORI
2.1 Sensor
Sensor adalah suatu peralatan yang berfungsi untuk
mendeteksi gejala – gejala atau sinyal – sinyal yang
berasal dari perubahan suatu energi seperti energi
listrik, energi fisika, energi kimia, energi biologi,
energi mekanik dan sebagainya.Suatu peralatan yang
memberitahukan kepada sistem kontrol tentang apa yang
sebenarnya terjadi dinamakan sensor atau juga dikenal
sebagai transduser. Sebagai contoh tubuh manusia
mempunyai sistem sensor luar biasa yang memberitahukan
kepada otak manusia secara terus menerus dengan gambar
– gambar yang layak dan lengkap di sekitar lingkungan.
Untuk sistem kontrol si pembuat harus memastikan
parameter apa yang dibutuhkan untuk dimonitor sebagai
contoh : posisi, temperatur, dan tekanan, kemudian
tentukan sensor dan rangkaian data interface untuk
melakukan perkerjaan ini. Sebagai contoh, kita ingin
mengukur aliran cairan dalam suatu pipa dengan
menggunakan flowmeter, atau kita ingin mengukur
aliran secara tidak langsung dengan melihat seberapa
lama cairan mengisi suatu tangki dengan ukuran
tertentu. Kebanyakan sensor bekerja dengan mengubah
beberapa parameter fisik seperti temparatur atau posisi
6
ke dalam sinyal listrik. Ini sebabnya mengapa sensor
juga dikenal sebagai transduser yaitu suatu
peralatan yang mengubah energi dari satu bentuk ke
bentuk yang lain.
Untuk perencanaan sensor yang akan kami gunakan
adalah Weather Sensor Assembly no.seri p/n 80422. Sensor
ini dikeluarkan oleh sebuah perusahaan kecil Argent Data
System yang bertempat di santa maria California. Berikut
adalah gambar dari sensor tersebut :
Dari gambar diatas terdapat dua buah sensor yaitu
sensor arah dan kecepatan angin. Untuk sensor kecepatan
angin ini komponen didalamnya menggunakan magnetic reed
switch, dimana ketika kecepatan angin mencapai 1,492
Mph(2,4Km/h) akan menyebabkan sensor magnetic reed switch
ini menutup satu kali per detik. Sedangkan untuk sensor
7
Gambar 2.1. sensor arah dan kecepatan angin
arah angin, komponen didalamnya menggunakan delapan
switch yang terhubung dengan resistor berbeda-beda.
Sehingga memungkinkan sensor arah ini menunjukan ke
delapan arah mata angin. Berikut adalah gambar dan
tabel dari arah sensor angin.
No. Direction(Degrees)
Resistance(Ohms)
Voltage(V=5v, R=10k)
1 0 33k 3.84v2 22.5 6.57k 1.98v3 45 8.2k 2.25v4 67.5 891 0.41v5 90 1k 0.45v6 112.5 688 0.32v7 135 2.2k 0.90v8 157.5 1.41k 0.62v9 180 3.9k 1.40v10 202.5 3.14k 1.19v11 225 16k 3.08v12 247.5 14.12k 2.93v13 270 120k 4.62v14 292.5 42.12k 4.04v15 315 64.9k 4.78v16 337.5 21.88k 3.43v
8
Gambar 2.2. Rangkaian sensor arah angin
Tabel 2.1. Daftar tabel sensor arah angin
2.2 Mikrokontroler
Mikrokontroler merupakan suatu terobasan teknologi
mikroprosesor dan mikrokomputer yang merupakan
teknologi semikonduktor dengan kandungan transistor
yang lebih banyak namun hanya membutuhkan ruang yang
sangast kecil, Lebih lanjut, mikrokontroler merupakan
system computer yang mempunyai satu atau beberapa tugas
yang sangat spesifik, berbeda dengan PC (Personal
Computer ) yang memiliki beragam fungsi.
Tidak seperti sistem komputer yang mampu
menangani berbagai macam program aplikasi,
mikrokontrler hanya bisa digunakan untuk suatu aplikasi
tertentu saja, perbedaan lainnya terletak pada
perbandingan RAM dan ROM. Pada sistem komputer
perbandingan RAM dan ROM nya besar, artinya program-
program penggunba disimpan dalam ruang RAM yang
relative besar, sedangkan rutin-rutin antar muka
perangkat keras disimpan dalam ruang ROM yang kecil,
Sedangkan pada mikrokontroler, perbandingan ROM dan RAM
–nya yang besar, artinya program kontrol disimpan dalam
ROM (bias Masked ROM atau Flash PEROM) yang ukurannya
relatif lebih besar, sedangkan RAM digunakan sebagai
tempat penyimpanan sementara , termasuk register-
9
register yang digunakn pada mikrokontroler yang
bersangkutan.
2.2.1 Arsitektur Mikrokontroler ATMEGA8535
Mikrokontroller AVR (Alf and Vegard’s Risc processor)
memiliki arsitektur 8 bit, dimana semua instruksi
dikemas dalam kode 16-bit dan sebagian besar instruksi
dieksekusi dalam 1 siklus clock atau dikenal dengan
teknologi RISC (Reduced Instruction Set Computing). Secara
umum, AVR dapat dikelompokan ke dalam 4 kelas, yaitu
keluarga AT90Sxx, keluarga ATMega dan AT86RFxx. Pada
dasarnya yang membedakan masing-masing adalah kapasitas
memori, peripheral dan fungsinya. Dari segi arsitektur
dan instruksi yang digunakan, mereka bisa dikatakan
hampir sama. Berikut gambar arsitektur dari
mikrokontroler dari ATmega8535 :
10
2.2.2 Fungsi Pin - Pin Pada Mikrokontroler
ATMega8535
Konfigurasi pena (pin) mikrokontroler
ATMega8535 dengan kemasan 40-pin dapat dilihat
pada Gambar 2.3. Dari gambar tersebut dapat
terlihat ATMega8535 memiliki 8 pena untuk masing-masing
port A (Port A), port B(Port B), port C (Port C), dan
port D (Port D).
11
Gambar 2.3 Arsitektur mikrokontroler
atmega 8535
Secara umum konfigurasi dan fungsi pin
ATMega8535 dapat dijelaskan sebagai berikut
a. VCC
Input sumber tegangan (+)
b. GND
Ground (-)
c. Port A (PA7 … PA0)
12
Gambar 2.4 Mikrokontroler atmega 8535
Gambar 2.5 Konfigurasi pin mikrokontroler atmega
Berfungsi sebagai input analog dari ADC (Analog to
Digital Converter). Port ini juga berfungsi sebagai
port I/O dua arah, jika ADC tidak digunakan.
d. Port B (PB7 … PB0)
Berfungsi sebagai port I/O dua arah. Port PB5,
PB6 dan PB7 juga berfungsi sebagai MOSI, MISO dan
SCK yang dipergunakan pada proses downloading.
Fungsi lain port ini selengkapnya bisa dibaca pada
buku petunjuk ”AVR ATMega8535”.
e. Port C (PC7 … PC0)
Berfungsi sebagai port I/O dua arah. Fungsi lain
port ini selengk apnya bisa dibaca pada buku
petunjuk ”AVR ATMega8535”.
f. Port D (PD7 … PD0)
Berfungsi sebagai port I/O dua arah. Port PD0 dan
PD1 juga berfungsi sebagai RXD dan TXD, yang
dipergunakan untuk komunikasi serial. Fungsi lain
port ini selengkapnya bisa dibaca pad a buku
petunjuk ”AVR ATMega8535”.
g. RESET
Input reset.
h. XTAL1
Input ke amplifier inverting osilator dan input ke
sirkuit clock internal.
i. XTAL2
Output dari amplifier inverting osilator.
13
j. AVCC
Input tegangan untuk Port A dan ADC.
k. AREF
Tegangan referensi untuk ADC.
2.2.3. Fitur Mikrokontroler ATMega8535
Adapun kapabilitas detail dari ATmega8535 adalah
sebagai berikut,
a. Sistem mikroprosesor 8 bit berbasis RISC dengan
kecepatan maksimal 16 MHz.
b. Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte,
danEEPROM (Electrically Erasable Programmable Read Only Memori)
sebesar 512 byte.
c. ADC internal dengan fidelitas 10 bit sebanyak
8 channel.
d. Portal komunikasi serial (USART) dengan kecepatan
maksimal 2,5 Mbps.
e. Enam pilihan mode sleep untuk menghemat penggunaan
daya listrik.
2.3 LCD
LCD (Liquid Cristal Display) adalah satu
layar bagian dari modul peraga yang menampilkan
karakter yang diinginkan. Layar LCD menggunakan dua
buah lembaran bahan yang dapat mempolarisasikan dan
Kristal cair diantara kedua lembaran tersebut. Arus
14
listrik yang melewati cairan menyebabkan kristal
merata sehingga cahaya tidak dapat melalui setiap
kristal, karenanya, seperti pengaturan cahaya,
menentukan apakah cahaya dapat melewati atau tidak.
Sehingga dapat mengubah bentuk Kristal cairnya
membentuk tampilan angka atau huruf pada layar.
Kegunaan LCD banyak sekali dalam perancangan suatu
sistem dengan menggunakan mikrokontroler. LCD dapat
berfungsi untuk menampilkan suatu nilai hasil sensor
,menampilkan teks, atau menampilkan menu pada
aplikasi mikrokontroller. Pada alat ini ukuran tipe
LCD yang digunakan adalah LCD 2x16, seperti gambar
dibawah ini :
Berikut tabel dan fungsi dari LCD :
15
Gambar 2.6 LCD 2 X 16
PIN Nama Fungsi
1 VSS Ground voltage
2 VCC +5V
3 VEE Contrast voltage
4 RS Register Select
0 = Instruction Register
1 = Data Register5 R/W Read/ Write, to choose write or read mode
0 = write mode
1 = read mode6 E Enable
0 = start to lacht data to LCD character
1= disable7 BPL Back Plane Light
8 GND Ground voltage
Tabel 2.2 Pin konfigurasi LCD 2 X 16
Display karakter pada LCD diatur oleh pin EN, RS
dan RW. Jalur EN dinamakan Enable. Jalur ini
digunakan untuk memberitahu LCD bahwa anda sedang
mengirimkan sebuah data. Untuk mengirimkan data ke
LCD, maka melalui program EN harus dibuat logika low
“0” dan set pada dua jalur kontrol yang lain RS dan
RW. Ketika dua jalur yang lain telah siap, set EN
dengan logika “1” dan tunggu untuk sejumlah waktu
tertentu ( sesuai dengan datasheet dari LCD tersebut
) dan berikutnya set EN ke logika low “0” lagi.
Jalur RS adalah jalur Register Select. Ketika RS
berlogika low “0”, data akan dianggap sebagai sebuah
16
perintah atau instruksi khusus ( seperti clear
screen, posisi kursor, dan lain-lain ). Ketika RS
berlogika high “1”, data yang dikirim adalah data
text yang akan ditampilkan pada display LCD. Sebagai
contoh, untuk menampilkan huruf “T” pada layar LCD
maka RS harus diset logika high“1”. Jalur RW adalah
jalur kontrol Read/Write. Ketika RW berlogika low
(0), maka informasi pada bus data akan dituliskan
pada layar LCD. Ketika RW berlogika high ”1”, maka
program akan melakukan pembacaan memori dari LCD.
Sedangkan pada aplikasi umum pin RW selalu diberi
logika low ”0”. Pada akhirnya, bus data terdiri dari
4 atau 8 jalur ( bergantung pada mode operasi yang
dipilih oleh user ). Pada kasus bus data 8 bit,
jalur diacukan sebagai DB0 sampai dengan DB7.
2.4 Komunikasi Data Serial
Komunikasi data serial sangatlah berbeda dengan
format pemindahan data pararel. Disini pengiriman bit-
bit tidak dilakukan sekaligus melalui saluran pararel,
tetapi setiap bit dikirimkan satu persatu melalui
saluran tunggal. Dalam pengiriman data secara serial
harus ada sinkronisasi atau penyesuaian antara pengirim
dan penerima agar data yang dikirimkan dapat diterima
dengan tepat dan benar oleh penerima. Dalam
komunikasi secara serial terdapat tiga macam mode
17
transmisi serial dalam mentransmisikan bit-bit data,
yaitu : synchronous, asynchronous dan isochronous saja
yang digunakan. Transmisi serial mode asynchronous
digunakan bila pengiriman data dilakukan satu karakter
tiap pengiriman. Antara satu karakter dengan yang
lainnya tidak ada waktu yang tetap. Karakter dapat
dikirimkan sekaligus ataupun beberapa karakter
kemudian berhenti untuk waktu yang tidak tertentu,
kemudian dikirimkan sisanya. Dengan demikian bit-bit
data ini dikirimkan dengan periode yang acak sehingga
pada sisi penerima data akan diterima kapan saja.
Adapun sinkronisasi yang terjadi pada transmisi serial
asynchronous adalah dengan memberikan bit-bit
pertanda awal dari data dan penanda akhir dari data
pada sisi pengirim maupun dari sisi penerima. Pada
prinsipnya, komunikasi serial ialah komunikasi dimana
pengiriman data dilakukan per bit, sehingga lebih
lambat dibandingkan komunikasi parallel seperti pada
port printer yang mampu mengirim 8 bit sekaligus dalam
sekali detak. Beberapa contoh komunikasi serial ialah
mouse, scanner dan sistem akuisisi data yang terhubung
ke port COM1/COM2.
2.4.1 IC MAX 485
MAX 485 adalah IC yang menjadi komponen
utama Modul SR-485 yang didisain untuk komunikasi data
18
secara bidirectional atau multipoint dengan Standard
ANSI EIA/TIA-422-B dan ITU V11. Data yang
ditransmisikan oleh IC ini dikirim dalam bentuk
perbedaan tegangan yang ada pada kaki A dan B dari
MAX485.
MAX485 berfungsi sebagai pengirim data
atau penerima data tergantung dari kondisi kaki-kaki
kontrolnya yaitu DE dan RE. Apabila kaki DE berlogika 0
dan RE berlogika 0, maka MAX485 berfungsi sebagai
penerima data sedangkan bila kaki DE berlogika 1 dan RE
berlogika 1 maka MAX485 berfungsi sebagai pengirim.
Berdasarkan pada Gambar 2.7, output dari Line Generator
dapat diambangkan (High Impedance) dengan memberikan “0”
pada input DE, kemampuan ini dimaksud untuk menunjang
keperluan dalam membentuk rangkaian saluran komunikasi
yang menghendaki pada saluran hanya boleh satu Line
Generator saja yang aktif. Perlu diingat bahwa level
tegangan sinyal-sinyal dari konektor DB 9 adalah level
tegangan RS232, sedangkan kaki-kaki DI, RO dan DE dari
IC MAX485 bekerja pada level tegangan TTL (Transistor
Transistor Logic), jadi komunikasi tidak dapat dilakukan
19
Gambar 2.7 Konfigurasi pin MAX 485
secara langsung, tetapi harus dengan bantuan IC MAX232
yang berfungsi sebagai pengalih tegangan. IC MAX485
berfungsi sebagai pengirim data atau penerima data
tergantung dari kondisi kaki-kaki kontrolnya yaitu DE
(Driver Output Enable) dan RE (Receiver Output Enable). Apabila
kaki DE berlogika 0 dan RE berlogika 0, maka IC MAX485
berfungsi sebagai penerima data sedangkan bila kaki DE
berlogika 1 dan RE berlogika 1 maka IC MAX485 berfungsi
sebagai pengirim.
2.4.2 DB9
Bagian yang sangat penting pada komunikasi serial
adalah DB9 dan RS232. DB9 merupakan konektor yang
digunakan untuk menghubungkan perangkat keras dengan
komputer. Konektor port serial DB9 pada komputer biasanya
disebut dengan COM1 dan COM2. Gambar 2.6 menunjukkan
gambar konektor serial dari DB9.
20
Gambar 2.8 Konektor serial DB9
Berdasarkan pada Gambar 2.8, berikut ini adalah
penjelasan singkat dari sinyal pin-pin DB9 yang
teruraikan dalam Tabel 2.4 :
Tabel 2.3 Deskripsi dan signal dari pin DB9
Pin Signal Pin Signal
1 Data Carrier Detect 6 Data Set Ready
2 Received Data 7 Request to Send
3 Transmitted Data 8 Clear to Send
4 Data Terminal Ready 9 Ring Indicator
5 Signal Ground
Pada tabel 2.3 menunjukan sinyal-sinyal yang ada
berdasarkan standar RS232. Berikut ini fungsi dari kaki
pin DB9, yaitu :
a. DCD (Data Carrier Detect) : sinyal ini akan aktif
jika suatu modem mendeteksi suatu “carrier” dari modem
lain.
b. RxD (Received Data) : digunakan untuk penerimaan
data serial.
c. TxD (Transmitted Data) : digunakan untuk
pengiriman data serial.
21
d. DTR (Data Terminal Ready) : digunakan untuk
memberitahukan modem bahwa UART (Universal Asynchronous
Receiver-Transmitter) siap melakukan hubungan
komunikasi.
e. GND : Sinyal Ground.
f. DSR (Data Set Ready) : digunakan untuk
memberitahukan UART bahwa modem siap melakukan hubungan
komunikasi (link).
g. RTS (Request to Send) : merupakan sinyal untuk
menginformasikan modem bahwa UART siap melakukan
pertukaran data.
h. CTS (Clear to Send) : digunakan untuk
memberitahukan bahwa modem siap untuk melakukan
pertukaran data.
i. RI (Ring Indicator) : sinyal ini akan aktif jika
modem mendeteksi adanya sinyal dering dari saluran
telepon.
2.5 Accu Kering
Aki atau Storage Battery adalah sebuah sel atau
elemen sekunder dan merupakansumber arus listrik searah
yang dapat mengubah energy kimia menjadi energy
listrik. Aki termasuk elemen elektrokimia yang dapat
mempengaruhi zat pereaksinya, sehingga disebut elemen
sekunder. Kutub positif aki menggunakan lempeng oksida
dan kutub negatifnya menggunakan lempeng timbale
22
sedangkan larutan elektrolitnya adalah larutan asam
sulfat. Beriku ini cara kerja saat baterai mengeluarkan
arus:
a. Oksigen (O) pada pelat positif terlepas karena
bereaksi/bersenyawa/bergabung dengan hidrogen (H) pada
cairan elektrolit yang secara perlahan-lahan keduanya
bergabung/berubah menjadi air (H20).
b. Asam (SO4) pada cairan elektrolit bergabung dengan
timah (Pb) di pelat positif maupun pelat negatif
sehigga menempel dikedua pelat tersebut.
Reaksi ini akan berlangsung terus sampai isi
(tenaga baterai) habis alias dalam keadaan discharge.
Pada saat baterai dalam keadaan discharge maka hampir
semua asam melekat pada pelat-pelat dalam sel sehingga
cairan eletrolit konsentrasinya sangat rendah dan
hampir melulu hanya terdiri dari air (H2O), akibatnya
berat jenis cairan menurun menjadi sekitar 1,1 kg/dm3
dan ini mendekati berat jenis air yang 1 kg/dm3.
Sedangkan baterai yang masih berkapasitas penuh berat
jenisnya sekitar 1,285 kg/dm3. Nah, dengan perbedaan
berat jenis inilah kapasitas isi baterai bisa diketahui
apakah masih penuh atau sudah berkurang yaitu dengan
menggunakan alat hidrometer. Hidrometer ini merupakan
salah satu alat yang wajib ada di bengkel aki (bengkel
yang menyediakan jasa setrum/cas aki ). Selain itu pada
saat baterai dalam keadaan discharge maka 85% cairan
23
elektrolit terdiri dari air (H2O) dimana air ini bisa
membeku, bak baterai pecah dan pelat-pelat menjadi
rusak. Berikut adalah contoh gambar dari accu kering :
Baterai yang menerima arus adalah baterai yang
sedang disetrum/dicas alias sedang diisi dengan cara
dialirkan listrik DC, dimana kutup positif baterai
dihubungkan dengan arus listrik positif dan kutub
negatif dihubungkan dengan arus listrik negatif.
Tegangan yang dialiri biasanya sama dengan tegangan
total yang dimiliki baterai, artinya baterai 12 V
dialiri tegangan 12 V DC, baterai 6 V dialiri tegangan
6 V DC, dan dua baterai 12 V yang dihubungkan secara
seri dialiri tegangan 24 V DC (baterai yang duhubungkan
seri total tegangannya adalah jumlah dari masing-maing
tegangan baterai: Voltase1 + Voltase2 = Voltasetotal).
Hal ini bisa ditemukan di bengkel aki dimana ada
beberapa baterai yang duhubungkan secara seri dan
semuanya disetrum sekaligus. Berapa kuat arus (ampere)
yang harus dialiri bergantung juga dari kapasitas yang
dimiliki baterai tersebut (penjelasan tentang ini bisa
ditemukan di bagian bawah). Konsekuensinya, proses
penerimaan arus ini berlawanan dengan proses
24
Gambar 2.9 Accu kering
pengeluaran arus, yaitu :1. Oksigen (O) dalam air (H2O)
terlepas karena bereaksi/bersenyawa/bergabung dengan
timah (Pb) pada pelat positif dan secara perlahan-lahan
kembali menjadi oksida timah colat (PbO2).2. Asam (SO4)
yang menempel pada kedua pelat (pelat positif maupun
negatif) terlepas dan bergabung dengan hidrogen (H)
pada air (H2O) di dalam cairan elektrolit dan kembali
terbentuk menjadi asam sulfat (H2SO4) sebagai cairan
elektrolit. Akibatnya berat jenis cairan elektrolit
bertambah menjadi sekitar 1,285 (pada baterai yang
terisi penuh). Sel aki terdiri atas timbal (Pb) sebagai
anode dan timbale dioksida (PbO2) sebagai katoda
kemudian kedua elektroda itu dicelupkan dalam larutan
asamsulfat (H2SO4). Kedua elektroda itu tidak perlu
dipisahkan dengan jembatan garam.
Reaksi elektrodanya adalah sebagai berikut :
Anoda Pb (-) : Pb + SO42- → PbSO4 + 2e– Katoda PbO2 (+)
: PbO2 + SO42- + 4H+ + 2e– → PbSO4 + 2H2O
Reaksi total : Pb + PbO2 + 4H+ + 2SO42- → 2PbSO4 + 2H2O
2.6 CodevisionAVR
Code VisionAVR pada dasarnya merupakan perangkat
lunak pemrograman mikrokontroler keluarga AVR berbasis
bahasa C. Ada tiga komponen penting yang telah
diintegrasikan dalam perangkat lunak ini: Compiler C,
IDE dan Program generator. Berdasarkan spesifikasi yang
25
dikeluarkan oleh perusahaan pengembangnya, Compiler C
yang digunakan hampir mengimplementasikan semua
komponen standar yang ada pada bahasa C standar ANSI
(seperti struktur program, jenis tipe data, jenis
operator, dan library fungsi standar-berikut
penamaannya). Tetapi walaupun demikian, dibandingkan
bahasa C untuk aplikasi komputer, compiler C untuk
mikrokontroler ini memiliki sedikit perbedaan yang
disesuaikan dengan arsitektur AVR tempat program C
tersebut ditanamkan (embedded). Khusus untuk library
fungsi, disamping library standar (seperti fungsi-
fungsi matematik, manipulasi String, pengaksesan memori
dan sebagainya), CodeVisionAVR juga menyediakan fungsi-
fungsi tambahan yang sangat bermanfaat dalam
pemrograman antarmuka AVR dengan perangkat luar yang
umum digunakan dalam aplikasi kontrol. Beberapa fungsi
library yang penting diantaranya adalah fungsi-fungsi
untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real
time Clock), sensor suhu LM75, SPI (Serial Peripheral
Interface) dan lain sebagainya. Untuk memudahkan
pengembangan program aplikasi, CodeVisionAVR juga
dilengkapi IDE yang sangat user friendly (lihat gambar
1.1). Selain menu-menu pilihan yang umum dijumpai pada
setiap perangkat lunak berbasis Windows, CodeVisionAVR
ini telah mengintegrasikan perangkat lunak downloader
(in system programmer) yang dapat digunakan untuk
26
mentransfer kode mesin hasil kompilasi kedalam sistem
memori mikrokontroller AVR yang sedang deprogram.
CodeVisionAVR 1.25.6 adalah suatu kompiler
berbasis bahasa C, yang terintegrasi untuk memprogram
dan sekaligus compiler aplikasi AVR (Alf and Vegard’s
Risc processor) terhadap mikrokontroler dengan sistem
berbasis window. CodeVisionAVR ini dapat
mengimplematasikan hampir semua interuksi bahasa C yang
sesuai dengan arsitektur AVR, bahkan terdapat beberapa
keunggulan tambahan untuk memenuhi keunggulan
spesifikasi dari CodeVisionAVR yaitu hasil kompilasi
studio debugger dari ATMEL.
Integrated Development Environtment (IDE) telah
diadaptasikan pada chip AVR yaitu In-System Programmer
software, memungkinkan programmer untuk mentransfer
program ke chip mikrokontroler secara otomatis setelah
proses assembly/kompilasi berhasil. In-System
Programmer software didesign untuk bekerja dan dapat
berjalan dengan perangkat lunak lain seperti AVR
Dragon, AVRISP, Atmel STK500, dan lain sebagainya.
Disamping library standar C, CodeVisionAVR C compiler
memiliki librari lain untuk:
Modul LCD Alpanumerik
Delays
Protokol semikonduktor Maxim/Dallas
Dan lainnya
27
CodeVisionAVR juga memiliki CodeWizardAVR sebagaki
generator program otomatis, yang memungkinkan kita
untuk menulis, segala bentuk pengaturan Chip dalam
waktu singkat, dan semua kode yang dibutuhkan untuk
mengimplementasikan fungsi-fungsi seperti :
2.6.1 Pengaturan akses External Memory
Untuk chip-chip AVR yang memungkinkan koneksi
memori eksternal SRAM, dapat juga mengatur ukuran
memori dan wait state (tahap tunggu) dari memori ketika
memori tersebut diakses.
2.6.2 Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat membuat
kode secara otomatis yang dapat mengidentifikasi
kondisi yang menyebabkan chip di reset.
2.6.3 Inisialisasi port input/output
Pengaturan port-port yang kan dijadikan gerbang
masukan dan keluaran dapat secara otomatis digenerate
codenya. Yang kita lakukan hanya memilih port-port yang
akan digunakan sebagai input atau output.
2.6.4. Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan
digunakan untuk menginterupsi program utama
28
2.6.5 Inisialisasi timers/counters
Pengaturan timers yang berfungsi untuk mengatur
frekwensi yang nantinya digunakan pada interupsi.
2.5.6 Inisialisasi timer watchdog
Pengaturan timers yang berfungsi untuk mengatur
frekwensi yang nantinya digunakan pada interupsi,
sehingga interupsi akan dilayani oleh suatu fungsi
wdt_timeout_isr.
2.6.7 Inisialisasi UART(USART) dan komunuikasi
serial
Pengaturan komunikasi serial sebagai penerima atau
pengirim data.
2.6.8 Inisialisasi komparasi analog
Pengaturan yang berkaitan dengan masukan data yang
digunakan dalam aplikasi yang membutuhkan komparasi
pada ADC nya.
2.6.9 Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang
berfungsi untuk merubah format analog menjadi format
digital untuk diolah lebih lanjut.
29
2.6.10 Inisialisasi antarmuka SPI
Pengaturan chip yang berkaitan dengan Clock rate,
Clock Phase, dan lainnya.
2.6.11 Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur
komunikasi antara register yang terdapat pada chip
AVR.
2.6.12 Inisialisasi antarmuka CAN
Pengaturan chip yang lebih kompleks, yang dapat
mengatur interupsi, transmisi data, timers, dan
lainnya.
2.6.13 Inisialisasi sensor temperatur, thermometer,
dan lainnya
Pengaturan yang berhubungan dengan sensor
temperatur one wire bus, memiliki fungsi-fungsi yang
ada pada librari CodeVisionAVR.
2.6.14 Inisialisasi one wire bus
Pengaturan yang berhubungan dengan sensor
temperatur yang memiliki fungsi-fungsi yang ada pada
librari CodeVisionAVR. Seperti Maxim/Dallas
Semiconductor.
30
2.6.15 Inisialisasi modul LCD
Pengaturan port-port yang kan digunakan sebagai
penghubung dengan LCD alphanumerik.
Selain bentuk konfigurasi hadware yang nantinya
secara otomatis akan membentuk sebuah instruksi
layaknya perintah program ke IC/Chip, adapula perintah
program yang kita ketik sendiri. Selain itu,
CodeVisionAVR juga menyediakan sebuah tool yang
dinamakan dengan Code Generator atau CodeWizardAVR
(lihat gambar 2.1). Secara praktis, tool ini sangat
bermanfaat membentuk sebuah kerangka program
(template), dan juga memberi kemudahan bagi programmer
dalam peng-inisialisasian register-register yang
terdapat pada mikrokontroler AVR yang sedang diprogram.
Dinamakan Code Generator, karena perangkat lunak
CodeVision ini akan membangkitkan kode-kode program
secara otomatis setelah fase inisialisasi pada jendela
CodeWizardAVR selesai dilakukan. Secara teknis,
penggunaan tool ini pada dasarnya hampir sama dengan
application wizard pada bahasa-bahasa pemrograman
Visual untuk komputer (seperti Visual C, Borland
Delphi, dan sebagainya). Disamping versi yang komersil,
Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR
versi Demo yang dapat didownload dari internet secara
31
gratis (lihat alamat URL: http://www.hpinfotech.ro)
Dalam versi ini, memori flash yang dapat diprogram
dibatasi maksimal 2K, selain itu tidak semua fungsi
library yang tersedia dapat dipanggil secara bebas.
Seperti halnya belajar pemrograman komputer, agar
mendapatkan pemahaman yang kuat dalam pemrograman
mikrokontroler AVR, anda sebaiknya mencoba langsung
membuat aplikasi program pada mikrokontroler tersebut.
Untuk tujuan latihan, perangkat lunak CodevisionAVR
versi demo pada dasarnya adalah sarana yang cocok dan
telah cukup memenuhi kebutuhan minimal anda. Gambar
1.4. berikut memperlihatkan diagram blok yang
mengilustrasikan alur pemrograman mikrokontroler AVR
dengan CodevisionAVR yang dapat anda lakukan :
Seperti terlihat pada gambar 2.10 CodevisionAVR
pada dasarnya telah mengintegrasikan komponen-komponen
penting dalam pemrograman microcontroller AVR:
Editor,Compiler C, assembler dan ISP (In System
32
Gambar 2.10 Alur pemrograman dengan
CodevisionAVR
Programmer). Khusus dengan ISP, ada beberapa jenis
perangkat keras programmer dongle (berikut papan
pengembangnya) yang telah didukung oleh perangkat lunak
CodevisionAVR ini, salah satu diantaranya adalah Kanda
System STK 200/300 produk Perusahaan Kanda yang
terhubung pada saluran antarmuka port paralel komputer.
Jika anda berencana membuat dongle yang kompatible
dengan produk Kanda, rangkaiannya dapat dilihat pada
situs:http:\\www.grandtonics.com. Atau jika mau membeli
sistem yang siap pakai (berupa dongle beserta papan
pengembangnya), salah satu produk dalam negeri dengan
harga yang relative murah adalah DT AVR nano/micro
System dialamat
URL:http//www.innovative_electronic.com., Sistem ini
kompatibel dengan kanda System STK 200/300. Untuk
tujuan-tujuan percobaan, produk innovative_electronic
ini sudah sangat memadai, selain mudah dihubungkan
dengan modul-modul perangkat input/output, seperti
modul LCD, keypad, array LED, penggerak motor stepper,
dan sebagainya, sistem ini juga telah dilengkapi
konverter TTL ke RS232 yang bermanfaat untuk komunikasi
microcontroller AVR dengan komputer.
Berkaitan dengan perangkat lunak downloader, pada
dasarnya anda dapat menggunakan perangkat lunak lain
(di luar CodeVisionAVR) untuk keperluan transfer kode
33
mesin kedalam sistem memori microcontroller AVR. Salah
satunya adalah ISP_AVR yang dibuat oleh Holger Buss dan
Ingo Busker dari Jerman.
2.7 Program Delphi
Delphi adalah sebuah bahasa pemrograman dan
lingkungan pengembangan perangkat lunak. Produk ini
dikembangkan oleh Borland. Dengan menggunakan Free
Pascal yang merupakan proyek opensource, bahasa ini
dapat pula digunakan untuk membuat program yang
berjalan di sistem operasi Mac OS X dan Windows CE.
Keunggulan bahasa pemrograman ini terletak pada
produktivitas, kualitas, pengembangan perangkat lunak,
kecepatan kompilasi, pola desain yang menarik yang
menarik serta diperkuat dengan pemrogramannya yang
terstruktur.
Langkah-Langkah Menjalankan Delphi : :
a. Klik tombol START
b. Pilih All Programs
c. Pilih Borland Delphi 7
d. Klik Delphi 7
2.7.1 IDE (Integrated Development Environment)
Delphi
34
Lingkungan pengembangan terpadu atau Integrated
Development Environment (IDE) adalah bagian dari Delphi
yang digunakan untuk memungkinkan pemrograman secara
visual merancang tampilan untuk para user (antarmuka
pemakai) dan menuliskan listing program atau kode.
2.7.2 Menu bar
Berfungsi untuk memilih tugas-tugas tertentu,
seperti memulai, membuka, dan menyimpan project,
mengompilasi project menjadi file executable (EXE), dan
lain-lain.
2.7.3 Tool Bar/Speed Bar
35
Gambar 2.11 IDE delphi 7.0
Gambar 2.12 Menu bar delphi 7.0
Memiliki fungsi yang sama seperti menu bar, tetapi
berfungsi seperti jalan pintas karena lebih praktis
dalam penggunaannya.
2.7.4 Component Palette
Component Palette berisi kumpulan ikon yang
melambangkan komponen-komponen yang terdapat pada VCL
(Visual Component Library). Pada Component Palette, akan
ditemukan beberapa page control, seperti Standard,
Additional, Win32, System, Data Access dan lain-lain.
Ikon tombol pointer terdapat di setiap page control.
2.7.5 Form
Form Designer merupakan suatu objek yang
dapat dipakai sebagai tempat untuk merancang program
aplikasi. Form berbentuk sebuah meja kerja yang dapat
diisi dengan komponen-komponen yang diambil dari
Component Palette.
36
Gambar 2.13 Tool / Speed bar delphi 7.0
Gambar 2.14 Component pallete delphi 7.0
2.7.6 Object Inspector
Object Inspector digunakan untuk mengubah
properti dan karakteristik dari sebuah komponen. Object
Inspector terdiri dari dua tab, yaitu Properties dan
Events. Tab Properties digunakan untuk mengubah
properti komponen. Proerti dengan tanda + menunjukkan
bahwa propeti tersebut mempunyai subproperti. Tab
Events, bagian yang dapat diisi dengan kode program
tertentu yang berfungsi unuk menangani event - event
(kejadian- kejadian yang berupa sebuah procedure) yang
dapat direspon oleh sebuah komponen.
37
Gambar 2.15 Form delphi 7.0
2.7.7 Object Tree View
Object Tree View menampilkan diagram pohon dari
komponen -komponen yang bersifat visual maupun
nonvisual yang telah terdapat dalam form, data module,
atau frame. Object Tree View juga menampilkan hubungan
logika antar komponen.
2.7.8 Code Editor
Code Editor merupakan tempat menuliskan kode program
atau pernyataan - pernyataan dalam Object Pascal. Code
38
Gambar 2.16 Object inspector delphi 7.0
Gambar 2.17 Object tree view delphi 7.0
Editor dilengkapi dengan fasilitas highlight yang
memudahkan pemakai menemukan kesalahan.
Title bar yang terletak pada bagian atas jendela code
editor menunjukkan nama file yang sedang disunting,
serta pada bagian informasi yang perlu untuk
diperhatikan, yaitu :
a. Nomor baris / kolom yang terletak pada bagian
paling kiri. Bagian ini berfungsi untuk
menunjukkan posisi kursor di dalam jendela Code
Editor. Modified menunjukkan bahwa file yang sedang
disunting telah mengalami perubahan tersebut belum
disimpan. Teks ini akan hilang jika telah
menyimpan perubahan.
b. Insert / Overwrite yang terletak pada bagian
paling kanan menunjukkan bahwa modus pengetikan
teks dalam jendela Code Editor. Insert menunjukkan
bahwa modus penyisipan teks dalam keadaan aktif,
sedangkan Overwrite menunjukkan bahwa modus
penimpaan teks dalam keadaan aktif.
39
Gambar 2.18 Code editor delphi 7.0
2.7.9 Langkah-langkah Awal Membuat Object
Pilih menu File – New – Applications sehingga pada
lembar kerja Delphi akan tampak sebuah form kosong.
a. Simpan rancangan proyek program aplikasi yang
masih kosong tersebut dengan perintah File – Save
All sehingga tampil kotak dialog Save Unit1 As
seperti yang tampak pada gambar 2.15.
b. Pilih lokasi penyimpanan, kemudian kotak
dialog berikutnya yang akan muncul adalah kotak
dialog Save Project1 As seperti yang tampak pd
gambar 2.16.
40
Gambar 2.19 Save unit1 as delphi 7.0
c. Setelah menyimpan file Unit dan Project
ke harddisk, maka Delphi akan membentuk file-file
berikut:
1). project1.dpr, file project yang
berisi program utama dari aplikasi.
2). unit1.pas, file unit yg
digunakan utk menangani kejadian pada form.
3). unit1.dfm, file yg berisi
daftar komponen berikut properti nya.
d. Setelah menyimpan project ini, jalankan
dengan cara memilih menu Run. Klik tombol Run atau
tekan tombol F9.
41
Gambar 2.20 Save project1 as delphi 7.0
Display karakter pada LCD diatur oleh pin EN, RS dan
RW. Jalur EN dinamakan Enable. Jalur ini digunakan
untuk memberitahu LCD bahwa anda sedang mengirimkan
sebuah data. Untuk mengirimkan data ke LCD, maka
melalui program EN harus dibuat logika low “0” dan set
pada dua jalur kontrol yang lain RS dan RW. Ketika dua
jalur yang lain telah siap, set EN dengan logika “1”
dan tunggu untuk sejumlah waktu tertentu ( sesuai
dengan datasheet dari LCD tersebut ) dan berikutnya set
EN ke logika low “0” lagi. Jalur RS adalah jalur
Register Select. Ketika RS berlogika low “0”, data akan
dianggap sebagai sebuah perintah atau instruksi khusus
( seperti clear screen, posisi kursor, dan lain-lain ).
Ketika RS berlogika high “1”, data yang dikirim adalah
data text yang akan ditampilkan pada display LCD.
Sebagai contoh, untuk menampilkan huruf “T” pada layar
LCD maka RS harus diset logika high“1”. Jalur RW adalah
42
Gambar 2.21 Run delphi 7.0
Tabel 2.17 Pin dan Fungsi
jalur kontrol Read/Write. Ketika RW berlogika low (0),
maka informasi pada bus data akan dituliskan pada layar
LCD. Ketika RW berlogika high ”1”, maka program akan
melakukan pembacaan memori dari LCD. Sedangkan pada
aplikasi umum pin RW selalu diberi logika low ”0”. Pada
akhirnya, bus data terdiri dari 4 atau 8 jalur
( bergantung pada mode operasi yang dipilih oleh
user ). Pada kasus bus data 8 bit, jalur diacukan
sebagai DB0 sampai dengan DB7.
43