Lap Bengkel Agung P
Lap Bengkel Agung P
NO. BP : 1601041051
KELAS : II C EC
SEMESTER : IV (EMPAT)
KELOMPOK : 10
NILAI :
KETERANGAN :
1
KATA PENGANTAR
Segala puji dan syukur penulis ucapkan kehadirat Allah SWT karena berkat Rahmat
dan Karunia-Nya sehingga Penulis dapat menyelesaikan laporan kerja bengkel yang berjudul
“ROBOT LINE FOLLOWER”. Lapoan ini merupakan hasil tertulis dari Praktek PERANCANGAN
DAN PABRIKASI selama semester 4.
Laporan ini tidak akan dapat selesai apabila tidak dibantu oleh banyak pihak. Oleh
sebab itu pada kesempatan ini penulis mengucapkan terima kasih kepada Instruktur dan juga
teman-teman seperjuangan yang telah memberikan masukan tentang pembuatan laporan
ini.
Pada kenyataannya, penulisan laporan ini merupakan akhir dari setiap praktek
bengkel. Praktek kerja bengkel ini harus dikuasai oleh mahasiswa karena mata kuliah penting
dan pokok di Politeknik Negeri Padang. Untuk itu,keahlian pekerja dituntut dalam pekerjaan
tersebut.
Penulis telah berusaha sebaik mungkin dalam penyusunan laporan ini, namun sebagai
manusia yang tidak luput dari kesalahan, penulis mengharapkan saran yang membangun dari
para pembaca demi penyempurnaan laporan yang penulis susun ini.
Penulis berharap agar laporan ini dapat bermanfaat bagi para pembaca terutama bagi
diri saya sendiri sebagai penulis.
PENULIS
2
DAFTAR ISI
HALAMAN PENGESAHAN
KATA PENGANTAR
DAFTAR GAMBAR
DAFTAR ISI
BAB I PENDAHULUAN
1.2 TUJUAN
BAB V PENUTUP
5.1 KESIMPULAN
5.2 SARAN
DAFTAR PUSTAKA
LAMPIRAN
3
BAB I
PENDAHULUAN
4
membaca sebuah garis sebagai lintasannya dan line follower bergerak mengikuti garis yang
merupakan lintasannya. Hanya saja yang menggunakan program microkontroler lebih
komplek dan lebih sempurna jika di banding line follower yang tanpa menggunakan program.
Dari segi biaya sangat jelas bahwa line follower menggunakan
program microkontroller lebih mahal dalam pembuatannya.
1.2 Tujuan
Adapun beberapa tujuan dari pembuatan robot line tracker ini sbb :
1) Mengetahui dan memahami sistem dan cara kerja Line Follower.
2) Mengetahui fungsi dari komponen-komponen untuk membuat sebuah line
follower.
3) Mengetahui bagaimana cara membuat rangkaian robot line follower.
4) Dapat menjalankan sebuah line follower sesuai cara kerjanya dengan
menggunakan microkontroler
5
BAB II
LANDASAN TEORI
Didalam Line follower, inputan tersebut berasal dari suatu sensor berupa sensor
cahaya baik itu photo diode maupun LED. Prinsip kerjanya sederhana, hanya
memanfaatkan sifat cahaya yang akan dipantulkan jika mengenai benda berwarna terang
dan akan diserap jika mengenai benda berwarna gelap. Sebagai sumber cahaya kita
gunakan LED (Light Emiting Diode) yang akan memancarkan cahaya putih. Dan untuk
menangkap pantulan cahaya LED, kita gunakan photodiode. Jika sensor berada diatas
garis hitam maka photodioda akan menerima sedikit sekali cahaya pantulan. Tetapi jika
sensor berada diatas garis putih maka photodioda akan menerima banyak cahaya
pantulan.
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.
6
2.2 Mikrokontroller Atmega 32
7
Gambar 2.9 Blok diagram AVR ATMega32
8
Gambar 2.10 Pin-pin ATMega32
Secara fungsional konfigurasi pin ATMega32 adalah sebagai berikut:
1. VCC
a. Tegangan sumber
2. GND (Ground)
a. Ground
3. Port A (PA7 – PA0)
Port A adalah 8-bit port I/O yang bersifat bi-directional dan setiap pin memilki
internal pull-up resistor. Output buffer port A dapat mengalirkan arus sebesar 20 mA. Ketika
port A digunakan sebagai input dan di pull-up secara langsung, maka port A akan
mengeluarkan arus jika internal pull-up resistor diaktifkan. Pin-pin dari port A memiliki fungsi
khusus yaitu dapat berfungsi sebagai channel ADC (Analog to Digital Converter) sebesar 10
bit. Fungsi-fungsi khusus pin-pin port A dapat ditabelkan seperti yang tertera pada tabel di
bawah ini :
Tabel 2.1 Fungsi khusus port A
Port Alternate Function
PA7 ADC7 (ADC input channel 7)
PA6 ADC6 (ADC input channel 6)
PA5 ADC5 (ADC input channel 5)
PA4 ADC4 (ADC input channel 4)
PA3 ADC3 (ADC input channel 3)
PA2 ADC2 (ADC input channel 2)
9
PA1 ADC1 (ADC input channel 1)
PA0 ADC0 (ADC input channel 0)
10
PB1 T1 (Timer/Counter1 External Counter Input)
T0 (Timer/Counter External Counter Input) XCK (USART
PB0
External Clock Input/Output)
11
Tabel 2.4 Fungsi khusus port D
Port Alternate Function
PD7 OC2 (Timer / Counter2 Output Compare Match Output)
PD6 ICP1 (Timer/Counter1 Input Capture Pin)
PD6 OCIB (Timer/Counter1 Output Compare B Match Output)
PD5 TD0 (JTAG Test Data Out)
PD3 INT1 (External Interrupt 1 Input)
PD2 INT0 (External Interrupt 0 Input)
PD1 TXD (USART Output Pin)
PD0 RXD (USART Input Pin)
Fitur :
1. Resolusi mencapai 10-bit
2. 0.5 LSB Integral Non-Linearity
3. Akurasi mencapai ± 2 LSB
4. Waktu konversi 13 – 260 µs
5. 8 saluran ADC yang dapat digunakan secara bergantian
12
6. Optional Left Adjustment untuk pembacaan hasil ADC
7. Mode konversi kontinyu (free running) atau mode konversi tunggal (single
conversion)
8. Interrupt ADC compete
9. Sleep Mode Noise canceller
Sinyal input dari pin adc akan dipilih oleh multiplexer (register ADMUX) untuk
diproses oleh ADC. Karena converter ADC dalam chip hanya satu buah sedangkan saluran
input-nya ada delapan maka dibutuhkan multiplexer untuk memilih iput pin adc secara
bergantian. ADC mempunyai rangkaian untuk mengambil sampel dan hold (menahan)
tegangan input ADC sehingga dalam keadaan konstan selama proses konversi. ADC
mempunyai catu daya yang terpisah yaitu pin AVCC-AGND. AVCC tidak boleh berbeda ±
0.3V dari Vcc.
Operasi ADC membutuhkan tegangan referensi Vref dan clock Fadc (register
ADCSRA). Tegangan referensi eksternal pada pin Aref tidak boleh melebihi AVcc.
Tegangan referensi eksternal dapat di-decouple pada pin Aref dengan kapasitor untuk
mengurangi derau.Atau dapat menggunakan tegangan referensi internal sebesar 2.56V
(pin AREF diberi kapasitor secara eksternal untuk menstabilkan tegangan referensi
internal). ADC mengonversi tegangan input analog menjadi bilangan digital sebesar 10-
bit. GND (0 Volt) adalah nilai minimum yang mewakili ADC dan nilai maksimum ADC
diwakili oleh tegangan pada pin AREF minus 1 LSB. Hasil konversi ADC disimpan dalam
register pasangan ADCH:ADCL.
Sinyal input ADC tidak boleh melebihi tegangan referensi. Nilai digital sinyal input ADC
untuk resolusi 10-bit (1024) adalah:
Kode digital = (Vinput / Vref) x 1024
Untuk resolusi 8-bit (256):
Kode digital = ((Vinput / Vref) x 256
13
2.3.2 ADC Noise Canceler
Fitur ini mengaktifkan konversi ADC selama mode sleep untuk mengurangi derau dari
CPU dan modul-modul internal lainnya. ADC noise cancel dapat digunakan dengan ADC noise
reduction dan mode idle. Untuk menggunakan fitur ini ikuti langkah-langkah sebagai berikut:
1. Yakinkan ADC diaktifkan dan tidak sedang mengonversi. Harus menggunakan mode
konversi tunggal dengan intrupsi ADC konversi complete.
2. Masuk ke mode ADC noise reduction (atau mode idle). ADC akan mulai mengonversi
sekali setelah CPU berhenti (halt).
3. Jika tidak ada interupsi sebelum konversi ADC complete, interupsi ADC akan
membangunkan CPU dan mengeksekusi rutin interupsi ADC complete. Jika ada
interupsi lain yang membangunkan CPU sebelum interupsi konversi ADC complete,
maka rutin interupsi yang membangunkan CPU akan dieksekusi dan interupsi konversi
ADC complete akan dibangkitkan ketika konversi ADC selesai. CPU masih dalam
keadaan mode aktif hingga instruksi mode sleep berikutnya dieksekusi.
14
Mode free running
Dalam mode ini konversi dilakukan terus menerus secara kontinyu (ADC membaca
sampel tegangan input lalu dikonversi hasil masukannya ke register ADCH:ADCL) terus
menerus. Ketika kita membaca ADC saat ADC mengonversi tegangan, maka yang terbaca
adalah hasil ADC yang terakhir.
2.4 Motor DC
Motor DC adalah piranti elektronik yang mengubah energi listrik menjadi energi mekanik
berupa gerak rotasi. Pada motor DC terdapat jangkar dengan satu atau lebih kumparan
terpisah. Tiap kumparan berujung pada cincin belah (komutator). Dengan adanya insulator
antara komutator, cincin belah dapat berperan sebagai saklar kutub ganda (double pole,
double throw switch). Motor DC bekerja berdasarkan prinsip gaya Lorentz, yang menyatakan
ketika sebuah konduktor beraliran arus diletakkan dalam medan magnet, maka sebuah gaya
(yang dikenal dengan gaya Lorentz) akan tercipta secara ortogonal diantara arah medan
magnet dan arah aliran arus. Mekanisme ini diperlihatkan pada Gambar berikut ini.
Motor DC yang digunakan pada robot beroda umumnya adalah motor DC dengan magnet
permanen. Motor DC jenis ini memiliki dua buah magnet permanen sehingga timbul medan
magnet di antara kedua magnet tersebut. Di dalam medan magnet inilah jangkar/rotor
15
berputar. Jangkar yang terletak di tengah motor memiliki jumlah kutub yang ganjil dan pada
setiap kutubnya terdapat lilitan. Lilitan ini terhubung ke area kontak yang disebut
komutator. Sikat (brushes) yang terhubung ke kutub positif dan negatif motor memberikan
daya ke lilitan sedemikian rupa sehingga kutub yang satu akan ditolak oleh magnet
permanen yang berada di dekatnya, sedangkan lilitan lain akan ditarik ke magnet permanen
yang lain sehingga menyebabkan jangkar berputar. Ketika jangkar berputar, komutator
mengubah lilitan yang mendapat pengaruh polaritas medan magnet sehingga jangkar akan
terus berputar selama kutub positif dan negatif motor diberi daya. Kecepatan putar motor
DC (N) dirumuskan dengan Persamaan berikut.
Pengendalian kecepatan putar motor DC dapat dilakukan dengan mengatur besar tegangan
terminal motor VTM. Metode lain yang biasa digunakan untuk mengendalikan kecepatan
motor DC adalah dengan teknik modulasi lebar pulsa atau Pulse Width Modulation (PWM).
H-bridge adalah sebuah perangkat keras berupa rangkaian yang berfungsi untuk
menggerakkan motor. Rangkaian ini diberi nama H-bridge karena bentuk rangkaiannya yang
menyerupai huruf H seperti pada Gambar berikut.
16
Konfigurasi H-Bridge MOSFET
Rangkaian ini terdiri dari dua buah MOSFET kanal P dan dua buah MOSFET kanal N. Prinsip
kerja rangkaian ini adalah dengan mengatur mati-hidupnya ke empat MOSFET tersebut.
Huruf M pada gambar adalah motor DC yang akan dikendalikan. Bagian atas rangkaian akan
dihubungkan dengan sumber daya kutub positif, sedangkan bagian bawah rangkaian akan
dihubungkan dengan sumber daya kutub negatif. Pada saat MOSFET A dan MOSFET D on
sedangkan MOSFET B dan MOSFET C off, maka sisi kiri dari gambar motor akan terhubung
dengan kutub positif dari catu daya, sedangkan sisi sebelah kanan motor akan terhubung
dengan kutub negatif dari catu daya sehingga motor akan bergerak searah jarum jam
dijelaskan pada Gambar berikut.
17
Sebaliknya, jika MOSFET B dan MOSFET C on sedangkan MOSFET A dan MOSFET D off, maka
sisi kanan motor akan terhubung dengan kutub positif dari catu daya sedangkan sisi kiri
motor akan terhubung dengan kutub negatif dari catu daya. Maka motor akan bergerak
berlawanan arah jarum jam dijelaskan pada Gambar berikut.
Konfigurasi lainnya adalah apabila MOSFET A dan MOSFET B sedangkan MOSFET C dan
MOSFET D off. Konfigurasi ini akan menyebabkan sisi kiri dan kanan motor terhubung pada
kutub yang sama yaitu kutub positif sehingga tidak ada perbedaan tegangan diantara dua
buah polaritas motor, sehingga motor akan diam. Konfigurasi seperti ini disebut dengan
konfigurasi break. Begitu pula jika MOSFET C dan MOSFET D saklar on, sedangkan MOSFET A
dan MOSFET C off, kedua polaritas motor akan terhubung pada kutub negatif dari catu
daya.Maka tidak ada perbedaan tegangan pada kedua polaritas motor, dan motor akan diam.
Konfigurasi yang harus dihindari adalah pada saat MOSFET A dan MOSFET C on secara
bersamaan atau MOSFET B dan MOSFET D on secara bersamaan. Pada konfigurasi ini akan
terjadi hubungan arus singkat antara kutub positif catu daya dengan kutub negatif catu daya.
18
Nah temen2 udah baca teorinya diataskan… sip semoga temen2 faham ^_^. Oke deh ni dia
ane share rangkaian skematic driver motor DC MOSFET yang ane gunakan pada robot ane.
Transistor jenis Mosfet dipilih karena transistor ini terkenal karena kesanggupan dilalui arus
yang relatif besar jika dibandingkan dengan transistor lain, serta memiliki daya disipasi yang
kecil. Sehingga Transistor ini dapat menghemat pemakaian daya. Sisi masukan tegangan
rendah dengan sisi tegangan motor dipisahkan dengan optocoupler. Ground untuk tegangan
motor dan tegangan rendah juga dipisahkan. Hal ini dimaksudkan untuk memproteksi
pengendali dari arus besar yang mungkin terjadi apabila ada komponen pada tegangan besar
yang mengalami kerusakan.
19
2.5. LCD
Liquid Crystal Display (LCD) merupakan perangkat (devais) yang sering digunakan untuk
menampilkan data selain menggunakan seven segment.LCD berfungsi sebagai salah satu
alat komunikasi dengan manusia dalam bentuk tulisan/gambar. Untuk menghubungkan
mikrokontroler dengan LCD dibutuhkan konfigurasi antara pin-pin yang ada di LCD
dengan port yang ada di mikrokontroler.
20
pengguna), mereka dinamakan DB0, DB1, DB2, DB3, DB4, DB5, DB6 dan DB7. Mengirim data
secara parallel baik 4 atau 8 bit merupakan 2 mode operasi primer.Untuk membuat sebuah
aplikasi interface LCD,menentukan modeoperasi merupakan hal yang paling penting. Mode
8 bit sangat baik digunakan ketika kecepatan menjadi keutamaan dalam sebuah aplikasi dan
setidaknya minimal tersedia 11 pin I/O (3 pin untuk kontrol, 8 pin untuk data). Sedangkan
mode 4 bit minimal hanya membutuhkan 7 bit (3 pin untuk kontrol, 4 untuk data).Konfigurasi
Pin-Pin pada LCD
No Nama Deskripsi
Pin
1 VCC +5V
2 GND 0V
3 VEE Tegangan kontras LCD
4 RS Register seelct,0=register perintah, 1=register
data
5 R/W 1=read,0=write
6 E Enable Clock LCD, logika 1 setiap kali
pengiriman atau pembacaan data
7 D0 Data Bus 0
8 D1 Data Bus 1
9 D2 Data Bus 2
10 D3 Data Bus 3
11 D4 Data Bus 4
12 D5 Data Bus 5
13 D6 Data Bus 6
14 D7 Data Bus 7
15 Anoda Tegangan positif backlight
16 Katoda Tegangan negative backlight
21
Berdasarkan table terdapat beberapa pin yang tidak digunakan yaitu pin D0-D3, untuk lebih
jelasnya dapat dilihat pada gambar pemasangan kabel pada LCD berikut :
22
23
BAB III
PERANCANGAN ALAT
2. Daftar bahan
NO NAMA ALAT @ JUMLAH
1 ATMega32 Buah 1
2 Socket IC 40 Pin Buah 1
3 Crystal 12 Mhz Buah 1
4 Push Botton Buah 1
5 Resistor 10K ohm Buah 1
6 Resistor 2.2K ohm Buah 4
7 Resistor 330 k ohm Buah 4
8 Led Buah 5
24
10 Led Super Bright Buah 4
11 Capasitor 33Pf Buah 2
12 Capasitor 470Uf Buah 2
13 Conektor White Housing 8 pin Buah 4
14 Conektor White Housing 4 pin Buah 2
15 Conektor White Housing 2 pin Buah 5
16 Conektor White Housing 3 pin Buah 2
17 IC REGUATOR 7805 Buah 1
18 Socket IC 14 pin Buah 1
19 IC 7805 Buah 1
20 Photo diode Buah 4
21 Trimpot 10 K Buah 4
22 Motor DC 5 V Buah 2
23 Aluminium 10 x 20 cm Buah 1
24 Viber 20 x 20 cm Buah 1
25 Gear Mobil Maianan Buah 2
26 Transistor 9012 Buah 8
27 Transistor 9013 Buah 4
28 Kabel Meter 1
29 Mur Buah Secukupnya
25
Melakukan perancangan untuk membuat layout pada PCB dengan menggunakan
Program Eagle dan protel pada komputer berdasarkan skematik .
Setelah layout selesai print dan foto copy pada plastik trasnparan setelah itu
lakukan pembersihanPCB tersebut dengan amplas atau sabun deterjen,
kemudian pindahkan gambar layout ke VCB dengan cara menyetrika.
Selanjutnya melakukan pelarutan PCB dengan larutan FeCl3 sampai selesai dan
dilanjtkan dengan pengeboran.
Sebelum memasang komponen sebaiknya diperiksa terlebih dahulu, apakah jalur
yang telah di larutkan tadi ada yang terputus.
Melakukan penyolderan komponen ke atas PCB.
Setelah semua komponen selesai disolder maka selanjutnya kita melakukan
pengujian apakah rangkaian dapat bekerja sesuai dengan yang kita inginkan.
26
Memasang semua rangkaian pada bodi.
Instalasi pengkabelan.
3. PEMBUATAN PROGRAM
Untuk membuat program kita harus mengetahui telebih dahulu input sensor
terhubung ke port berapa pada ATMega32 dan ouputnya terhubung ke port berapa.
Setelah itu baru dilakukan pembuatan program dengan bahasa C dan
mendowloadkan program tersebut ke ATMega32 dengan menggunakan dowloader .
Berikut programnya
27
Program menggunakan codevision AVR:
/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.9 Evaluation
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 17/06/2017
Author : Freeware, for evaluation and non-commercial use only
Company :
Comments:
Chip type : ATmega32
Program type : Application
AVR Core Clock frequency: 12,000000 MHz
Memory model : Small
External RAM size :0
Data Stack size : 512
*****************************************************/
#include <mega32.h>
#include <stdio.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
#define ADC_VREF_TYPE 0x20
unsigned int s1;
unsigned int s2;
unsigned int s3;
unsigned int s4;
28
unsigned int s5;
unsigned int s6;
unsigned int s7;
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here
unsigned char lcd[16];
void maju()
{
PORTC.7=1;
PORTC.6=0;
PORTD.7=1;
PORTC.4=0;
lcd_gotoxy(0,0);
sprintf(lcd,"----MAJU----");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:):):)----");
29
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void kanan()
{
PORTC.7=0;
PORTC.6=0;
PORTD.7=1;
PORTC.4=0;
lcd_gotoxy(0,0);
sprintf(lcd,"----KANAN----");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:):):)----");
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void kanantajam()
{
PORTC.7=0;
PORTC.6=0;
PORTD.7=1;
PORTC.4=1;
lcd_gotoxy(0,0);
sprintf(lcd,"----KANAN----");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:):):)----");
30
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void kiri()
{
PORTC.7=1;
PORTC.6=0;
PORTD.7=0;
PORTC.4=0;
lcd_gotoxy(0,0);
sprintf(lcd,"----KIRI----");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:):):)----");
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void kiritajam()
{
PORTC.7=1;
PORTC.6=1;
PORTD.7=0;
PORTC.4=0;
lcd_gotoxy(0,0);
sprintf(lcd,"----KIRI----");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:):):)----");
31
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void nogaris()
{
PORTC.7=0;
PORTC.6=0;
PORTD.7=0;
PORTC.4=0;
lcd_gotoxy(0,0);
sprintf(lcd,"TIDAK ADA GARIS");
lcd_puts(lcd);
lcd_gotoxy(0,1);
sprintf(lcd,"----:(:(:(----");
lcd_puts(lcd);
delay_ms(10);
lcd_clear();
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTA=0x00;
DDRA=0x00;
32
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In
Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
33
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
34
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 750,000 kHz
// ADC Voltage Reference: AREF pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 0
// RD - PORTB Bit 1
// EN - PORTB Bit 2
// D4 - PORTB Bit 4
// D5 - PORTB Bit 5
// D6 - PORTB Bit 6
// D7 - PORTB Bit 7
35
// Characters/line: 16
lcd_init(16);
while (1)
{
s1=read_adc(0);
s2=read_adc(1);
s3=read_adc(2);
s4=read_adc(3);
s5=read_adc(4);
s6=read_adc(5);
s7=read_adc(6);
if
(s7<180&&s6<180&&s5<180&&s4>180&&s3<180&&s2<180&&s1<180)
{
maju();
}
else if
(s7<180&&s6<180&&s5<180&&s4>180&&s3>180&&s2<180&&s1<180)
{
maju();
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3>180&&s2<180&&s1<180)
{
maju();
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3<180&&s2<180&&s1<180)
{
maju();
36
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3>180&&s2<180&&s1<180)
{
maju();
}
else if
(s7>180&&s6<180&&s5<180&&s4<180&&s3<180&&s2<180&&s1>180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4<180&&s3<180&&s2>180&&s1>180)
{
kiri();
}
else if
(s7<180&&s6>180&&s5<180&&s4<180&&s3<180&&s2>180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3<180&&s2<180&&s1>180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3<180&&s2>180&&s1>180)
{
kanan();
37
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3>180&&s2>180&&s1<180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3<180&&s2>180&&s1<180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3>180&&s2>180&&s1>180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3>180&&s2<180&&s1<180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4>180&&s3>180&&s2>180&&s1<180)
{
kanan();
}
else if
(s7<180&&s6<180&&s5<180&&s4>180&&s3>180&&s2>180&&s1>180)
{
kanantajam();
38
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3>180&&s2>180&&s1>180)
{
kanantajam();
}
else if
(s7<180&&s6>180&&s5>180&&s4>180&&s3>180&&s2<180&&s1<180)
{
kanan();
}
else if
(s7>180&&s6<180&&s5<180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6>180&&s5>180&&s4>180&&s3>180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3<180&&s2>180&&s1>180)
{
kiri();
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3<180&&s2>180&&s1>180)
39
{
kiri();
}
else if
(s7<180&&s6<180&&s5>180&&s4>180&&s3>180&&s2>180&&s1<180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4>180&&s3>180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4<180&&s3>180&&s2>180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6>180&&s5<180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6<180&&s5>180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4<180&&s3<180&&s2<180&&s1<180)
40
{
kiri();
}
else if
(s7<180&&s6>180&&s5>180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5>180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5>180&&s4<180&&s3<180&&s2<180&&s1>180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5>180&&s4>180&&s3>180&&s2>180&&s1<180)
{
kiritajam();
}
else if
(s7<180&&s6>180&&s5>180&&s4>180&&s3<180&&s2<180&&s1<180)
{
kiritajam();
}
else if
(s7>180&&s6>180&&s5>180&&s4>180&&s3>180&&s2>180&&s1>180)
41
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4<180&&s3<180&&s2<180&&s1>180)
{
kiri();
}
else if
(s7<180&&s6>180&&s5>180&&s4>180&&s3>180&&s2>180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6>180&&s5>180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else if
(s7<180&&s6<180&&s5<180&&s4<180&&s3>180&&s2>180&&s1>180)
{
kiri();
}
else if
(s7>180&&s6>180&&s5<180&&s4<180&&s3<180&&s2<180&&s1<180)
{
kiri();
}
else
42
{
nogaris();
}
}
}
43
BAB IV
ANALISA DAN PEMBAHASAN
PENGUJIAN ROBOT
Pengujian data adc sensor robot line foower:
Data adc garis hitam > 180
Data adc garis putih < 180
Pengujian teah diakukan terhadap robot yang dibuat bahwa lapangan
atau jalur yang digunakan adalah beratarkan warna putih dengan jalur
garis warna hitam.
Line Hitam
Sensor
Robot
Permukaan
berlatar putih
44
ANALISA DAN PEMBAHASAN
Robot line folower menggunakan prinsip dengan menggunakan inputan
photodioda. Dimana sensor yang digunakan adalah sebanyak 7 buah. Robot line
follower ini dikendalikan oleh sebuah atmega 32. Prinsip kerjanya adalah data
yang dibaca oleh sensor potodioda akan dikirimkan ke ATMega 32 yang ada pada
sebuah rangkaian sistem minimum yang praktikan bikin sendiri. Pada sistem
minimum ini data yang dibaca oleh sensor potodioda ini akan dikonversikan
menjadi data digital yang dihubungkan pada port A (ADC) komponen ATMega 32.
Hasil konversi ini akan di proses ATMega 32 dengan menggunakan program yang
dibuat menggunakan code vision avr yang di dounloadkan pada atmega tersebut.
Data hasil ADC ini selanjutnya akan digunakan untuk menggerakkan motor sesuai
dengan program yang dibuat sehingga robot bisa mengikuti garis sesuai yang
diinginkan.
45
Berikut merupakan blok diagram dari Robot Line Tracer
A. SENSOR
Sensor yang dapat digunakan untuk pembuatan line tracer adalah
photodiode. Rangkaian sensor secara lengkap adalah sebagai berikut :
Supaya dapat digunakan sebagai sensor, maka photodiode dibias reverse.
Cara kerja dari photodiode, resistansinya berubah-ubah sesuai dengan
intensitas cahaya yang diterima olehnya, karena sebenarnya suatu
photon dapat mendorong elektron bebas untuk menyebrangi
persambungan pn junction, dan menyebabkan arus untuk mengalir.
B. COMPARATOR
Comparator adalah salah satu aplikasi dari op-amp (operational
amplifier),dimana memiliki fungsi membandingkan besar dua potensial
yang diberikan. Cara kerja dari piranti komparator adalah
membandingkan beda potensial yang diberikan pada input terminal A (+)
dan B (-). Jika tegangan A > B maka out akan saturasi, jika tegangan A < B
atau A = B maka out = 0. IC komparator yang digunakan adalah LM339
dengan konfigurasi pinout tampak seperti pada gambar di atas. Didalam
kemasan IC LM339 terdapat 4 modul komparator sekaligus. Dengan
demikian memudahkan kita untuk melakukan ekspansi.
C. MOTOR DRIVER
Driver motor berfungsi sebagai piranti yang bertugas untuk menjalankan
46
motor baik mengatur arah putaran motor maupun kecepatan putar
motor. Macam driver motor diantaranya adalah :
47
BAB V
PENUTUP
4.1 Kesimpulan
Dari hasil pengujian yang dilakukan dan analisa yang didapat maka
dapat disimpulkan sbb:
1. Robot line tracker dijalankan oleh 2 motor, 1 motor untuk roda sebelah
kiri, 1 motor lagi untuk roda yang sebelah kanan, tujuannya ialah untuk
memudahkan robot itu untuk berbelok kekiri atau kekanan.
2. Mikrokontroler ATMega32 dapat digunakan sebagai pengendali Robot
Pengikut Garis.
3. Sensor photodioda dapat digunakan untuk mendeteksi perbedaan
warna berdasarkan tingkat penyerapan warna bahan dengan unjuk
kerja yang baik.
Bentuk mekanik robot pengikut garis yang menggunakan prinsip
pergerakan seperti mobil roda empat biasa tidak dapat luwes dalam
berbelok khususnya untuk tikungan yang tajam. Namun demikian proses
pembelokannya lebih halus.
Comparator adalah salah satu aplikasi dari op-amp (operational
amplifier), dimana memiliki fungsi membandingkan besar dua potensial
yang diberikan. Cara kerja dari piranti komparator adalah
membandingkan beda potensial yang diberikan pada input terminal A (+)
dan B (-). Jika tegangan A > B maka out akan saturasi, jika tegangan A < B
atau A = B maka out = 0
4.2 Saran
1) Lakukanlah perancangan terlebih dahulu sebelum membuat alat
2) Sebelum membuat layout ukurlah terlebih dahulu komponen yang akan
digunakan agar tidak terjadi kesalahan ukuran nantinya
3) Sebelum menyolder komponen, pastikan tidak ada jalur yang short
4) Lakukan setiap Praktikum dengan penuh Ketelitian dan Kedisiplinan
48
DAFTAR PUSTAKA
http//:robotlinefollowerprogram.html
http://ATMega32.com
Barmawi, M dan M.O Tjia PHd. Rangkaian dan Sistem Analog Digital. Erlangga.
Jakarta. 1993
49
50