BAB II LANDASAN TEORI
2.1. Thyristor Thyristor berakar kata dari bahasa Yunani yang berarti ‘pintu'. Dinamakan demikian barangkali karena sifat dari komponen ini yang mirip dengan pintu yang dapat dibuka dan ditutup untuk melewatkan arus listrik. Beberapa komponen thyristor yang dikenal yaitu SCR (Silicon Controlled Rectifier), TRIAC (Triode for Alternating Current) dan DIAC (Diode for Alternating Current). 2.1.1.
Struktur Thyristor
Ciri-ciri utama dari sebuah thyristor adalah komponen yang terbuat dari bahan semiconductor silicon. Walaupun bahannya sama, tetapi struktur P-N junction yang dimilikinya lebih kompleks dibanding transistor bipolar atau MOS. Komponen thyristor lebih banyak digunakan sebagai saklar (switch) daripada sebagai penguat arus atau tegangan seperti halnya transistor.
Gambar-2.1. Struktur Thyristor Struktur dasar thyristor adalah struktur 4 layer PNPN seperti yang ditunjukkan pada gambar-2.1a. Jika dipilah, struktur ini dapat dilihat sebagai dua buah struktur junction PNP dan NPN yang tersambung di tengah seperti pada gambar-2.1b. Ini tidak lain adalah dua buah transistor PNP dan NPN yang tersambung pada masing-masing kolektor dan base. Jika divisualisasikan sebagai transistor Q1 dan Q2, maka struktur thyristor ini dapat diperlihatkan seperti pada gambar-2.2 yang berikut ini.
5 http://digilib.mercubuana.ac.id/
6
Gambar-2.2. Visualisasi dengan Transistor Terlihat di sini kolektor transistor Q1 tersambung pada base transistor Q2 dan sebaliknya kolektor transistor Q2 tersambung pada base transistor Q1. Rangkaian transistor yang demikian menunjukkan adanya loop penguatan arus di bagian tengah. Dimana diketahui bahwa I = β I , yaitu arus kolektor adalah penguatan c
b
dari arus base. Jika misalnya ada arus sebesar I yang mengalir pada base transistor Q2, b
maka akan ada arus I yang mengalir pada kolektor Q2. Arus kolektor ini c
merupakan arus base I pada transistor Q1, sehingga akan muncul penguatan pada b
arus kolektor transistor Q1. Arus kolektor transistor Q1 tidak lain adalah arus base bagi transistor Q2. Demikian seterusnya sehingga makin lama sambungan PN dari thyristor ini di bagian tengah akan mengecil dan hilang. Tertinggal hanyalah lapisan P dan N dibagian luar. Jika keadaan ini tercapai, maka struktur yang demikian tidak lain adalah struktur dioda PN (anoda-katoda) yang sudah dikenal. Pada saat yang demikian, disebut bahwa thyristor dalam keadaan ON dan dapat mengalirkan arus dari anoda menuju katoda seperti layaknya sebuah dioda.
Gambar-2.3. Thyristor diberi tegangan
http://digilib.mercubuana.ac.id/
7
Bagaimana kalau pada thyristor ini kita beri beban lampu DC dan diberi suplai tegangan dari nol sampai tegangan tertentu seperti pada gambar 2.3. Yang terjadi pada lampu ketika tegangan dinaikan dari nol yaitu lampu akan tetap padam karena lapisan N-P yang ada di tengah akan mendapatkan reverse-bias (teori dioda). Pada saat ini disebut thyristor dalam keadaan OFF karena tidak ada arus yang bisa mengalir atau sangat kecil sekali. Arus tidak dapat mengalir sampai pada suatu tegangan reverse-bias tertentu yang menyebabkan sambungan NP ini jenuh dan hilang. Tegangan ini disebut tegangan breakdown dan pada saat itu arus mulai dapat mengalir melewati thyristor sebagaimana dioda umumnya. Pada thyristor tegangan ini disebut tegangan breakover V . bo
2.1.2.
SCR
Telah dibahas, bahwa untuk membuat thyristor menjadi ON adalah dengan memberi arus trigger lapisan P yang dekat dengan katoda. Yaitu dengan membuat kaki gate pada thyristor PNPN seperti pada gambar-2.4a. Karena letaknya yang dekat dengan katoda, bisa juga pin gate ini disebut pin gate katoda (cathode gate). Beginilah SCR dibuat dan simbol SCR digambarkan seperti gambar-2.4b. SCR dalam banyak literatur disebut Thyristor saja.
Gambar-2.4. Struktur SCR Melalui kaki (pin) gate tersebut memungkinkan komponen ini di trigger menjadi ON, yaitu dengan memberi arus gate. Ternyata dengan memberi arus gate I yang g
semakin besar dapat menurunkan tegangan breakover (V ) sebuah SCR. Dimana bo
tegangan ini adalah tegangan minimum yang diperlukan SCR untuk menjadi ON. Sampai pada suatu besar arus gate tertentu, ternyata akan sangat mudah membuat SCR menjadi ON. Bahkan dengan tegangan forward yang kecil sekalipun.
http://digilib.mercubuana.ac.id/
8
Misalnya 1 volt saja atau lebih kecil lagi. Kurva tegangan dan arus dari sebuah SCR adalah seperti yang ada pada gambar-2.5 yang berikut ini.
Gambar-2.5. Karakteristik kurva I-V SCR Pada gambar-2.5 tertera tegangan breakover V
bo
, yang jika tegangan forward
SCR mencapai titik ini, maka SCR akan ON. Lebih penting lagi adalah arus I yang dapat menyebabkan tegangan V
bo
tersebut ditunjukkan beberapa arus I
g
turun menjadi lebih kecil. Pada gambar g
dan korelasinya terhadap tegangan
breakover. Pada datasheet SCR, arus trigger gate ini sering ditulis dengan notasi I
GT
(Gate Trigger Current). Pada gambar-2.5 ada ditunjukkan juga arus I yaitu h
arus holding yang mempertahankan SCR tetap ON. Jadi agar SCR tetap ON maka arus forward dari anoda menuju katoda harus berada di atas parameter ini. Sejauh ini yang dikemukakan adalah bagaimana membuat SCR menjadi ON. Pada kenyataannya, sekali SCR mencapai keadaan ON maka selamanya akan ON, walaupun tegangan gate dilepas atau di short ke katoda. Satu-satunya cara untuk membuat SCR menjadi OFF adalah dengan membuat arus anoda-katoda turun di bawah arus I (holding current). Pada gambar-2.5 kurva I-V SCR, jika h
arus forward berada dibawah titik I , maka SCR kembali pada keadaan OFF. h
Berapa besar arus holding ini, umumnya ada di dalam datasheet SCR. Cara membuat SCR menjadi OFF tersebut adalah sama saja dengan menurunkan tegangan anoda-katoda ke titik nol. Karena inilah SCR atau thyristor pada umumnya tidak cocok digunakan untuk aplikasi DC. Komponen ini lebih banyak digunakan untuk aplikasi-aplikasi tegangan AC, dimana SCR bisa OFF pada saat gelombang tegangan AC berada di titik nol.
http://digilib.mercubuana.ac.id/
9
Ada satu parameter penting lain dari SCR, yaitu V . Parameter ini adalah GT
tegangan trigger pada gate yang menyebabkan SCR ON. Kalau dilihat dari model thyristor pada gambar-2.2, tegangan ini adalah tegangan V pada transistor Q2. be
V
GT
seperti halnya V , besarnya kira-kira 0.7 volt. Seperti contoh rangkaian be
gambar-2.6 berikut ini sebuah SCR diketahui memiliki I
GT
= 10 mA dan V
GT
= 0.7
volt. Maka dapat dihitung tegangan V yang diperlukan agar SCR ini ON adalah in
sebesar : V =V +V in
r
GT
V = I (R) + V in
GT
GT
= 4.9 volt
Gambar-2.6. Rangkaian SCR
2.1.3.
TRIAC
Boleh dikatakan SCR adalah thyristor yang uni-directional, karena ketika ON hanya bisa melewatkan arus satu arah saja yaitu dari anoda menuju katoda. Struktur TRIAC sebenarnya adalah sama dengan dua buah SCR yang arahnya bolak-balik dan kedua gate-nya disatukan. Simbol TRIAC ditunjukkan pada gambar-2.7. TRIAC biasa juga disebut thyristor bi-directional.
Gambar-2.7. Simbol TRIAC
http://digilib.mercubuana.ac.id/
10
TRIAC bekerja mirip seperti SCR yang paralel bolak-balik, sehingga dapat melewatkan arus dua arah. Pada datasheet akan lebih detail diberikan besar parameter-parameter seperti V
bo
dan -V , lalu I bo
GT
dan -I , I serta -I dan GT
h
h
sebagainya. Umumnya besar parameter ini simetris antara yang plus dan yang minus. Dalam perhitungan desain, bisa dianggap parameter ini simetris sehingga lebih mudah di hitung.
2.1.4.
DIAC
Kalau dilihat strukturnya seperti gambar-2.8a, DIAC bukanlah termasuk keluarga thyristor, namun prinsip kerjanya membuat ia digolongkan sebagai thyristor. DIAC dibuat dengan struktur PNP mirip seperti transistor. Lapisan N pada transistor dibuat sangat tipis sehingga elektron dengan mudah dapat menyeberang menembus lapisan ini. Sedangkan pada DIAC, lapisan N di buat cukup tebal sehingga elektron cukup sukar untuk menembusnya. Struktur DIAC yang demikian dapat juga dipandang sebagai dua buah dioda PN dan NP, sehingga dalam beberapa literatur DIAC digolongkan sebagai dioda.
Gambar-2.8 : Simbol DIAC Sukar dilewati oleh arus dua arah, DIAC memang dimaksudkan untuk tujuan ini. Hanya dengan tegangan breakdown tertentu barulah DIAC dapat menghantarkan arus. Arus yang dihantarkan tentu saja bisa bolak-balik dari anoda menuju katoda dan sebaliknya. Kurva karakteristik DIAC sama seperti TRIAC, tetapi yang hanya perlu diketahui adalah berapa tegangan breakdown-nya. Simbol dari DIAC adalah seperti yang ditunjukkan pada gambar-2.8b. DIAC umumnya dipakai sebagai pemicu TRIAC agar ON pada tegangan input
http://digilib.mercubuana.ac.id/
11
tertentu yang relatif tinggi. Contohnya adalah aplikasi dimmer lampu yang dapat dilihat pada gambar-2.9.
Gambar-2.9. Rangkaian Dimmer
Jika diketahui I
GT
dari TRIAC pada rangkaian di atas 10 mA dan V
GT
Lalu diketahui juga yang digunakan adalah sebuah DIAC dengan V
= 0.7 volt. bo
= 20 V,
maka dapat dihitung TRIAC akan ON pada tegangan : V = I (R)+V +V GT
bo
GT
= 120.7 V
Gambar-2.10. Bentuk Gelombang Rangkaian Dimmer
Pada rangkaian dimmer, resistor R biasanya diganti dengan rangkaian seri resistor dan potensiometer. Di sini kapasitor C bersama rangkaian R digunakan untuk menggeser phasa tegangan V . Lampu dapat diatur menyala redup dan terang, AC
tergantung pada saat kapan TRIAC di picu.
http://digilib.mercubuana.ac.id/
12
2.2. Mikrokontroler AVR AVR merupakan singkatan dari Alf and Vegard RISC atau Advanced Virtual RISC. Arsitektur mikrokontroler jenis AVR pertama kali dikembangkan pada tahun 1996 oleh dua orang mahasiswa Norwegian Institute of Technology yaitu Alf-Egil Bogen dan Vegard Wollan. Mikrokontroler AVR kemudian dikembangkan lebih lanjut oleh Atmel. Seri pertama AVR yang dikeluarkan adalah mikrokontroler 8 bit AT90S8515, dengan konfigurasi pin yang sama dengan mikrokontroler 8051, termasuk address dan data bus yang termultipleksi. 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 MSC51 berteknologi CISC (Complex Instruction Set Computing). Secara umum, AVR dapat dikelompokkan menjadi 4 kelas, yaitu keluarga ATiny, keluarga AT90Sxx, keluarga ATMega, dan AT86RFxx. Pada dasarnya yang membedakan masingmasing kelas adalah memori, peripheral, dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama. Arsitektur AVR ALU (Arithmetic Logic Unit) adalah processor yang bertugas mengeksekusi (eksekutor) kode program yang ditunjuk oleh program counter. Program Memory adalah memori Flash PEROM yang bertugas menyimpan program (software) yang kita buat dalam bentuk kode-kode program (berisi alamat memori beserta kode program dalam ruangan memori alamat tersebut) yang telah kita compile berupa bilangan heksa atau biner. Program Conter (PC) adalah komponen yang bertugas menunjukan ke ALU alamat program memori yang harus diterjemahkan kode programnya dan dieksekusi. Sifat dari PC adalah linier artinya dia menghitung naik satu bilangan
http://digilib.mercubuana.ac.id/
13
yang bergantung alamat awalnya. Misalnya jika PC 0X000 maka dia akan naik satu menjadi 0X001 yang berarti menyuruh ALU mengeksekusi kode program yang berada pada alamat 0X001 program memori. Jika isi PC dari 0X002 dipaksa (instruksi lompatan) 0X02A maka dia akan naik satu menjadi 0X02B dan melakukan tugasny begitu seterusnya. 32 General Purpose Working Register (GPR) adalah register file atau register kerja (R0 – R31) yang mempunyai ruangan 8-bit. Tugas GPR adalah tempat ALU mengeksekusi kode-kode program, setiap instruksi dalam ALU melibatkan GPR. GPR terbagi dua yaitu kelompok atas (R16 – R31) dan kelompok bawah (R0 – R15), dimana kelompok bawah tidak bisa digunakan untuk mengakses data secara langsung (immediate) data konstan seperti instruksi assembly LDI, dan hanya bisa digunakan antar-register, SRAM, atau register I/O (register port). Sedangkan kelompok atas sama dengan kelompok bawah hanya dia punya kelebihan dapat mengakses data secara langsung data konstan. Kelebihan lain dari GPR adalah terdapat register pasangan yang digunakan untuk pointer (penunjuk ke alamat tertentu). XH:XL(R27:R26), YH:YL(R29:R28), ZH:ZL(R31:R30), hanya register pointer ZH:ZL(R31:R30), hanya register pointer Z yang dapat digunakan untuk menunjuk ke alamat memori program. Static Random Access Memory (SRAM) adalah RAM yang bertugas menyimpan data sementara sama seperti RAM pada umumnya mempunyai alamat dan ruangan data. Alamat terakhir dari SRAM bergantung pada kapasitas SRAM, biasanya sudah didefinisikan pada file header dengan nama RAMEND. RAMEND biasanya digunakan untuk membuat stack (alamat terakhir SRAM). Internal Pheripheral adalah peralatan/modul internal yang ada dalam mikrokontroler seperti saluran I/O, Interupsi eksternal, Timer/Counter, USART, EEPROM dan lain-lain. Tiap peralatan internal mempunyai register port (register I/O) yang mengendalikan peralatan internal tersebut.
http://digilib.mercubuana.ac.id/
14
2.2.1. Mikrokontroler AVR ATMega8535 Fitur yang tersedia pada ATMega8535 adalah : •
Frekuensi clock maksimum 16 MHz
•
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
•
Analog to Digital Converter 10 bit sebanyak 8 input
•
Timer/Counter sebanyak 3 buah
•
CPU 8 bit yang terdiri dari 32 register
•
Watchdog Timer dengan osilator internal
•
SRAM sebesar 512 byte
•
Memori Flash sebesar 8 Kbyte dengan kemampuan read while write
•
Interrupt internal maupun eksternal
•
Port komunikasi SPI
•
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
•
Analog Comparator
•
Komunikasi serial standar USART dengan kecepatan maksimal 2,5 Mbps
Gambar-2.11 Konfigurasi Pin ATMega8535 ATMega8535 memiliki dua jenis memori yaitu Data Memory dan Program Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan data.
2.2.2. Mikrokontroler AVR ATMega16 ATMega16 mempunyai throughput mendekati 1 MIPS per MHz membuat disainer sistem untuk mengoptimasi konsumsi daya versus kecepatan proses. Beberapa keistimewaan dari AVR ATMega16 antara lain:
http://digilib.mercubuana.ac.id/
15
1. Arsitektur RISC tingkat lanjut
130 Instruksi yang ampuh – Hampir semuanya dieksekusi dalam satu detak (clock) saja
32 x 8 General Purpose Working Registers
Operasi statis penuh
Throughput hingga 16 MIPS pada 16 MHz
Pengali On-chip 2-cycle
2. Nonvolatile Program dan Memori Data
8K Bytes of In-System Self-Programmable Flash
Optional Boot Code Section with Independent Lock Bits
512 Bytes EEPROM
512 Bytes Internal SRAM
Programming Lock for Software Security
3. Fitur-fitur periferal
Dua Timer/Counter 8-bit dengan Prescalers dan Mode Pembanding terpisah
Sebuah Timer/Counter 16-bit dengan Prescaler, Compare Mode, dan Capture Mode yang terpisah
Pencacah Real Time dengan osilator terpisah
Empat kanal PWM
8-kanal, 10-bit ADC
Byte-oriented Two-wire Serial Interface
Programmable Serial USART
4. Fitur-fitur mikrokontroler khusus
Reset saat Power-on dan deteksi Brown-out yang dapat diprogram
Internal Calibrated RC Oscillator
Sumber interupsi Eksternal dan Internal
Enam mode-mode Sleep : Idle, ADC Noise Reduction, Power-save, Powerdown, Standby, and Extended Standby
5. I/O and Package
32 Programmable I/O Lines
http://digilib.mercubuana.ac.id/
16
40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad MLF
6. Tegangan Kerja
2.7 - 5.5V untuk Atmega16L
4.5 - 5.5V untuk Atmega16
Gambar-2.12 Pin-pin ATMega16 kemasan 40-pin Pin-pin pada ATMega16 dengan kemasan 40-pin DIP (dual inline package) ditunjukkan
oleh
gambar-2.12.
Guna
memaksimalkan
performa,
AVR
menggunakan arsitektur Harvard yaitu dengan memori dan bus terpisah untuk program dan data.
2.2.3. Mikrokontroler AVR ATMega32 Fitur-fitur dan karakteristik pada AVR ATMega32 hampir sama dengan AVR ATMega16 antara lain: 1. Arsitektur RISC tingkat lanjut
131 Instruksi yang ampuh – Hampir semuanya dieksekusi dalam satu detak (clock) saja
32 x 8 General Purpose Working Registers
Operasi statis penuh
Throughput hingga 16 MIPS pada 16 MHz
Pengali On-chip 2-cycle
2. High Endurance Nonvolatile Memory Segments
32K Bytes of In-System Self-Programmable Flash program memory
1024 Byte EEPROM
2K byte Internal SRAM
Write/Erase Cycles : 10,000 Flash / 100,000 EEPROM
http://digilib.mercubuana.ac.id/
17
Mengingat Data : 20 tahun pada 85⁰ C / 100 tahun pada 25⁰ C
Optional Boot Code Section with Independent Lock Bits
Programming Lock for Software Security
3. Antarmuka JTAG (IEEE std. 1149.1 Compliant)
Kemampuan Boundary-scan sesuai standar JTAG
Extensive On-Chip Debug Support
Programming of Flash, EEPROM, Fuses, and Lock Bits through the JTAG Interface
4. Fitur-fitur periferal
Dua Timer/Counter 8-bit dengan Prescalers dan Mode Pembanding terpisah
Sebuah Timer/Counter 16-bit dengan Prescaler, Compare Mode, dan Capture Mode yang terpisah
Pencacah Real Time dengan Osilator terpisah
Empat kanal PWM
8-kanal, 10-bit ADC 8 Single-ended Channels 7 Differential Channels in TQFP Package Only 2 Differential Channels with Programmable Gain at 1x, 10x, or 200x
Byte-oriented Two-wire Serial Interface
Programmable Serial USART
Master/Slave SPI Serial Interface
Pewaktu Watchdog yang dapat diprogram dengan Osilator On-Chip yang terpisah
Komparator Analog On-Chip
5. Fitur-fitur mikrokontroler khusus
Reset saat Power-on dan deteksi Brown-out yang dapat diprogram
Internal Calibrated RC Oscillator
Sumber interupsi Eksternal dan Internal
http://digilib.mercubuana.ac.id/
18
Enam mode-mode Sleep : Idle, ADC Noise Reduction, Power-save, Powerdown, Standby, and Extended Standby
6. I/O and Package
32 Programmable I/O Lines
40-pin PDIP, 44-lead TQFP, 44-lead PLCC, and 44-pad QFN/MLF
7. Tegangan Kerja
2.7 - 5.5V untuk ATMega32L
4.5 - 5.5V untuk ATMega32
8. Kecepatan (frekuensi clock)
0 - 8 MHz untuk ATMega32L
0 – 16 MHz untuk ATMega32
9. Konsumsi daya pada 1 MHz, 3V, 25⁰C untuk ATMega32L
Aktif : 1.1 mA
Idle Mode : 0.35 mA
Mode Power-down : < 1 µA
Pada gambar-2.13 ditunjukkan diagram pin mikrokontroler ATMega32 tipe PDIP.
Gambar-2.13 Pin-pin ATMega32 kemasan 40-pin
2.3. Bahasa Pemrograman BASIC AVR (BASCOM AVR) Terdapat beberapa bahasa dalam pemrograman mikrokontroler AVR ini, salah satunya adalah bahasa BASIC. Penggunaan bahasa ini mempunyai
http://digilib.mercubuana.ac.id/
19
kemudahan dalam memrogram dan adanya fasilitas simulator pada compiler BASCOM AVR.
2.3.1. Tipe Data Tipe data berkaitan dengan peubah atau variabel atau konstanta yang akan menunjukkan daya tampung/jangkauan dari variabel/konstanta tersebut. Tipe data dalam BASCOM ditunjukkan pada tabel-2.1. Tabel-2.1. Tipe Data dan Ukurannya
2.3.2. Variabel Variabel atau peubah digunakan untuk menyimpan data sementara. Variabel diberi nama dan dideklarasikan terlebih dahulu sebelum digunakan. Aturan pemberian nama variabel sebagai berikut :
Harus dimulai dengan huruf (bukan angka)
Tidak ada nama variabel yang sama dalam sebuah program
Maksimum 32 karakter
Tanpa menggunakan spasi, pemisahan bisa dilakukan dengan garis bawah
Tidak menggunakan karakter-karakter khusus yang digunakan sebagai operator BASCOM
Variabel dapat dideklarasikan dengan beberapa cara : a.
Dengan pernyataan DIM Deklarasi ini dibuat dengan perintah DIM (singkatan dari dimension) dengan aturan sebagai berikut :
http://digilib.mercubuana.ac.id/
20
Dim
As <TipeData>
Contoh : Dim angka
As Integer
Dim bilangan
As byte
Jika beberapa variabel dideklarasikan dalam satu baris, maka harus dipisah dengan tanda koma. Contoh : Dim
b.
angka As Integer, bilangan As byte
Dengan pernyataan DEFINT, DEFBIT, DEFBYTE, DEFWORD Deklarasi dengan pernyataan tersebut secara prinsip tidak berbeda dengan “DIM”. DEFINT DEFBIT DEFBYTE DEFWORD DEFLNG DEFSNG DEFDBL
= = = = = = =
untuk untuk untuk untuk untuk untuk untuk
tipe tipe tipe tipe tipe tipe tipe
data data data data data data data
integer, bit, byte, word, long, singel, doble
Cara pendeklarasiannya sebagai berikut : DEFINT/DEFBIT/DEFBYTE/DEFWORD
Contoh : DEFINT
angka
DEFBYTE
bilangan
Untuk variabel dengan tipe data yang sama dapat dideklarasikan dengan dipisah titik koma, misal DEFINT
bil_1 ; bil_2 ; bil_3
2.3.3. Konstanta Berbeda dengan variabel, sebuah konstanta akan bernilai tetap. Sebelum digunakan, konstanta dideklarasikan terlebih dahulu dengan cara (ada dua cara) :
http://digilib.mercubuana.ac.id/
21
Dim nama_konstanta As const nilai_konstanta Const nama_konstanta = nilai_konstanta
Contoh : Dim pembagi As const 23 Const pembagi = 23
2.3.4. Penulisan Bilangan Pada BASCOM AVR, bilangan dapat ditulis dalam 3 bentuk : 1. Desimal ditulis biasa, contoh : 16 2. Biner diawali dengan &B, contoh : &B10001111 3. Heksadesimal diawali dengan &H, contoh : &H8F
2.3.5. Alias Untuk mempermudah pemrograman, biasanya nama register dalam mikrokontroler dibuatkan nama yang identik dengan hardware yang dibuat, contoh : LED_1 alias PORTC.0
‘nama lain dari PORTC.0 adalah LED_1
SW_1 alias PINC.1
‘nama lain dari PINC.1 adalah SW_1
2.3.6. Operator Operator digunakan dalam pengolahan data pemrograman dan biasanya membutuhkan dua variabel atau dua parameter, sedangkan operator dituliskan diantara
kedua
parameter
tersebut.
Operator-operator
ditunjukkan pada tabel-tabel berikut. Tabel-2.2. Operator Aritmatika
http://digilib.mercubuana.ac.id/
BASCOM
AVR
22
Tabel-2.3. Operator Rasional
Tabel-2.4. Operator Logika
2.3.7. Operasi Bersyarat 1. IF...THEN Dengan pernyataan If...Then, kita dapat mengetes kondisi tertentu, kemudian menentukan tindakan yang sesuai dengan kondisi yang diinginkan. Sintaksis penulisannya sebagai berikut : IF <syarat kondisi>THEN
Sintaksis diatas digunakan jika hanya ada satu kondisi yang diuji dan hanya melakukan satu tindakan. Jika melakukan lebih dari satu tindakan, maka sintaksisnya adalah : IF < Syarat
kondisi> THEN ke-1> ke-2>
ke-n>
Jika ada dua kondisi atau lebih yang akan diuji, maka sintaksisnya menjadi : IF <syarat kondisi 1> THEN ELSEIF <syarat kondisi 2> THEN . . ELSEIF <syarat kondisi ke n>THEN ELSE END IF
http://digilib.mercubuana.ac.id/
23
2. SELECT...CASE Perintah Select...Case akan mengeksekusi beberapa blok pernyataan tergantung pada nilai variabelnya. Sintaksisnya sebagai berikut : SELECT CASE variabel CASE test1 : Statements CASE test2 : Statements CASE ELSE : Statements END SELECT
3. WHILE...WEND Perintah While...Wend akan mengeksekusi sebuah pernyataan secara berulang ketika masih menemukan kondisi yang sama. Perintah akan berhenti jika ada perubahan kondisi dan melakukan perintah selanjutnya. Sintaksisnya sebagai berikut : WHILE <syarat kondisi> WEND
4. EXIT Perintah Exit digunakan untuk keluar secara langsung dari blok program For...Next, Do...Loop, Sub...Endsub, While...Wend. sintaksisnya sebagai berikut: EXIT <While> <Sub>
5. GOSUB Dengan Gosub, program akan melompat ke sebuah label dan akan menjalankan program yang ada dalam subrutin sampai menemui perintah Return. Perintah Return akan mengembalikan program ke titik setelah Gosub. Sintaksisnya sebagai berikut : Print ”coba rutin” GOSUB cabang Print ”Hello” END Cabang : X = X + 2 PRINT X RETURN
6. GOTO Perintah GOTO digunakan untuk melakuakn percabangan. Perbedaannya dengan GOSUB adalah perintah GOTO tidak memerlukan perintah Return, sehingga
http://digilib.mercubuana.ac.id/
24
programnya tidak akan kembali ke titik dimana perintah GOTO berada. Berikut adalah sintaksisnya : GOTO label Label :
2.3.8. Compiler Directive Compiler directive adalah statemen yang menunjukkan kondisi tertentu program yang harus diperhatikan oleh kompiler atau memberi tahu compiler hardware yang akan kita gunakan.
$CRYSTAL
Statemen untuk menentukan kristal yang digunakan dalam sistem minimum mikrokontroler. Contoh : $crystal = 8000000
$FRAMESIZE
Statemen untuk menentukan ukuran frame. Contoh : $framesize = 40
$HWSTACK
Statemen menentukan tempat yang tersedia untuk hardwere Contoh : $hwstack = 32
$REGFILE
Statemen memerintahkan kompiler untuk menggunakan file register tertentu Contoh : $regfile = ”m8535.dat” Pernyataan harus diletakkan pada posisi paling awal program.
$SWSTACK
Statemen menentukan tempat yang tersedia untuk softwere Contoh : $hwstack = 10
http://digilib.mercubuana.ac.id/
25
2.4. Sensor Sensor adalah alat untuk mendeteksi/mengukur sesuatu yang digunakan untuk mengubah variasi mekanis, magnetis, panas, sinar dan kimia menjadi tegangan dan arus listrik. Sensor itu sendiri terdiri dari transduser dengan atau tanpa penguat/pengolah sinyal yang terbentuk dalam satu sistem pengindera. Dalam lingkungan sistem pengendali dan robotika, sensor memberikan kesamaan yang menyerupai mata, pendengaran, hidung, lidah yang kemudian akan diolah oleh kontroler sebagai otaknya. Contoh : Sensor Cahaya (LDR), tekan (force sensor), Sensor sentuh , Sensor suara dll.
Sensor proximity adalah sensor untuk mendeteksi ada atau tidaknya suatu obyek. Dalam dunia robotika, sensor proximity seringkali digunakan untuk mendeteksi ada atau tidaknya suatu garis pembimbing gerak robot atau lebih dikenal dengan istilah “Line Follower Robot“ atau “Line Tracer Robot”, juga biasa digunakan untuk mendeteksi penghalang berupa dinding atau penghalang lain pada Robot Avoider. Jenis sensor proximity meliputi limit switch (saklar mekanik), ultrasonic proximity, proximity(infra merah), kamera dan lain sebagainya.
http://digilib.mercubuana.ac.id/