laporan 6
-
Upload
abdul-rohman-sayyid -
Category
Documents
-
view
52 -
download
5
Transcript of laporan 6
ROBOT LINE FOLLOWER
DIGITAL DENGAN IC KOMPARATOR
ABDUL ROHMAN SAYYID
Fisika Sains/III/A
Universitas Islam Negeri Sunan Gunung Djati Bandung
Bandung
INDONESIA
Abstract:
follower's line robot will work while censor system is on white surface, will there is a light
bounce from LED what do will hit LDR'S light censor so resistansi is LDR'S censor decreases
and current will move through LDR. It will cause output's current censor wends IC Komparator
becomes minimum and current non inverting on output will wend mikrokontroler's pin becomes
low (0 ). On the contrary, while is censor system is at above-the-line black, no light bounce from
LED what does hit LDR'S light censor so resistansi is LDR'S censor very large so current won't
pass through LDR. This condition of will cause current on output censor will wend IC
Komparator as maximum, and current on non inverting will cause output's current wend
mikrokontroler's pin becomes hight or well worth one (1 ) Available point even tensions on that
series as big as 5 volts. It means to correspond to theory, since whereas for ATmega16 just gets
is conected with tension among 4,5 – 5,5 V. There Is speed even on motor driver that we utilizes
which is as big as 200 PWM. and our frequency utilize as big as 12 MHz.
Key word: LDR'S censor, IC Komparator, Mikrokontroler, LCD, Dc's motor
Abstrak :
Robot line follower akan bekerja saat sistem sensor berada di atas permukaan putih, akan ada
suatu pantulan cahaya dari LED yang akan mengenai sensor cahaya LDR sehingga resistansi
sensor LDR berkurang dan arus akan bergerak melalui LDR. Hal ini akan menyebabkan arus
output sensor menuju IC komparator menjadi minimum dan arus non-inverting pada output akan
menuju pin mikrokontroler menjadi low (0). Sebaliknya, saat sistem sensor berada di atas garis
hitam, tidak ada pantulan cahaya dari LED yang mengenai sensor cahaya LDR sehingga
resistansi sensor LDR sangat besar sehingga arus tidak akan melalui LDR. Kondisi ini akan
menyebabkan arus pada output sensor akan menuju IC komparator menjadi maksimum, dan arus
pada non-inverting akan menyebabkan arus output menuju pin mikrokontroler menjadi hight
atau bernilai satu (1) Adapun nilai tegangan pada rangkaian tersebut sebesar 5 volt. Hal ini
berarti sesuai dengan teori, karena sedangkan untuk ATmega16 hanya dapat bekerja pada
tegangan antara 4,5 – 5,5 V. Adapun kecepatan pada motor driver yang kita gunakan yaitu
sebesar 200 PWM . dan frekuensinya kita menggunakan sebesar 12 MHz.
Kata kunci : sensor LDR, IC Komparator, Mikrokontroler, LCD, Motor Dc
1. Pendahuluan
Latarbelakang
Robot line follower merupakan robot
yang ssering digunakan dalam perlombaan
robotika. Robot Line follower adalah robot
yang dapat berjalan mengikuti sebuah
lintasan garis berwarna hitam diatas
permukaan berwarna putih atau sebaliknya.
Seperti layaknya manusia yang dapat
berjalan mengikuti jalan tanpa pernah
menabrak dan sebagainya, tentunya karena
manusia memiliki mata sebagai
pengilihatannya. Begitu juga robot line
follower ini, memiliki sensor garis yang
berfungsi seperti mata yang ada pada
manusia. Sensor garis ini mendeteksi adanya
garis atau tidak pada permukaan lintasan
robot tersebut. Sebagai mahasiswa fisika
sains diharapkan kita mampu memahami
prinsip kerja dari robot line follower digital
dengan menggunakan IC komparator.
Dasar Teori :
Line follower Robot (Robot Pengikut
Garis) adalah robot yang dapat berjalan
mengikuti sebuah lintasan, ada yang
menyebutnya dengan Line Tracker, Line
Tracer Robot dan sebagainya. Garis yang
dimaksud adalah garis berwarna hitam
diatas permukaan berwarna putih atau
sebaliknya, ada juga lintasan dengan warna
lain dengan permukaan yang kontras dengan
warna garisnya. Ada juga garis yang tak
terlihat yang digunakan sebagai lintasan
robot, misalnya medan magnet.
Seperti layaknya manusia, bagaimana
manusia dapat berjalan mengikuti jalan yang
ada tanpa menabrak dan sebagainya,
tentunya karena manusia memiliki “mata”
sebagai penginderanya. Begitu juga robot
line follower ini, dia memiliki sensor garis
yang berfungsi seperti “mata” pada manusia.
Sensor garis ini mendeteksi adanya garis
atau tidak pada permukaan lintasan robot
tersebut, dan informasi yang diterima sensor
garis kemudian diteruskan ke prosesor untuk
diolah sedemikian rupa dan akhirnya hasil
informasi hasil olahannya akan diteruskan
ke penggerak atau motor agar motor dapat
menyesuaikan gerak tubuh robot sesuai garis
yang dideteksinya.
Untuk merangkai rangkaian
elektroniknya kita perlu tahu dulu diagram
blok sistem yang akan kita bangun, dengan
demikian akan menjadi mudah
mengerjakannya. Blok sistem yang akan kita
bagun paling tidak tampak seperti gambar
berikut. Sistemnya terdiri dari sensor garis,
rangkaian komparator, sistem minimum AT
Mega 16 dan motor driver.
Mikrokontroler AVR ATMEGA16
AVR merupakan seri mikrokontroler
Complementary Metal Oxide Semiconductor
(CMOS) 8-bit buatan Atmel berbasis
arsitektur RISC (Reduced Instruction Set
Computer). Hampir semua instruksi pada
program dieksekusi dalam satu siklus clock.
AVR mempunyai 32 register general-
purpose, timer/counter fleksibel dengan
mode compare, interupsi internal dan
eksternal, serial UART, programmable
Watchdog Timer, power saving mode, ADC
dan PWM. AVR pun mempunyai In-System
Programmable (ISP) Flash on-chip yang
mengijinkan memori program untuk
diprogram ulang (read/write) dengan
koneksi secara serial yang disebut Serial
Peripheral Inteface (SPI). AVR memilki
keunggulan dibandingkan dengan
mikrokontroler lain, keunggulan
mikrokontroler AVR yaitu memiliki
kecepatan dalam mengeksekusi program
yang lebih cepat, karena sebagian besar
instruksi dieksekusi dalam 1 siklus clock
(lebih cepat dibandingkan mikrokontroler
keluarga MCS 51 yang memiliki arsitektur
Complex Intrukstion Set Compute).
ATMEGA16 mempunyai throughput
mendekati 1 Millions Instruction Per Second
(MIPS) per MHz, sehingga membuat
konsumsi daya menjadi rendah terhadap
kecepatan proses eksekusi perintah.
Beberapa keistimewaan dari AVR
ATMEGA16 antara lain:
1. Mikrokontroler AVR 8 bit yang
memilliki kemampuan tinggi
dengan konsumsi daya rendah
2. Arsitektur RISC dengan throughput
mencapai 16 MIPS pada frekuensi
16MHz
3. Memiliki kapasitas Flash memori 16
Kbyte, EEPROM 512 Byte dan SRAM 1
Kbyte
4. Saluran I/O sebanyak 32 buah, yaitu
Port A, Port B, Port C dan Port D
5. CPU yang terdiri dari 32 buah register
6. Unit interupsi dan eksternal
7. Port USART untuk komunikasi serial
8. Fitur peripheral
Tiga buah Timer/Counter dengan
kemampuan perbandingan (compare)
Dua buah Timer/Counter 8 bit
dengan Prescaler terpisah dan Mode
Compare
Satu buah Timer/Counter 16 bit
dengan Prescaler terpisah, Mode
Compare dan Mode Capture
Real Time Counter dengan
Oscillator tersendiri
Empat kanal PWM
8 kanal ADC
8 Single-ended Channel dengan
keluaran hasil konversi 8 dan 10
resolusi (register ADCH dan ADCL)
7 Diferrential Channel hanya pada
kemasan Thin Quad Flat Pack
(TQFP)
2 Differential Channel dengan
Programmable Gain
Antarmuka Serial Peripheral
Interface (SPI) Bus
Watchdog Timer dengan Oscillator
Internal
On-chip Analog Comparator
9. Non-volatile program memory
Konfigurasi Pin AVR ATMEGA16
Gambar 2.1 Konfigurasi Kaki (pin)
ATMEGA16
2. Tujuan dan Rumusan Masalah
Tujuan :
Dalam percobaan robot line follower
digital dengan menggunakan IC komparator
bertujuan untuk mengetahui dan memahami
system sensor pada robot digital, serta
prinsip dari input-output mikrokontroler
dengan berbasis sensor cahaya dan mampu
menampilkan data karakter dengan
interface LCD serta memahami prinsip kerja
IC komparator untuk robot line follower
digital dan juga mampu mendesain,
memprogram dan membuat robot line
follower digital serta mengetahui
aplikasinya.
Rumusan masalah :
Bagaimana cara robot line follower
yang menggunakan IC komparator dan
prinsip kerja yang digunakan pada LCD dan
aplikasi dari robot line follower digital??
Metode Percobaan :
Alat dan bahan:
1. Papan PCB
2. Multimeter
3. Kabel koneksi
4. Resistor
5. Led
6. Motor dc
7. Mikrokontroler ATmega 16
8. Motor driver L293D
9. LCD
10. Software proteus
11. Code Vision AVR
Prosedur percobaan
Gambar 2.1
Pada percobaan robot line follower
digital dengan menggunakan IC komparator
yang pertama diakukan yaitu mendesain
rangaian desain seperti pada gambar
menggunakan software proteus dan setelah
itu kita membuat program dengan
menggunakan code vision AVR. Setelah
program yang kita buat sudah benar dan
sesuai, kemudian isi dari program code
AVR di input kedalam mikrokontroler
ATmega16 pada robot line follower digital
dengan menggunakan IC komparator yang
ada pada desain proteus. Kemudian robot
line follower digital dengan menggunakan
IC komparator yang ada pada desain proteus
diuji dengan menggunakan dedua sensor
yang ada rangkaian. Ketika ldr diberikan
cahaya maka motor akan mati, dan tidak
akan berjalan dan data akan di input pada
layar LCD yang telah kita program
sebelumnya menggunakan code vision
AVR.
3. Solusi dari Permasalahan
Data dan Analisis :
Diagram Alir
Merangkai rangkaian seperti gambar pada proteus
Membuat program pada AVR
input isi program AVR kedalam mikrokontroler ATmega16
uji rangkaian
robot line follower digital dengan menggunakan IC komparator
Pada rangkaian robot line follower
digital dengan menggunakan IC komparator,
pada rangkain ini kita menggunakan
mikrokontroler ATmega 16 yang
dihubungkan dengan LCD dan juga pada
saat LDR bekerja arus akan melewati IC
komparator terlebih dahulu yang kemudian
diterukan ke mikrokontroler yang kemudian
dibaca oleh program yang kemudian akan
muncul tulisan pada LCD. Pada percobaan
ini pada saat mikrokontroler bekerja,
mikrokontroler hanya dapat mengeluarkan
sebuah tegangan hight atau low, dimana
nilai dari hight yaitu bernilai 1 (satu) dan
low bernilai 0 (nol). ketika pada saat input
(sensor LDR) terhubung dengan ground
maka inputan pada kaki mikrokontroler
harus bernilai 1, maka motor yang ada pada
outputan akan menyala. Begitupun
sebaliknya, ketika pada outputan terhubung
dengan power/Vcc maka nilai pada kaki
mikrokontroler harus bernilai 0 untuk
menyala. Dari tombol-tombol yang bekerja
akan mengeluarkan tegangan yang berupa
low dan nilai tegangan pada outputan harus
terhubung dengan Vcc atau power. Pada
rangkaian mengggunakan crystal yang
berfungsi sebagai pendorong atau pengatur
data yang masuk dan keluar dari
mikrokontroler. Pada saat dua buah sistem
sensor LDR di pasang pada pin B.0 dan B.1,
sedangkan pada motor DC dipasang pada
Port D.0 dan pada D.1 agar motor kiri
bergerak dan robot belok ke kanan, D.2 dan
pada D.3 agar motor kanan bergerak dan
robot belok ke kiri. Pada dasarnya, Prinsip
kerja dari sebuah robot line follower adalah
saat sistem sensor berada di atas permukaan
putih, akan ada suatu pantulan cahaya dari
LED yang akan mengenai sensor cahaya
LDR sehingga resistansi sensor LDR
berkurang dan arus akan bergerak melalui
LDR. Kondisi tersebut menyebabkan arus
output sensor menuju IC komparator
menjadi minimum, pada saat IC komparator
bekerja arus di non-inverting sehingga
output menuju pin mikrokontroler akan
menjadi low atau bernilai nol (0).
Sebaliknya, saat sistem sensor berada di atas
garis hitam, tidak akan ada pantulan cahaya
dari LED yang akan mengenai sensor
cahaya LDR sehingga resistansi sensor LDR
sangat besar sehingga arus tidak akan
melalui LDR. Kondisi ini akan
menyebabkan arus pada output sensor akan
menuju IC komparator menjadi maksimum,
pada saat IC komparator bekerja, arus di
non-inverting akan menyebabkan arus
output menuju pin mikrokontroler menjadi
hight atau bernilai satu (1). Program yang
diinput pada mikrokontroler data inputan
tersebut kemudian akan bekerja untuk
mengerakan motor, motor akan bergerak
jika kedua pin motor tersebut memiliki beda
polaritas. Semua program yang diinput pada
mikrokontroler merupakan program yang
dibuat melalui program code vision AVR.
dan setelah diuji tegangan pada rangkaian,
diketahui nilai tegangan pada rangkaian
tersebut sebesar 5 volt. Hal ini berarti sesuai
dengan teori, karena untuk ATmega16 hanya
dapat bekerja pada tegangan antara 4,5 – 5,5 V
ketika tegangan input memberikan nilai 5
volt maka nilai pada tegangan outputan pun
akan bernilai sama. Adapun kecepatan pada
kedua motor driver yang kita gunakan yaitu
sebesar 200 PWM . dan frekuensinya kita
menggunakan sebesar 12 MHz dan adapun
Program-program yang digunakan pada
kode vision AVR terlampir pada lampiran.
4. Kesimpulan
Dari percobaan yang telah dilakukan,
dapat disimpulkan bahwa robot line follower
adalah saat sistem sensor berada di atas
permukaan putih, akan ada suatu pantulan
cahaya dari LED yang akan mengenai
sensor cahaya LDR sehingga resistansi
sensor LDR berkurang dan arus akan
bergerak melalui LDR. Hal ini akan
menyebabkan arus output sensor menuju IC
komparator menjadi minimum dan arus non-
inverting pada output akan menuju pin
mikrokontroler menjadi low (0). Sebaliknya,
saat sistem sensor berada di atas garis hitam,
tidak ada pantulan cahaya dari LED yang
mengenai sensor cahaya LDR sehingga
resistansi sensor LDR sangat besar sehingga
arus tidak akan melalui LDR. Kondisi ini
akan menyebabkan arus pada output sensor
akan menuju IC komparator menjadi
maksimum, dan arus pada non-inverting
akan menyebabkan arus output menuju pin
mikrokontroler menjadi hight atau bernilai
satu (1).
References:
[1] Sanjaya, M. “Modul membuat robot itu
Asyik” Bolabot Techno Robotic School,
Bandung, 2012
[2] Malvino.”prinsip-prinsip elektronika I”
Erlangga, Jakarta,1994
[3] Malvino. “Prinsip-prinsip elektronika I”
Erlangga, Jakarta, 1994.Winarno &
Arifianto, D. “Bikin robot itu
gampang”. Kawan Pustaka, Jakarta,
2011.
[4] Andrianto, H. “ Pemrograman
mikrokontroler AVR ATmega 16
menggunakan bahasa C (Code Vision
AVR)”. Penerbit Informatika, Bandung,
2008.
[5] http://generasincuri.blogspot.com/
2011/01/mengenal-mikrokontroler-avr-
atmega16.html
Lampiran 1
Gambar – gambar rangkaian robot line follower digital dengan menggunakan IC komparator
Gambar 1. Belok Kanan
Gambar 2. Belok Kiri
Gambar 3. Bergerak Maju
Gambar 4. Tidak Bergerak (mati)
Lampiran 2
Program Code Vision AVR Pada Rangkaian Robot Line Follower Digital
Dengan Menggunakan IC Komparator
/************************************************************************************
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP
InfoTech s.r.l.
http://www.hpinfotech.com
Project : Robot Line follower
Version : I
Date : 27/11/2012
Author : Abdul Rohman
Company : Bolabot Techno Robotic School
Comments: www. bolabot. com
Chip type : ATmega16
Program type : Application
AVR Core Clock frequency: 12.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
**************************************/
#include <mega16.h>
# include <delay.h> //tambahan program untuk
membuat waktu tunda
// Alphanumeric LCD Module functions
#include <alcd.h>
// Declare your global variables here
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;
// 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=Out Func4=Out
Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=0 State4=0
State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x30;
// 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
// Clock source: System Clock
// Clock value: 11.719 kHz
// Mode: Fast PWM top=0x00FF
// OC1A output: Non-Inv.
// OC1B output: Non-Inv.
// 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=0xA1;
TCCR1B=0x0D;
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;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by
Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections specified in the
//Project|Configure|C Compiler|Libraries|
Alphanumeric LCD menu:
// RS - PORTC Bit 0
// RD - PORTC Bit 1
// EN - PORTC Bit 2
// D4 - PORTC Bit 4
// D5 - PORTC Bit 5
// D6 - PORTC Bit 6
// D7 - PORTC Bit 7
// Characters/line: 16
lcd_init(16);
// Tambahan kode mendefinisikan input output
DDRB.0=0;
DDRB.1=0;
DDRD.0=1;
DDRD.1=1;
DDRD.2=1;
DDRD.3=1;
// Tambahan kode mendefinisikan kecepatan
motor PWM
OCR1A=200;
OCR1B=200;
// Tambahan kode mendefinisikan kondisi awal
PORTB.0=1; //sensor kiri
PORTB.1=1; //sensor kanan
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;
while (1)
{
if (PINB.0==1 & PINB.1==0) // Tambahan
kode sensor kiri hitam, kanan putih, maka belok
kiri
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=1;
lcd_clear ();
lcd_gotoxy(0,0);
lcd_putsf("B0=1 B1=0");
lcd_gotoxy(0,1);
lcd_putsf("BELOK KIRI");
delay_ms(100);
}
else if (PINB.0==0 & PINB.1==1) //
Tambahan kode sensor kiri putih, kanan hitam,
maka belok kanan
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=0;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("B0=0 B1=1");
lcd_gotoxy(0,1);
lcd_putsf("BELOK KANAN");
delay_ms(100);
}
else if (PINB.0==1 & PINB.1==1) //
Tambahan kode sensor kiri hitam, kanan hitam,
maka mati
{
PORTD.0=0;
PORTD.1=0;
PORTD.2=0;
PORTD.3=0;
lcd_clear ();
lcd_gotoxy(0,0);
lcd_putsf("B0=1 B1=1");
lcd_gotoxy(0,1);
lcd_putsf("MATI");
delay_ms(100);
}
else // Tambahan kode sensor kiri putih,
kanan putih, maka bergerak maju
{
PORTD.0=0;
PORTD.1=1;
PORTD.2=0;
PORTD.3=1;
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("B0=0 B1=0");
lcd_gotoxy(0,1);
lcd_putsf("MAJU");
delay_ms(100);
}
}
}