PEMROGRAMAN ROBOT PENJEJAK GARIS
BERBASIS MIKROKONTROLER
Oleh :
Ihyauddin, S.Kom
Disampaikan pada :
Pelatihan Pemrograman Robot Penjejak Garis
bagi Siswa SMA Negeri 9 Surabaya
Tanggal 13 Nopember 2010
S1 – SISTEM KOMPUTER
SEKOLAH TINGGI
MANAJEMEN INFORMATIKA & TEKNIK KOMPUTER
SURABAYA
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 2
A. BLOK DIAGRAM
Bagian-bagian yang digunakan dalam sebuah sistem Robot Penjejak Garis yang
terprogram, ditunjukkan pada Gambar 1.
Gambar 1. Blok Diagram Sistem Robot Penjejak Garis Terprogram
B. SENSOR CAHAYA
Sensor cahaya adalah alat yang digunakan untuk merubah besaran cahaya menjadi
besaran listrik. Prinsip kerja dari sensor cahaya adalah mengubah energi dari foton menjadi
elektron.
Sebagai pemancar (transmitter) menggunakan LED (Light-Emitting Diode) ultrabright,
sedangkan sebagai penerima (receiver) cahaya dapat menggunakan LDR, fototransistor atau
fotodioda.
1. LED Ultrabright
LED ultrabright memiliki pancaran cahaya yang lebih cerah daripada LED biasa atau
LED infra-red. Sehingga penggunaan LED jenis ini sesuai untuk pembuatan sensor yang
berfungsi sebagai pendeteksi warna.
SE
NS
OR
CA
HA
YA
KOMPARATOR
MOTOR DRIVER
Motor 1
Motor 2
MIKROKONTOLER
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 3
Gambar 2. Penampang kaki LED
2. Fotodioda
Fotodioda paling sering digunakan dalam rangkaian pendeteksi cahaya, karena
komponen tersebut dapat mengukur intensitas cahaya yang tertuju padanya. Secara bentuk
fisik komponen ini mirip dengan LED, tetapi komponen ini tidak memancarkan cahaya dan
berbeda pada simbol komponen elektronikanya.
Gambar 3. Simbol elektronika fotodioda
3. Fototransistor
Bila dibandingkan dengan fotodioda, fototransistor lebih responsif terhadap cahaya
dan harga komponen ini lebih mahal.
Gambar 4. Simbol Elektronika Fototransistor
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 4
4. LDR (Light-Dependent Resistor)
LDR atau fotoresistor merupakan komponen elektronika yang miliki nilai tahanan
yang dapat berubah-ubah sesuai intensitas cahaya yang diterima. Nilai tahanan LDR akan
berkurang jika intensitas cahaya yang diterima bertambah.
Gambar 5. Simbol elektronika LDR
Rangkaian Elektronika Sensor Cahaya
Gambar 6. Rangkaian Sensor Cahaya
Untuk membatasi arus yang mengalir sebesar ≅10 mA menuju LED (D1) dengan
tegangan +VCC sebesar 5 Volt, digunakan resistansi (R1) sebesar 560 Ω. Tegangan keluaran
hasil penerimaan pantulan cahaya oleh fotodioda (D2), berada pada titik Grs1. Pemasangan
resistansi (R2) sebesar 10 kΩ untuk membuat rangkaian pembagi tegangan.
C. KOMPARATOR
Konfigurasi open-loop pada Op Amp dapat difungsikan sebagai komparator. Jika
kedua input pada Op Amp pada kondisi open-loop, maka Op Amp akan membandingkan
kedua saluran input tersebut. Hasil komparasi dua tegangan pada saluran masukan akan
menghasilkan tegangan saturasi positif (+Vsat) atau saturasi negatif (-Vsat).
Sebuah rangkaian komparator akan membandingkan isyarat tegangan yang masuk
pada satu saluran input dengan tegangan pada saluran input lain, yang disebut tegangan
5V
D1
LED
Grs1
D2
PhDioda
R1560
R210k
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 5
referensi. Tegangan output berupa isyarat tegangan high atau low sesuai dengan besar isyarat
tegangan masukan yang lebih tinggi.
Besar isyarat tegangan keluaran dari komparator tidak bersifat linier secara
proporsional terhadap besar tegangan input. Gambar rangkaian Komparator ditunjukkan pada
Gamabr 7.
(a) (b)
Gambar 7. (a) Komparator Tidak Membalik
(b) Komparator Membalik
Komparator akan menghasilkan tegangan keluaran digital sebesar ±Vsat sesuai
dengan rangkaian Komparator yang dibentuk. Gambar 8. dan Gambar 9. menunjukkan grafik
gelombang isyarat masukan dan keluaran Komparator.
Gambar 8. Grafik isyarat Vin dan Vout Komparator Tak-Membalik
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 6
Gambar 9. Gelombang Input dan Output pada Komparator Membalik
D. MIKROKONTROLER
Mikrokontroler adalah suatu single chip yang di dalamnya terdapat mikroprosesor,
RAM, ROM, Timer dan I/O Port dalam satu kesatuan. Program pengendali yang telah
dibangun dari komputer akan dimasukkan ke dalam ROM. Mikrokontroler jenis AVR memiliki
fitur I2C (Inter-Integrated Circuit) sehingga memungkinkan bagi mikrokontroler untuk
ditambahkan RAM atau ROM secara komunikasi serial.
Mikrokontroler AVR adalah mikrokontroler yang dikembangkan oleh ATMEL sejak
tahun 1997. Berbeda dengan mikrokontroler MCS-51, AVR menggunakan arsitektur RISC
(Reduce Instruction Set Computer) yang mempunyai lebar data bus 8 bit. MCS-51 memiliki
frekuensi kerja 1/12 kali frekuensi osilator sedangkan frekuensi kerja AVR sama dengan
frekuensi osilator. Jadi dengan frekuensi osilator yang sama, kecepatan AVR adalah 12 kali
lebih cepat dibandingkan dengan kecepatan MCS-51. Hal ini disebabkan karena
mikrokontroler AVR menggunakan arsitektur RISC. (Wikipedia, 2010). Beberapa contoh
mikrokontroler AVR ditunjukkan pada Tabel 1.
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 7
Tabel 1. Mikrokontroler AVR
Jenis AVR Seri Fitur Memory
ATTiny ATTiny13 Flash : 1 KB, EEPROM : 64 Byte, SRAM : 64 Byte
ATTiny2313 Flash : 2 KB, EEPROM : 128 Byte, SRAM : 128 Byte
ATTiny24 Flash : 2 KB, EEPROM : 128 Byte, SRAM : 128 Byte
ATMEGA ATMEGA8L Flash : 8 KB, EEPROM : 512 Byte, SRAM : 1 KB
ATMEGA8515L Flash : 8 KB, EEPROM : 512 Byte, SRAM : 512 Byte
ATMEGA8535L Flash : 8 KB, EEPROM : 512 Byte, SRAM : 512 Byte
ATMEGA16L Flash : 16 KB, EEPROM : 512 Byte, SRAM : 1 KB
ATMEGA32 Flash : 32 KB, EEPROM : 1 KB, SRAM : 2 KB
AT90S AT90S2313 Flash : 2 KB, EEPROM : 128 Byte, SRAM : 128 Byte
AT90S8535 Flash : 8 KB, EEPROM : 512 Byte, SRAM : 512 Byte
AT90S4433 Flash : 4 KB, EEPROM : 256 Byte, SRAM : 128 Byte
(Sumber : http://www.atmel.com/products/AVR/#)
Mikrokontroler ATMEGA8
Mikrokontroler ini memiliki karakteristik sebagai berikut :
a. ISP (In-System Programmable) Flash Memory sebesar 8 kByte. Dengan menggunakan flash
chip ini, mengijinkan program memori dapat diprogram ulang dalam sistem. Sehingga
mikrokontroler ini tidak membutuhkan mikrokontroler lain sebagai master untuk proses
download program.
b. Memiliki RAM (Random Access Memory) sebesar 1 kByte.
c. 23 jalur atau bit input dan output .
d. Memiliki komparator analog.
e. Memiliki 3 buah timer dan counter yang dapat difungsikan sebagai PWM (Pulse Width
Modulation)
f. Memiliki Full Duplex Serial Port sehingga memungkinkan pengiriman dan penerimaan data
secara serial dapat berlangsung bersamaan.
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 8
Gambar 10. Penampang Mikrokontroler ATMEGA8
E. MOTOR DRIVER
Pengendali motor (motor driver) adalah rangkaian komponen yang dapat mengatur
kinerja putaran motor. Dengan menggunakan motor driver, pengendalian motor meliputi men-
start, men-stop dan memilih arah perputaran. Selain itu dapat juga mengatur kecepatan putar
motor dan mencegah terjadinya kelebihan beban arus (overload) pada motor. Penggunaan
motor driver disesuaikan dengan jenis dan besar arus dari motor yang akan dikendalikan.
H-Bridge Motor Driver
H-Bridge adalah salah satu contoh rangkaian motor driver. Susunan dasar dari
rangkaian tersebut adalah beberapa transistor yang terangkai menyerupai huruf “H”. Oleh
karena itu, rangkaian tersebut dinamakan H-Bridge. Rangkaian dasar rangkaian H-Bridge
ditunjukkan pada Gambar 11.
Gambar 11. Rangkaian dasar H-Bridge motor driver
Sesuai dengan Gambar 11, motor DC akan berputar jika salah satu transistor NPN (Q3
atau Q4) dan salah satu transistor PNP (Q1 atau Q2) aktif bersamaan. Untuk membuat hal
tersebut, maka perlu diaktifkannya salah satu transistor Q5 atau Q6, yaitu dengan memberikan
tegangan masukan pada kaki basis (input1 atau input2).
A -+
MG1
MOTOR DC
1 2 Q6
BC9013
Q4
BC9013
R2
470
Q3BC9013
Q2
BC9012
R1
470
Q1
BC9012
Q5BC9013
VCC
input1input2
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 9
Saat ini rangkaian H-Bridge motor driver telah dikemas dalam bentuk IC, seperti IC
LM293D dan IC LM298. Masing-masing IC tersebut memiliki kemampuan menghantarkan
sejumlah arus yang berbeda. IC LM293D dan IC LM298 ditunjukkan pada Gambar 12.
(a) (b)
Gambar 12. (a) L293D Motor driver
(b) L298 Motor driver
Konfigurasi rangkaian motor driver menggunakan L298 untuk menggerakkan motor
secara CW (Clock Wise) atau CCW (Counter Clock Wise) ditunjukkan pada Gambar 13.
Gambar 13. Rangkaian L298
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 10
Rangkaian Robot Penjejak Garis berbasis Mikrokontroler AVR ATMEGA8
I. Minimum Sistem AVR ATMEGA8
Gambar 14. Rangkaian Minimum Sistem AVR ATMEGA8
Pada Gambar 14. menunjukkan rangkaian Minimum Sistem Mikrokontroler AVR
ATMEGA8. Mikrokontroler akan mengeksekusi program yang tersimpan dalam flash-ROM
dengan frekeuensi 8 MHz yang digunakan pada osilator Y1. Proses reset program akan
otomatis dilakukan pada sistem, ketika pertama kali catu daya terpasang. Proses ini dilakukan
oleh pemasangan RC pada komponen R9 dan C4. Jalur 8-bit proximity sensor pada J3 yang
digunakan untuk pemindaian garis, dapat melalui saluran PORT D. Sedangkan penghubung J3
pada PORT C terdapat 6-bit jalur yang digunakan untuk saluran input-output yang dapat
PD2 C6
0.1uF
L1
10uH
PC5
2A1
PC0PD3
5 VPC4
PWM
Y18 Mhz
PWM2
SCK
PD6
PD4
RST
PD7
PD0
2A2
MOSI
PD5
C130 pF
1A1
PC2
IC1
ATmega8-DIL28
123456789
1011121314 15
16171819202122232425262728
PC6 (RESET)PD0 (RxD)PD1 (TxD)PD2 (INT0)PD3 (INT1)PD4 (XCK/T0)VCCGNDPB6 (XT1/TOSC1)PB7 (XT2/TOSC2)PD5 (T1)PD6 (AIN0)PD7 (AIN1)PB0 (ICP) (OC1A) PB1
(SS/OC1B) PB2(OC2/MOSI) PB3
(MISO) PB4(SCK) PB5
AVCCAREFAGND
(ADC0) PC0(ADC1) PC1(ADC2) PC2(ADC3) PC3
(SDA/ADC4) PC4(SCL/ADC5) PC5
PC1
C3
100u
PD1
5 V
MISO
PC3
1A2
C230 pF
PC1PC0
PC4 PC5
J4
I/O
1 23 45 67 89 10
5 V PC3PC2
PD0
PD4PD7
PD3PD5
5 V PD2
J3
Sensor
1 23 45 67 89 10
PD6
PD1
R910k
RST
C4
10uF/16v
5 V
MISO
J1
Downloader
123456
5 V
MOSISCK
RST
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 11
disesuaikan. Untuk saluran pemrograman mikrokontroler dari komputer, akan melalui Jalur SPI
(MISO, MOSI, SCK) pada bagian penghubung J1.
II. Regulator Tegangan
Gambar 15. Rangkaian Regulator Tegangan
Pada Gambar 15. menunjukkan regulator tegangan U7 menggunakan komponen
LM7805. Pada komponen tersebut dapat disalurkan tegangan input 7 Volt hingga 20 Volt,
sedangkan tegangan keluaran yang dihasilkan adalah 4,8 Volt hingga 5,2 Volt dan arus yang
dihasilkan mencapai 1 Ampere. Untuk catu daya motor penggerak robot dapat dihubungkan
pada penyambung J7. Indikator adanya tegangan yang diberikan pada sistem, akan
ditunjukkan dengan menyalanya LED komponen D4.
III. Motor Driver
C15100uF/25v
C14470uF/25v
5 V12 V U7LM7805
1
2
3VI
GN
D
VO
12 V VSS J7
POWER Motor
12
J2
POWER 12V
12
C510u/16v
R7680
D4
LED
5 V
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 12
Gambar 16. Rangkaian Motor Driver L298
Pada Gambar 16. menunjukkan rangkaian motor driver menggunakan L298 untuk
mengendalikan dua motor penggerak yang terhubung pada J5 dan J6.
2A2 Motor2Y2
5 V
Motor1Y2
U8
L298
57
1012
23
1314
8
611
115
94
1A11A2
2A12A2
1Y11Y2
2Y12Y2
GN
D
1EN2EN
1E2E
VCC1VCC2C7
100nF
PWMPWM2
VSS
Motor1Y1
2A1 Motor2Y1
1A1
C8
100nF
1A2
-+
D13
BRIDGE
1
4
3
2
Motor1Y1
J5
Motor1
12
Motor1Y2
VSS
-+
D14
BRIDGE
1
4
3
2
J6
Motor2
12
Motor2Y1
Motor2Y2
VSS
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 13
IV. Sensor Pendeteksi Warna
Gambar 17. Rangkaian 1-bit Sensor Pendeteksi Warna
Gambar 17. menunjukkan rangkaian 1-bit sensor pendeteksi warna garis. Jika ingin
menggunakan 8-bit sensor pendeteksi warna garis, dapat menggandakan rangkaian pada
Gambar 17. sebanyak delapan buah. Hasil tegangan keluaran digital pembacaan sensor
melalui jalur S1.
D10
LED
R6
220
R5
2k2
5 V
R1
22k
R3
22k
5 V
R7
560
5 V
D1
PHOTODIODE
R4
220k
R2
5k
S1
D9
LED
-
+
U1A
LM339
7
61
31
2
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 14
Pemrograman Mikrokontroler AVR ATMEGA8 menggunakan CodeVisionAVR
Langkah-langkah pemrograman :
1. Jalankan aplikasi CodeVisionAVR
2. Klik File – New, kemudian pilih Project, klik tombol OK
Klik Yes, untuk menggunakan CodeWizardAVR
3. Pilih Mikrokontroler ATMEGA8 dan Osilator sebesar 8 Mhz
Pemrograman Robot Penjejak Garis Berbasis Mikrokontroler
S1-Sistem Komputer STIKOM SURABAYA 15
4. Pilih Ports untuk mengubah PORTD sebagai input, PORTB sebagai output, PORTC, sebagai
input