laporan 6

16
ROBOT LINE FOLLOWER DIGITAL DENGAN IC KOMPARATOR ABDUL ROHMAN SAYYID Fisika Sains/III/A Universitas Islam Negeri Sunan Gunung Djati Bandung Bandung INDONESIA [email protected] 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

Transcript of laporan 6

Page 1: 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

[email protected]

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

Page 2: laporan 6

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

Page 3: laporan 6

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 :

Page 4: laporan 6

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

Page 5: laporan 6

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.

Page 6: laporan 6

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

Page 7: laporan 6

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)

Page 8: laporan 6

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

Page 9: laporan 6

// 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

Page 10: laporan 6

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;

Page 11: laporan 6

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");

Page 12: laporan 6

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);

}

}

}