MIKROKONTROLER
A. Pengertian Mikrokontroler
Mikrokontroler adalah sebuah system computer fungsional dalam suatu chip yang
di dalamnya terkandung sebuah inti prosesor memori (sejumlah kecil RAM, memori
program atau duanya), dan perlengkapan input output.
Dengan kata lain, mikrokontroler adalah suatu alat elektronika digital yang
mempunyai masukan dan keluaran serta kendali dengan program yang bisa ditulis dan
dihapus dengan cara khusus, cara kerja mikrokontroler sebenarnya membaca dan menulis
data. Mikrokontroler merupakan komputer didalam chip yang digunakan untuk
mengontrol peralatan elektronik, yang menekankan efisiensi dan efektifitas biaya. Secara
harfiahnya bisa disebut “pengendali kecil” dimana sebuah sistem elektronik yang
sebelumnya banyak memerlukan komponen-komponen pendukung seperti IC TTL dan
CMO dapat direduksi/diperkecil dan akhirnya terpusat serta dikendalikan oleh
mikrokontroler ini. Namun demikian tidak sepenuhnya mikrokontroler bisa mereduksi
komponen IC TTL dan CMOS yang seringkali masih diperlukan untuk aplikasi
kecepatan tinggi atau sekedar menambah jumlah saluran masukan dan keluaran (I/O).
Dengan kata lain, mikrokontroler adalah versi mini atau mikro dari sebuah komputer
karena mikrokontroler sudah mengandung beberapa periferal yang langsung bisa
dimanfaatkan, misalnya port paralel, port serial, komparator, konversi digital ke analog
(DAC), konversi analog ke digital dan sebagainya hanya menggunakan sistem minimum
yang tidak rumit atau kompleks. Agar sebuah mikrokontroler dapat berfungsi, maka
mikrokontroler tersebut memerlukan komponen eksternal yang kemudian disebut dengan
sistem minimum. Untuk membuat sistem minimal paling tidak dibutuhkan sistem clock
dan reset, walaupun pada beberapa mikrokontroler sudah menyediakan sistem clock
internal, sehingga tanpa rangkaian eksternal pun mikrokontroler sudah beroperasi.
1
2. Software pemrograman dan kompiler, serta downloader.
Mikrokontroler Design
Ada dua kelas utama dari arsitektur komputer, yaitu ‘arsitektur Havard’ dan
‘arsitektur Von Neumann (atau Princeton). Banyak desain khusus mikrokontroler dan
DSP (Digital Signal Processor) menggunakan arsitektur Havard.
2
Pada arsitektur Von Neumann, program dan data dibagi pada ruang memori yang
sama. Arsitektur Von Neumann menyediakan fitur penyimpanan dan modifikasi program
secara mudah. Bagaimanapun, penyimpanan program tidak mungkin optimal dan
membutuhkan berbagai pengumpulan program dan data untuk membentuk instruksi.
Pengumpulan program dan data diselesaikan menggunakan time division multiplexing
yang akan berpengaruh pada performa mikrokontroler itu sendiri. Salah satu contoh
mikrokontroler yang menggunakan arsitektur Von Neumann (princeton) adalah Motorola
68HC11.
Arsitektur MCS-51
3
Istilah ‘8051’ disini mengacu kepada anggota keluarga MCS-51. Blok fungsional
mikrokontoler 8051 terdiri dari ALU, unit kendali dan pewaktu, RAM/EPROM/ROM,
register, latch dan driver untuk port P0, P1, P2 dan P3. Setiap blok fungsional tersebut
didiskusikan berikut ini
ALU
ALU 8051 menampilkan operasi aritmatik dan logika pada operand 8-bit. Latch adalah
register yang mendapatkan keluaran dari ALU. Selain memiliki operasi penambahan
(ADD) dan pengurangan (SUB) 8051 juga memiliki operasi perkalian (MUL) dan
pembagian (DIV). Tiap operasi logika bersangkutan dengan gerbang-gerbang digital
didalamnya yang memungkinkan operasi NOT, OR, NOT dan XOR.
Prosesor Boolean
Mikrokontroler 8051 memiliki memori program dan memori data yang terpisah. Code
program biasanya tersimpan pada ROM/EPROM. Storage program adalah salah satu
faktor yang membedakan antara anggota keluarga 8051 yang satu dengan yang lainnya.
Memori program dari 80C51 adalah 4K ROM, sedangkan memori program 80C52 adalah
8K ROM. 87C51 memiliki program memori ‘EPROM’ sebesar 4K.
Memori data bisa berupa RAM internal dan RAM eksternal. Contoh yang memiliki RAM
internal adalah 80C51 yang berkapasitas 128 byte. Beberapa lokasi internal RAM yang
juga digunakan untuk pengendalian operasi periperal seperti pewaktu/pencacah, port
serial, interupsi, dsb disebut sebagai SFR (Spesial Function Register). Ruang RAM
eksternal dapat terakses dalam hampir semua anggota 8051. Untuk mengakses RAM
eksternal digunakan alamat 16-bit. Bus alamat (Port 0) dan bus alamat-data (Port2) yang
menahan alamat ini. Orde byte yang lebih rendah dari bus alamat-data merupakan waktu
termultipleksi. Sedangkan multipleksi mengurangi jumlah pin, dan juga mengurangi
kecepatan dari akses memori. Hal ini yang mennjadi alasan mengapa akses memori data
eksternal selalu lebih lambat dibanding dengan pengaksesan RAM internal. Selanjutnya
untuk mengakses memori eksternal kita memerlukan load pointer data yang mana
membutuhkan instruksi ekstra.
4
Osilator
Semua anggota keluarga 8051 menggunakan kristal eksternal sebagai fungsi osilator.
Frekuensi operasi bisa tergantung kepada device itu sendiri. Data sheet device bisa
dijadikan rujukan untuk melihat frekuensi operasi yang sesuai dan mendukung device-
device yang akan digunakan. Sebagai contoh 80C51 beroperasi pada frekuensi 12 MHz.
Tetapi itu tidak menjadi suatu patokan yang tetap karena pada kenyataannya banyak juga
user menggunakan kristal 11,059 MHz. Selain itu masih banyak lagi device yang berjalan
pada frekuensi dibawah atau diatas 12 MHz. Frekuensi ringan yang lebih rendah
memperkenankan pewaktu membangkitkan frekuensi klok untuk pengoperasian serial
port.
Keseluruhan operasi mikrokontroler 8051 singkron dengan klok. Segala yang terjadi
didalam mikrokontroler tersebut selangkah dengan klok. Terlepas dari pewaktuan
internal, untuk mengakses device diluar chip terdapat pula fitur seperti pengendali sinyal
ALE, PSEN dan RD, WR yang dibangkitkan oleh unit pewatuan dan kendali. [1]
B. Jenis-jenis Mikrokontroller
Secara teknis, hanya ada 2 macam mikrokontroller. Pembagian ini didasarkan pada
kompleksitas instruksi-instruksi yang dapat diterapkan pada mikrokontroler tersebut.
Pembagian itu yaitu RISC dan CISC.
· RISC merupakan kependekan dari Reduced Instruction Set Computer. Instruksi yang
dimiliki terbatas, tetapi memiliki fasilitas yang lebih banyak.
· Sebaliknya, CISC kependekan dari Complex Instruction Set Computer. Instruksi bisa
dikatakan lebih lengkap tapi dengan fasilitas secukupnya. Masing-masing mempunyai
keturunan atau keluarga sendiri-sendiri. Sekarang kita akan membahas pembagian
jenis-jenis mikrokonktroler yang telah umum digunakan.
1. Keluarga MCS51
5
2. AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR
merupakan mikrokonktroler RISC 8 bit. Karena RISC inilah sebagian besar kode
instruksinya dikemas dalam satu siklus clock. AVR adalah jenis mikrokontroler yang
paling sering dipakai dalam bidang elektronika dan instrumentasi. Secara umum, AVR
dapat dikelompokkan dalam 4 kelas. Pada dasarnya yang membedakan masing-masing
kelas adalah memori, peripheral dan fungsinya. Keempat kelas tersebut adalah keluarga
ATTiny, keluarga AT90Sxx, keluarga ATMega dan AT86RFxx.
3. PIC
6
2. mikrokontroler MCS-51
Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung
melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM serta
jalur I/O berupa port bit I/O dan port serial. Selain itu terdapat fasilitas timer/counter
internal dan jalur interface address dan data ke memori eksternal. Salah satu tipe
mikrokontroler arsitektur MCS-51 yang banyak digunakan saat ini adalah tipe Atmel
89S51. Tipe ini banyak digunakan karena memiliki fasilitas on-chip flash memory
dan In System Programming. Berikut adalah feature-feature untuk mikrokontroler
tipe 89S51 buatan Atmel.
• 4K bytes Flash ROM
• tes RAM
• port @ 8-bit I/O (Input/Output) port
• 2 buah 16 bit timer
• Interface komunikasi serial
• 64K pengalamatan code (program) memori
• 64K pengalamatan data memori
• Prosesor Boolean (satu bit – satu bit)
• 210 lokasi bit-addressable
• Fasilitas In System Programming (ISP) [4]
7
Bahasa Pemrograman
a) Lampu berjalan yang bergerak satu per dari kiri ke kanan secara berulang-ulang
Tunda :
MOV R5,#250 : Isi register 5 dengan data 250
Tunda1 :
MOV R6,#100 : Isi register 6 dengan data 100
Tunda2 :
MOV R7,#10 : Isi register 7 dengan data 10
:“ : 2 (R7) = 2 (10) = 20 µS
:“ : 2 (R7 x R6) = 2 (10 x 100) = 2000 µS
: “’ : 2 (R7 x R6 x R5) = 2 (10 x 100 x 250) = 500000 µS
: …………….+
: 502020 µS = 500 mS
8
Mulai :
MOV P0,A
ACALL tunda
SJMP putar
c) Bahasa program untuk menggerakan lampu dari tengah k pinggir dengan waktu tunda
200 mili detik yaitu :
9
DJNZ R7,S : kurangi R7 dengan 1 sampai 0 ‘
10
keluar dari penggerak LED. Karena dihubungkan ke VCC, maka COMMON ANODA ini
berada pada kondisi AKTIF LOW (led akan menyala/aktif bila diberi logika 0).
2. Common Katoda
Merupakan kebalikan dari Common Anoda. Disini semua katoda disatukan secara
parallel dan dihubungkan ke GROUND. Karena seluruh katoda dihubungkan ke
GROUND, maka COMMON KATODA ini berada pada kondisi AKTIF HIGH (led akan
menyala/aktif bila diberi logika 1). [6]
11
6.2 Kode Ekses-3
Untuk menyatakan bulangan desimal ke kode ekses-3:
Bilangan desimal + 3 kemudian tiap bilangan diubah ke dalam biner 4 bite.
Contah bilangan desimal 2347: 2 + 3 = 5, 3 + 3 = 6, 4 +3 = 7, 7 +3 = 10, jadi kode ekses-
3 bilangan 2347: 0101 0100 0111 1010
6.3 kode GRAY
Kode Gray tidak memiliki keteraturan yang jelas, hanya ada satu keteraturan yang
konsisten yaitu satu digit berubah bila cacahan dari atas ke bawah.
Tabel Bilangan biner [1]
6.5 Pengkode
Pengkode merupakan alat yang berfungsi mengkodekan informasi (bahasa
manusia ke bahasa mesin elektronika digital. Contoh pengkode pada system gambar 6.1
12
pengkode dalam sistem ini harus menerjemahkan masukan desimal dari papan ketik ke
suatu kode BCD 8421.
7 8 9
Dekoder
Unit
4 5 6 Peng proses
kode dan
1 2 3 memori
Dekoder
0
0011
1
D
2
3
C
4
IC 74147
5
B
6
7
A
8
9
Contoh input 3, berarti no 3 adalah LOW bersesuaian dengan output HHLL, karena
output RENDAH AKTIF maka keluaran sesungguhnya adalah LLHH
13
6.6 Peraga LED 7 segmen
Peraga bilangan desimal yang umum berupa 7 segemen. Peraga ini tersesun atas 7
LED membentuk formasi angka 8, bagian kutub positif dijadikan satu dihubungkan
positif baterai, dan negatifnya diaktifkan sesuai output:
a a
b
b
f
c
d g
e c
f e
g
d
1
D D a a
7 8 9 2 a
b b b
3
C C c c f
4 5 6 4
IC 74147 IC 7447A d d
5 g
B B e e
1 2 3 6 c
f f e
7
0 A A g g
8
9 d
Polarisator
Pola konduktif pada kaca
Kristal cair
Metal
Sinyal 100Hz
14
Polarisasi medan listrik pada kristal cair dan polarisator memberikan kesan warna
gelap. LCD tebuat berlapis-lapis, meliputi polarisator, pola konduktif pada kaca, kristal
cair (fluida nematik), metal, dan pengemas. Pemberian medan listrik pada LCD tidak
boleh dilakukan dalam satu arah dalam waktu lama, karena hal ini akan menimbulkan
kerusakan. Oleh karena itu LCD dioperasikan polaritas betganti ganti, yaitu dengan
sinyal persegi.
Prinsip Kerja :
Prinsip kerja seven segmen ialah input biner pada switch dikonversikan masuk ke
dalam decoder, baru kemudian decoder mengkonversi bilangan biner tersebut menjadi
decimal, yang nantinya akan ditampilkan pada seven segment.
Seven segment dapat menampilkan angka-angka desimal dan beberapa karakter
tertentu melalui kombinasi aktif atau tidaknya LED penyusunan dalam seven segment.
Untuk memudahkan penggunaan seven segment, umumnya digunakan sebuah decoder(
mengubah/ mengkoversi input bilangan biner menjadi decimal) atau seven segment
driver yang akan mengatur aktif tidaknya led-led dalam seven segment sesuai dengan
nilai biner yang diberikan.
Dekoder BCD ke seven segment digunakan untuk menerima masukan BCD 4-bit
dan memberikan keluaran yang melewatkan arus melalui segmen untuk menampilkan
angka desimal. Jenis dekoder BCD ke seven segment ada dua macam yaitu dekoder yang
berfungsi untuk menyalakan seven segment mode common anoda dan dekoder yang
berfungsi untuk menyalakan seven segment mode common katoda. Contoh IC converter
BCD to Seven Segment untuk 7-segment Common Anoda pake decoder IC TTL 7447
untuk Common Katoda pake IC TTL 7448.
Salah satu contoh saja, IC 74LS47 merupakan dekoder BCD ke seven segment
yang berfungsi untuk menyalakan seven segmen mode common anode. Gambar dan
konfigurasi pin IC 74LS47 ditunjukkan pada gambar berikut :
15
Tabel kebenaran dari IC 74LS47 [3]
Pada konfigurasi pin IC 7447 yaitu masukan (lamp test), masukan (blanking
input/ripple blanking output), dan (ripple blanking input).
LT' , Lamp Test, berfungsi untuk mengeset display, bila diberi logika ‘0’ maka
semua keluaran dari IC ini akan berlogika 0. Sehingga seven segment akan menunjukkan
angka delapan (8). BI'/RBO' , Blanking Input/Row Blanking Output, berfungsi untuk
mematikan keluaran dari IC. Bila diberi logika “0” maka semua keluaran IC akan
berlogika “1” dan seven segment akan mati.
RBI' , Row Blanking Input, berfungsi untuk mematikan keluaran dari IC jika
semua input berlogika “0”. Bila diberi logika “0”, diberi logika “1” dan diberi logika “0”
maka semua keluaran IC akan berlogika “1” dan seven segment akan mati. (Haviz
Setiawan)
16
Sedangkan untuk tabel kebenaran pada penampil 7 segment dengan 4 bit input
dapat dilihat pada gambar 3. Dengan 4 bit tersebut dapat digunakan kombinasi bilangan
biner untuk menentukan keluaran angka yang dihasilkan dari penampil 7 segment
tersebut.
17
Gambar Bit keluaran a, b, c, d, e, f, dan g [13]
18
- BCD ke 7-Segmen c /w latch Decoder 4-bit
Setelah 7-segmen LED display menjadi mudah tersedia IC sederhana yang dikenal
sebagai "BCD ke 7-segmen decoder" dengan cepat dikembangkan untuk mempermudah
penggunaannya. Biner diformat data yang disajikan kepada hasil ini IC masukan dalam
output IC yang ditempatkan ke negara yang benar untuk menampilkan angka setara (0
sampai 9) pada layar 7-Segmen.
Meskipun BCD ke 7-segmen IC decoder tersedia tanpa dibangun di kait, IC ini khusus
termasuk built in 4-bit latch yang kita akan menggunakan contoh di kemudian. Untuk
saat ini latch diatur untuk hanya memungkinkan data masukan untuk secara bebas
melewati ke decoder.
Dalam diagram di atas, 4 switch toggle, SW0 untuk SW3 digunakan untuk
memilih angka yang diinginkan (0-9) yang akan muncul pada layar 7-Segmen. Dengan
menggunakan decoder, sekarang hanya masalah pengaturan pola 4-bit BCD benar makan
input dari decoder, decoder dan mengurus sisanya. [8]
Bagian decoder juga memiliki dua input tambahan. Lamp Test (LT) ternyata semua
segmen sehingga Anda dapat memverifikasi sekaligus bahwa semua segmen tampilan bekerja,
atau mengidentifikasi unit display yang perlu diganti. Masukan ini biasanya ditinggalkan di
logika 1. Para Blanking (BL) input kebalikan dari itu; memaksa seluruh tampilan off. Ini
digunakan dalam banyak kasus mengosongkan keluar terkemuka atau trailing nol dari tampilan
lama. LT akan menimpa BL sehingga Anda dapat menguji bahkan blanked-out digit tampilan.
Satu juga harus mencatat bahwa sirkuit yang sama dibayangkan dapat dikendalikan oleh PLC,
jika 4 bit output dari kartu output PLC 5VDC digunakan di tempat 4 switch ditampilkan.
19
Jika output kartu 8-bit yang tersedia, kemudian dua sirkuit tersebut (2 digit) dapat
dikendalikan. Kartu 16-bit pada gilirannya akan memungkinkan kita untuk mengontrol empat
sirkuit tersebut (4 digit).
Angka (atas) di sebelah kiri diambil dari layar I / O LogixPro simulator, dan
menggambarkan metode umum interfacing ke layar 4 digit. Angka-angka di sebelah kanan
diambil dari lembar data dari unit pra-diproduksi 4 digit tampilan yang dapat segera digunakan
dalam aplikasi tertentu.
Unit diproduksi memang mengandung empat sirkuit yang terpisah, dan setiap sirkuit
(digit) memiliki decoder itu sendiri, tapi dibandingkan dengan sirkuit contoh kita sebelumnya,
unit ini menggunakan komponen tambahan dan sirkuit sehingga jauh lebih fleksibel dan mudah
digunakan.
Perhatikan bahwa ada 4 "Strobe" baris yang ditampilkan, satu untuk setiap digit. Garis-
garis ini strobo mengawasi dibangun di IC kait yang memberikan kita pilihan untuk multiplexing
angka, atau layar, jika kita ingin melakukannya. Dalam aplikasi non-multiplexing atas, lampunya
secara permanen diaktifkan memungkinkan data untuk hanya melewati dari input BCD dan
ditampilkan seperti biasa.
Juga mencatat bahwa unit khusus dirancang untuk digunakan 24VDC. Ini adalah jauh
yang paling umum tegangan DC tingkat digunakan dalam instalasi industri, dan PLC I / O kartu
dirancang untuk penggunaan tersebut oleh karena itu sangat umum. Dibandingkan dengan sirkuit
5VDC, sirkuit 24VDC biasanya dapat mentolerir kunjungan pasokan tegangan jauh lebih besar,
kurang sensitif terhadap efek dari resistansi kontak, dan lebih toleran terhadap lingkungan bising
elektrik. [9]
20
ATMEL AVR ATMEGA8535
Sebelum belajar lebih dalam tentang aplikasi mikrokontroller, ada baiknya kita bicarakan
dulu tentang mikrokontroller yang kita gunakan. Pada pelatihan ini dipilih mikrokontroller jenis
ATMEL AVR RISC dengan pertimbangan sebagai berikut:
ATMEL AVR RISC memiliki fasilitas dan kefungsian yang lengkap dengan harga yang
relatif murah.
Kecepatan maksimum eksekusi instruksi mikrokontroller mencapai 16 MIPS (Million
Instruction per Second), yang berarti hanya dibutuhkan 1 clock untuk 1 eksekusi instruksi.
Konsumsi daya yang rendah jika dibandingkan dengan kecepatan eksekusi instruksi.
Ketersediaan kompiler C (CV AVR) yang memudahkan user memprogram menggunakan
bahasa C.
Dari tabel diatas dapat dilihat, ketika bekerja dengan kecepatan clock yang sama AVR 7
kali lebih cepat dibandingkan denga PIC16C74, 15 kali lebih cepat daripada 68 HC11, dan 28
kali lebih cepat dibanding 8051. Dari kemampuan dan fasilitas yang dimiliki, AVR RISC cocok
dipilih sebagai mikrokontroller untuk membangun bermacam-macam aplikasi embedded sistem.
Oleh karena itu, dalam pelatihan ini juga dipilih salah satu jenis AVR RISC sebagai dasar
pelatihan yaitu ATMEGA 8535. Chip AVR ATMEGA8535 memiliki 40 pin kaki, berikut skema
kaki AT MEGA8535,
21
ATMEGA8535 memiliki 4 buah port input/output 8 bit, yaitu PORTA, PORTB,
PORTC, dan PORTD. Selain sebagai input/output masing masing port juga memiliki fungsi
yang lain. PORTA dapat difungsikan sebagai ADC (Analog to Digital Converter), PORTB
dapat difungsikan sebagai SPI (Serial Peripheral Interface) communication.
Untuk dapat menyimpan program yang telah kita buat pada memory mikrokontroller dibutuhkan
perangkat tambahan yang menghubungkan antara PC dan mikrokontroller. Perangkat interface
ini disebut isp_dongle yang menghubungkan port parallel PC dan port SPI (Serial Peripheral
Interface) mikrokontroller.
22
Untuk memaksimalkan pemanfaatan fasilitas mikrokontroller MAX-TRON telah
mengembangkan board dan peripheral pendukung yang dapat digunakan untuk membangun
bermacam-macam aplikasi sistem digital. Salah satunya adalah Universal controller board
M.B.3.2, board yang dilengkapi dengan komponen-komponen tambahan pendukung kerja
mikrokontroller. Berikut data Universal board M.B.3.2,
MAX-TRON M.B.3.2
Universal Controller Board
Feature:
23
BAB 7
7.1 LINE TRACER
24
Tabel proses pembacaan sensor
Kalau cahaya yang dipancarkan ke bidang Kalau cahaya yang dipancarkan ke bidang
putih, sensor akan : hitam, sensor akan :
Baca Putih Baca Hitam
- Pantulan cahaya banyak - Pantulan cahaya sedikit
- Receiver menerima banyak cahaya - Receiver menerima sedikit cahaya
- Hambatan / resistansi receiver kecil - Hambatan / resistansi receiver besar
Sifat dari photodioda adalah jika semakin banyak cahaya yang diterima, maka nilai
resistansi diodanya semakin kecil. Dengan melakukan sedikit modifikasi, maka besaran
resistansi tersebut dapat diubah menjadi tegangan. Sehingga jika sensor berada diatas garis
hitam, maka tegangan keluaran sensor akan kecil, demikian pula sebaliknya. Berikut adalah
gambar rangkaian sensor proximity yang digunakan pada robot ini :
Agar dapat dibaca oleh mikrokontroler, maka tegangan sensor harus disesuaikan
denganlevel tegangan TTL yaitu 0 – 1 volt untuk logika 0 dan 3 – 5 volt untuk logika 1. Hal ini
bisa dilakukan dengan memasang operational amplifier yang difungsikan sebagai komparator.
Output dari photodiode yang masuk ke input inverting op-amp akan dibandingkan dengan
tegangan tertentu dari variable resistor VR. Tegangan dari VR inilah yang kita atur agar sensor
proximity dapat menyesuaikan dengan kondisi cahaya ruangan.
Sensor proximity terdiri dari 6 pasang LED dan photodiode yang disusun sedemikian
rupa sehingga jarak antara satu sensor dengan yang lainnya lebih kecil dari lebar garis hitam.
Perhatikan gambar berikut :
25
Algoritma Pergerakan Robot
Sebelum membuat program, maka kita perlu mendefinisikan seluruh kemungkinan
pembacaan sensor proximity. Dengan demikian kita dapat menentukan pergerakan robot yang
tujuannya adalah menjaga agar robot selalu berada tepat diatas garis. Berikut adalah beberapa
kemungkinan pembacaan garis oleh sensor proximity :
26
7.2 Motor DC 12 volt
Untuk menggerakkan dua buah motor dc, digunakan IC H-Bridge Motor Driver L298,
yang mampu memberikan arus maksimum sebesar 1A ke tiap motor. Input L298 ada 6 jalur,
terdiri dari input data arah pergerakan motor dan input untuk PWM (Pulse Width Modulation).
Untuk mengatur kecepatan motor, pada input PWM inilah akan diberikan lebar pulsa yang
bervariasi dari mikrokontroler.
27
Untuk menentukan arah pergerakan motor maka pada input L298 harus diberikan kondisi
sesuai dengan tabel berikut :
Hyperion Generasi 3 Lithium Polymer Paket yang revolusioner baik dalam kinerja dan
nilai. Dibandingkan dengan rata-rata baterai pada tahun pasar terakhir, Hyperion G3
selmenyediakan hingga sampai siklus 4x lebih bawah kondisi debit yangsama. HyperionG3 Lipo
bisa dengan aman dibebankan sampai dengan tingkat 5C - untuk kali biayaserendah 10 sampai
12 menit. Paket G3 yang dibuat dengan teknologi konstruksi baruRS Hybrid, super-halus bahan
substrat, ketat ISO 9001 Quality Control, dan proses sel akhir yang cocok, yang semua jaminan
Anda tidak hanya kinerja yang luar biasa, tetapi juga erat seimbang dan tahan lama kemasan .
28
MOTOR
12 V
7805 RANGKAIAN
5V
12 V
Port A
SENSOR
IC MICRO
ATMEGA 16
INTERFACE
Port D Port D
LCD DRIVER
2 X 16 MOTOR
TOMBOL
DRIVER
MOTOR
BAHASA PEMROGRAMAN C
Bjarne Stroustrup pada Bell labs pertama kali mengembangkan C++ pada awal 1980-an.
Untuk mendukung fitur-fitur pada C++, dibangun efisiensi dan system support untuk
pemrograman tingkat rendah (low level coding)
Pada C++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti
inheritance dan overloading. Salah satu perbedaan yang paling mendasar dengan bahasa C
adalah dukungan terhadap konsep pemrograman berorientasi objek (Object Oriented
Programming).
CodeVisionAVR Step-by-Step
Tentang CodeVisionAVR
IDE mempunyai fasilitas internal berupa software AVR Chip In-System Programmer yang
memungkinkan Anda untuk melakukan transfer program kedalam chip mikrokontroler setelah
sukses melakukan kompilasi/asembli secara otomatis. Software In-System Programmer didesain
untuk bekerja dengan Atmel STK500/AVRISP/AVRProg, Kanda Systems STK200+/300,
Dontronics DT006, Vogel Elektronik VTEC-ISP, Futurlec JRAVR dan MicroTronics
ATCPU/Mega2000 programmers/development boards.
Untuk keperluan debugging sistem embedded yang menggunakan komunikasi serial, IDE
mempunyai fasilitas internal berupa sebuah Terminal.
30
Selain library standar C, CodeVisionAVR juga mempunyai library tertentu untuk:
• Modul LCD alphanumeric
• Bus I2C dari Philips
• Sensor Suhu LM75 dari National Semiconductor
• Real-Time Clock: PCF8563, PCF8583 dari Philips, DS1302 dan DS1307 dari
Maxim/Dallas Semiconductor
• Protokol 1-Wire dari Maxim/Dallas Semiconductor
• Sensor Suhu DS1820, DS18S20, dan DS18B20 dari Maxim/Dallas Semiconductor
• Termometer/Termostat DS1621 dari Maxim/Dallas Semiconductor
• EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor
• SPI
• Power Management
• Delay
• Konversi ke Kode Gray
Anda dapat memperoleh file instalasi CodeVisionAVR dengan cara mendownload pada
situs pembuatnya yaitu HP InfoTech di http://www.hpinfotech.com. File yang dapat didownload
adalah tipe evaluation yang artinya mempunyai keterbatasan, salah satunya adalah ukuran
31
program yang dapat dikompilasi terbatas. Contoh yang digunakan adalah CodeVisionAVR versi
1.24.7a. Klik ganda file setup.exe yang didapat dari proses download dari situs HP InfoTech.
Untuk pilihan bahasa pilih English, klik OK, seperti pada Gambar 2.
Kemudian akan muncul kotak dialog seperti pada Gambar 3, klik tombol next.
32
Selanjutnya pada kotak dialog Licence Agreement, pilih I accept the agreement lalu klik
tombol next seperti pada Gambar 4.
33
Akan muncul kotak dialog yang menginformasikan bahwa tempat tersebut belum ada
sebelumnya. Klik tombol Yes untuk membuat tempat baru tersebut seperti yang ditunjukkan oleh
Gambar 6.
Kemudian muncul kotak dialog seperti pada Gambar 7 untuk menanyakan nama program
shortcut pada menu Start dari Windows. Lanjutkan dengan menekan tombol next
34
Program CodeVisionAVR telah siap untuk di-install. Tekan tombol Install seperti pada Gambar
8. Maka proses instalasi akan bekerja seperti ditunjukkan oleh Gambar 9. Setelah selesai akan
dimunculkan kotak dialog informasi seperti pada Gambar 10.
Gambar 10. Informasi tambahan
Klik tombol next pada Gambar 10 untuk mengakhiri proses instalasi. Setelah kotak dialog seperti
yang ditunjukkan oleh Gambar 11 muncul, Anda dapat menekan tombol Finish dengan pilihan
langsung menjalankan software CodeVisionAVR atau tidak
Un-Install CodeVisionAVR.
Bila suatu saat Anda tidak membutuhkan aplikasi CodeVisionAVR, Anda dapat
membuang hasil instalasi dari komputer Anda. Pada menu Start dari Windows, klik shortcut
“Uninstall CodeVisionAVR C Compiler Evaluation” seperti pada Gambar 12.
Maka kotak dialog seperti pada Gambar 13 akan muncul untuk menanyakan keseriusan
Anda. Klik tombol Yes untuk membuang aplikasi tersebut dari komputer Anda.
Berikutnya proses pembuangan aplikasi berlangsung seperti ditunjukkan oleh Gambar 14.
Lalu kotak dialog seperti Gambar 15 akan muncuk, klik OK untuk menutup proses pembuangan.
37
Gambar 15. Proses selesai
Proses pembuangan tersebut biasanya tidak bersih, artinya masih ada file yang tertinggal.
Anda dapat melanjutkan dengan melakukan proses delete secara manual menggunakan aplikasi
windows explorer.
Beberapa detik kemudian IDE dari CodeVisionAVR akan muncul seperti yang ditunjukkan
oleh Gambar 18.
Anda harus membuat sebuah project sebagai induk desain dengan memilih Project, lalu
klik tombol OK seperti pada Gambar 20.
Berikutnya Anda akan ditanya apakah akan menggunakan CodeWizardAVR. Tentu saja lebih
menyenangkan bila Anda memilih jawaban “ya” dengan cara menekan tombol Yes seperti pada
Gambar 21.
Tampilan CodeWizardAVR yang sederhana namun lengkap ditunjukkan oleh Gambar 22. Pilih
Chip dengan IC yang Anda gunakan. Sebagai contoh Anda memilih Chip ATmega8535. Tab-tab
pada CodeWizardAVR menunjukkan fasilitas yang dimiliki oleh chip yang Anda pilih.
Cocokkan pula frekuensi kristal yang Anda gunakan pada bagian Clock. Pengisian frekuensi
clock digunakan oleh software untuk menghitung rutin-rutin seperti delay agar diperoleh
perhitungan yang cukup akurat.
40
Gambar 22. CodeWizardAVR pada tab Chip
Berikutnya Anda akan menginisialisasi Port A yang terhubung dengan LED. LED merupakan
modul output. Pada tab Port bagian Port A, ubah bagian Data Direction menjadi OUT dengan
nilai output sama dengan 0 seperti pada Gambar 23. Artinya Port Adigunakan sebagai port
output dengan nilai awal nol setelah kondisi reset. Kemudian lakukan inisialisasi Port B seperti
pada Gambar 24. Port B tersambung dengan saklar sebagai modul input. Pada sub-tab Port B,
yakinkan Data Direction pada posisi IN dengan resistor pullup internal yang disingkat dengan
huruf P. Dengan mengaktifkan resistor pull-up internal, Anda tidak perlu menambahkan resistor
pull-up pada saklar.
41
Gambar 24 Gambar 25
Gambar 24. Seting Port B sebagai pin input dengan pull-up resistor
Gambar 25. Seting LCD pada Port C
42
Gambar 26. Menyimpan seting
Agar file yang dihasilkan tidak berantakan, buatlah sebuah folder baru, misalnya folder
bernama “my project”, seperti yang ditunjukkan oleh Gambar 27.
43
Kemudian masuk kedalam folder tersebut untuk menyimpan file-file yang dihasilkan oleh
CodeWizardAVR. Yang pertama Anda diminta untuk memberikan nama file C yang dihasilkan.
Misalnya beri nama “coba”, lalu klik tombol Save. Lebih jelas pada Gambar 27.File tersebut
nantinya akan mempunyai akhiran .C.
Yang kedua Anda diminta untuk memberikan nama file project yang dihasilkan. Misalnya
beri nama “coba”, lalu klik tombol Save. Lebih jelas pada Gambar 28. File tersebut
nantinya akan mempunyai akhiran .prj.
Yang terakhir Anda diminta untuk memberikan nama file project CodeWizard yang
dihasilkan. Misalnya beri nama “coba”, lalu klik tombol Save. Lebih jelas pada Gambar 29.
File tersebut nantinya akan mempunyai akhiran .cwp.
Setelah ketiga file disimpan maka pada Project Navigator akan muncul nama project beserta file
C-nya. Secara bersamaan isi file C akan dibuka pada jendela editor seperti ditunjukkan oleh
Gambar 30.
Sekarang Anda coba untuk menyisipkan instruksi utama. Instruksi ini ditambahkan pada
badan program file coba.c seperti yang ditunjukkan oleh Gambar 31.
45
Gambar 31. Menambahkan inti program
Program tambahan tersebut bertujuan untuk menampilkan kata-kata pada LCD kemudian
menampilkan nilai pada saklar pada LED yang terpasang. Jika nanti saklar diaktifkan maka LED
yang bersesuaian akan aktif pula. Kemudian pilih menu Project Compile untuk melakukan
kompilasi seperti yang ditunjukkan oleh Gambar 32. Lalu kotak dialog seperti ditunjukkan
Gambar 33 akan muncul. Klik tombol OK.
Gambar 33. Informasi hasil kompilasi
Program yang Anda buat siap untuk ditransfer kedalam mikrokontroler. Sebelumnya Anda harus
melakukan seting pada programmernya. Pada menu pilih Setting Programmer, seperti pada
Gambar 34.
47
Pilihlah programmer sesuai dengan yang Anda gunakan. Pada Gambar 35 ditunjukkan
menggunakan programmer Kanda Systems STK200+/300 sebagai contoh. Programmer ini
menggunakan kabel paralel yang terhubung dengan port paralel pada komputer Anda.
Kemudian pilih menu Project Configure, seperti yang ditunjukkan oleh Gambar 36.
Kotak dialog pada Gambar 37 akan muncul, pada tab After Make, pilih “Program the
Chip”. Lalu klik tombol OK.
48
Gambar 37. Memilih opsi “Program the Chip” After Make
Setelah melakukan seting, lakukan make project dengan memilih menu Project Make, seperti
ditunjukkan oleh Gambar 38. Apabila tidak ada kesalahan maka kotak dialog informasi seperti
pada Gambar 39 akan muncul. Klik tombol Program untuk mentransfer program kedalam
mikrokontroler.
Gambar 39. Kotak dialog informasi hasil make
Apabila muncul kotak dialog seperti pada Gambar 40 menandakan telah terjadi suatu hal
yang menyebabkan proses transfer gagal. Penyebabnya adalah: suplai tegangan
mikrokontroler dan programmer belum dinyalakan, tipe programmer tidak sama dengan
yang digunakan, alamat port paralel tidak cocok, atau mikrokontrolernya rusak.
50
Bila kerusakan seperti yang ditampilkan oleh Gambar 40 telah diperbaiki atau bila tidak ada
kerusakan maka proses transfer atau yang umum disebut dengan proses download akan
berlangsung seperti yang ditunjukkan oleh Gambar 41.
Coba Anda perhatikan yang terjadi dengan modul yang terpasang, apakah pada LCD muncul
tulisan seperti yang telah Anda program dan bila saklar diubah posisinya maka LED yang
bersesuaian akan menyala. Bila Anda ingin menambahkan instruksi lain maka Anda dapat
melakukan penyuntingan program pada file .C-nya. Kemudian lakukan kompilasi dan make
project berikutnya proses download.
LINE TRACER 2
Gerakan Keterangan
Lurus Motor kiri dan motor kanan berputar maju dengan kecepatan
yang sama
Belok Kiri Motor kiri dan motor kanan berputar maju dengan kecepatan
motor kanan lebih besar daripada kecepatan motor kiri
51
Belok Kanan Motor kiri dan motor kanan berputar maju dengan kecepatan
motor kiri lebih besar daripada kecepatan motor kanan
Tikung Kiri Motor kiri berhenti dan motor kanan berputar maju dengan
kecepatan tertentu
Tikung Kanan Motor kanan berhenti dan motor kiri berputar maju dengan
kecepatan tertentu
Putar Kiri Motor kiri berputar mundur dan motor kanan berputar maju
Putar Kanan Motor kiri berputar maju dan motor kanan berputar mundur
Mundur Motor kiri dan motor kanan berputar mundur
Stop Motor kiri dan motor kanan berhenti
52
6. Atur variabel resistor kalibrasi untuk sensor-sensor yang lain sehingga tegangan output
masing-masing sensor juga bernilai sekitar 0,1 - 0,2 VDC.
7. Letakkan modul sensor di atas kertas/jalur berwarna hitam dan ukur tegangan output masing-
masing sensor (pada pin 5 - 8 konektor J4).
8. Nilai tegangan output masing-masing sensor akan berubah menjadi lebih tinggi (sekitar 3,2 -
3,4 VDC).
53
B. PenjelasanBagian-Bagian DT Robot Line
gambar6. Baut untuk LCD, dilepas lebih gambar5. Baut untuk lampu digunakan
dulu saat memasang motor berjenis metal gear. dulu saat mengganti spacer.
54
Pertama, dengan mengatur parameter-parameter yang tersedia melalui software GUI
yang disediakan .Algoritma tersebu tsudah terprogram di robot. Di dalam DVD yang disertakan
,algoritma default tersebut disimpan dengan nama file ”default.hex” untukprogramdan
”default.eep” untuk parameter awal.
Padasaat DT-ROBOT LINE FOLLOWER pertama kali dinyalakan, pada LCD akan
tampil Menu Tracking yang ditandai dengan tulisan "READY" pada baris bawah dan kombinasi
digital hasil pembacaan sensor pada baris atas.
XXXX
READY!
Jika Tombol TS1 ditekan, makaDT-ROBOT LINE FOLLOWER akan mulai melakukan
line following dan pada LCD akan tampil tulisan seperti berikut ini.
TRACKING
START!
Untuk menghentikan line following,dapat dilakukan dengan menekanTombo lTS2
sehingga DT-ROBOT LINE FOLLOWER kembalike Menu Tracking.
Pada saat DT-ROBOT LINE FOLLOWER berada pada Menu Tracking, dan Tombol
TS2 ditekanselama 2 detik, maka DT-ROBOT LINE FOLLOWER akan Berpindah ke menu
selanjutnya yaitu Menu Raw Data.
SSS SSS
SSS SSS
Pada posisi Menu Raw Data ini pada LCD akan tampil nilai hasil pembacaan sensor
sehingga pengguna dapat melakukan pengaturan pada variable resistor masing-masing sensor
serta mencatat nilai sensor jika berada di atas jalur dan nilai sensor jika berada di atas permukaan
selain jalur. Untuk berpindah dari Menu Raw Data ke menu selanjutnya dapat dilakukan dengan
menekan Tombol TS2 selama 2 detik. Menu selanjutnya adalah Menu Threshold yang ditandai
dengan tampilan LCD yang menyerupai gambar berikut ini.
XXXX
Th = YYY
Threshold atau Batas merupakan sebuah nilai yang digunakan untuk mengkategorikan
apakah sensor berada di atas jalur atau tidak.Untuk mode Black Track yaitu jalur gelap di atas
permukaan terang, jika nilai hasil pembacaan sensor lebih besar dari pada nilai Batas maka akan
dikategorikan sebagai jalur (data digital bernilai 1). Sedangkan untuk mode White Track yaitu
jalur terang di atas permukaan gelap, jika nilai hasil pembacaan sensor lebih kecil atau sama
55
dengan nilai Batas maka akan dikategorikan sebagai jalur (data digital bernilai 1).Untuk
menaikkan nilai Batas dapatdilakukan dengan menekan Tombol TS1 sedangkan untuk
menurunkan nilai Batas dapat dilakukan dengan menekan Tombol TS1 dan Tombol TS2 secara
bersamaan.
Nilai Batas akan disimpan pada EEPROM DT-ROBOT LINE FOLLOWER jika
pengguna berpindah ke menu selanjutnya dengan menekan Tombol TS2 selama 2 detik. Menu
selanjutnya adalah Menu Track Mode yang ditandai dengan tampilan LCD yang menyerupai
gambar berikut ini.
Black
Track
Pada posisi Menu Track Mode, pengguna dapat menentukan apakah jalur yang akan
dilalui oleh DT-ROBOT LINE FOLLOWER termasuk kategori Black Track yaitu jalur gelap di
atas permukaan terang atau White Track yaitu jalur terang di atas permukaan gelap.Untuk
merubah track mode dapat dilakukan dengan menekan Tombol TS1. Track mode akan disimpan
pada EEPROM DT-ROBOT LINE FOLLOWER jika pengguna berpindah ke menu selanjutnya
dengan menekan Tombol TS2 selama 2 detik.
DT-ROBOT LINE FOLLOWER GUI
Untuk memudahkan bereksperimen dengan mengatur parameter-parameter algoritma line
following yang disertakan, maka pada paket DT-ROBOT LINEFOLLOWER juga tersedia
software GUI yaitu “DT-ROBOT-LINE-FOLLOWER-GUI”. Untuk mengatur parameter-
parameter telah tersimpan pada DT-ROBOTLINE FOLLOWER, hubungkan DT-ROBOT LINE
FOLLOWER dengan PC melalui jalur komunikasi UART menggunakan kabel serial yang
disertakan (parameter komunikasi UART dapat dilihat pada bagian COM Setting).Berikut
tampilan dari GUI beserta penjelasan tentang bagian-bagiannya.
Keterangan :
A = COM Setting H = Sensor
B = Connection Status I = Left Motor Action
C = Test Connection J = Left Motor Speed
D = Track Mode K = Right Motor Action
E = Raw Data L = Right Motor Speed
F = Track Threshold M = Send Setting to DT-ROBOT
G = Digital Data N = DT-ROBOT LINE FOLLOWER Model
PROSEDUR PENGUJIAN :
1. Hubungkan catu daya ke terminal biru J7 (dari baterai ataupun dari sumber lain).
2. Nyalakan DT-ROBOT LINE FOLLOWER menggunakan saklar ON/OFF yang tersedia.
3. Pada LCD akan tampil Menu Tracking yang ditandai dengan tulisan"READY" pada baris
bawah dan kombinasi digital hasil pembacaan sensor pada baris atas.
4. Tekan Tombol TS1 sehingga DT-ROBOT LINE FOLLOWER akan mulai melakukan line-
following (motor kanan dan/atau kiri akan berputar).
5. Tekan Tombol TS2 untuk kembali ke Menu Tracking.
6. Tekan Tombol TS2 selama 2 detik.
7. DT-ROBOT LINE FOLLOWER akan masuk keposisi Menu Raw Data dan pada LCD akan
tampil nilai hasil pembacaan sensor.
8. Letakkan sensor di atas permukaan terang atau permukaan gelap. Nilai sensor akan berubah
sesuai dengan tingkat kecerahan permukaan.
9. Hubungkan DT-ROBOT LINE FOLLOWER dan PC menggunakan kabel serial yang
disediakan.
10. Jalankan software DT-ROBOT-LINE-FOLLOWER-GUI.
11. Atur konfigurasi Serial Port yang digunakan melalui tombol COM Setting.
12. Tekan tombol Test Connection.
57
13. Jika koneksi berhasil, maka akan tampil "Connected to DT-ROBOT" pada bagian
Connection Status.
Line Tracer Robot juga ada yang menyebutnya dengan Line Tracker, Line Following
Robot dan sebagainya.
Sedangkan LightFollower adalah robot yang pergerakannya mengikuti cahaya.
Cara kerjasecaraumum:
Robot Line tracer ini bekerjadengan sensor -sensor yang terdiri dari LED atau photo
dioda yang tersambung di rangkaian PCB tertentu yang disambungkan ke motor DC ke 2
roda utama.
58
KOMPARATOR
komparator adalah membandingkan dua masukan, yaitu sinyal atau tegangan dari sensor
dengan tegangan referensi. Hasil yang dicapai adalah output dari sumber (Vcc atau ground) op-
amp sesuai tegangan input mana yang lebih besar.
59
PRINSIP GERAK MOTOR DC
Robot line tracer dapat berjalan mengikuti perbedaan warna gelap/terang pada alasnya.
Prinsip geraknya terdapat pada perubahan arah putar dari motornya, pada robot ini roda kanan
dan kiri dikendalikan dengan driver motor secara terpisah. Untuk lebih jelasnya dapat dilihat
pada gambar dibawah ini.
Gambar 14 prinsipkerja line tracer Gambar 15.prinsip kerja line tracer [12]
60