• Tidak ada hasil yang ditemukan

Program Penerima XBee Pro

BAB IV HASIL DAN PEMBAHASAN

4.11. Pembahasan Software

4.11.7. Program Penerima XBee Pro

Program penerima XBee Pro akan dieksekusi pada saat modul XBee Pro menerima data dari rangkaian pemancar. Port yang digunakan sebagai komunikasi serial antara rangkaian pemancar dengan penerima adalah portD.0 dan portD.1, baik untuk mikrokontroler 1 atau mikrokontroler 2. Gambar 4.17. menunjukkan program rangkaian penerima.

Gambar 4.17. Program penerima XBee Pro

Pada saat mikrokontroler 2 yang terletak pada rangkaian penerima memperoleh data dari rangkaian penerima, portC.0 akan berlogika low karena tombol 1 pada rangkaian pemancar ditekan. PortC.1 akan berlogika low pada saat tombol 2 yang ditekan. Tegangan output portC.0 dan portC.1 akan digunakan sebagai input mikrokontroler 3 pada robot untuk penentuan pos.

4.11.7. Program Penerima XBee Pro

Program penerima XBee Pro akan dieksekusi pada saat modul XBee Pro menerima data dari rangkaian pemancar. Port yang digunakan sebagai komunikasi serial antara rangkaian pemancar dengan penerima adalah portD.0 dan portD.1, baik untuk mikrokontroler 1 atau mikrokontroler 2. Gambar 4.17. menunjukkan program rangkaian penerima.

Gambar 4.17. Program penerima XBee Pro

Pada saat mikrokontroler 2 yang terletak pada rangkaian penerima memperoleh data dari rangkaian penerima, portC.0 akan berlogika low karena tombol 1 pada rangkaian pemancar ditekan. PortC.1 akan berlogika low pada saat tombol 2 yang ditekan. Tegangan output portC.0 dan portC.1 akan digunakan sebagai input mikrokontroler 3 pada robot untuk penentuan pos.

4.11.7. Program Penerima XBee Pro

Program penerima XBee Pro akan dieksekusi pada saat modul XBee Pro menerima data dari rangkaian pemancar. Port yang digunakan sebagai komunikasi serial antara rangkaian pemancar dengan penerima adalah portD.0 dan portD.1, baik untuk mikrokontroler 1 atau mikrokontroler 2. Gambar 4.17. menunjukkan program rangkaian penerima.

Gambar 4.17. Program penerima XBee Pro

Pada saat mikrokontroler 2 yang terletak pada rangkaian penerima memperoleh data dari rangkaian penerima, portC.0 akan berlogika low karena tombol 1 pada rangkaian pemancar ditekan. PortC.1 akan berlogika low pada saat tombol 2 yang ditekan. Tegangan output portC.0 dan portC.1 akan digunakan sebagai input mikrokontroler 3 pada robot untuk penentuan pos.

88

BAB V

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Dari hasil percobaan dan pengujian sistem tempat sampah berjalan terkendali jarak jauh dapat disimpulkan bahwa:

1. Sistem yang dirancang telah bekerja dengan baik.

2. Proses robot menuju pos dan kembali ke base memiliki tingkat keberhasilan sebesar 90%.

3. Pemancar XBee Pro dapat mengirimkan data serial dan penerima XBee Pro dapat menerima data yang dikirim oleh pemancar XBee Pro.

4. Sensor ultrasonik ping bekerja dengan persentasi error sebesar 12.2%.

5. Sensor berat flexyforce dapat bekerja dengan baik dalam mendeteksi beban yang digunakan.

5.2. Saran

Saran untuk pengembangan tempat sampah berjalan terkendali jarak jauh adalah sebagai berikut :

1. Menggunakan jenis track yang berbeda, sebagai contoh wall follower.

2. Penambahan mekanik pada robot agar robot secara otomatis dapat mengosongkan tempat sampah tanpa bantuan manusia.

89

DAFTAR PUSTAKA

[1] Pujiyanto, M.R., 2010, Robot Pengantar Barang Berbasis Kontrol PD (Proporsional Deferensial) Digital, Tugas Akhir Prodi Teknik Elektro Universitas Sanata Dharma.

[2] Hartono Rudi, 2011, http://www.scribd.com/doc/36276348/introduction- wireless, diakses tanggal 24 Januari 2012.

[3] Nugroho, S.A., 2011, http://www.scribd.com/doc/42556531/jaringan-wireless-di dunia-berkembang, diakses tanggal 24 Januari 2012 .

[4] ---,2005, XBee PRO product manual, Max Stream.

[5] Andrianto, Heri, 2008, Pemrograman Mikrokontroler AVR ATMEGA 16, Bandung : Informatika.

[6] Winoto, Ardi, 2008, Mikrokontroler AVR ATmega8/32/16/8535, Bandung : Informatika.

[7] Edminister, Joseph, 1988, Rangkaian Listrik Edisi 2, Jakarta : Airlangga.

[8] D. Stanley, William, 1994, Operational Amplifier With Linear Integrated Circuit, New York : Old Dominion University.

[9] ---, 2004, Data Sheet IC LM339, National Semiconductor.

[10] ---, 2000, Data Sheet IC LM33, SGS-THOMSON Microelectronics.

[11] Suprayudi, Ricky, 2000, Timbangan Digital Berbasis Sensor Flexyforce, http://www.innovativeelectronics.com/innovative...files/.../AN119.pdf, diakses tanggal24 Mei 2012.

[12] ---, 2004, Data Sheet Sensor Ping, Parallax.

[13] Sumanto, 1993, Motor Arus Bolak-Balik, Yogyakarta : Andi Offset.

[14] Rashid, Muhammad H., 2003, Power Electronics Circuits, Devices, and Applications, Florida.

[15] ---, 2008, Data Sheet IC ATmega8535, ATmel.

90

LAMPIRAN

Lampiran Tabel Hasil Pengujian Robot

Simbol √ merupakan kondisi benar dan symbol x merupakan kondisi salah yang dilakukan oleh robot.

Tabel L1. Hasil pengujian tanpa beban Pengujian

ke Pos 1 Kembali ke

base Pos 2 Kembali ke

base

Tabel L2. Persentase kegagalan dan keberhasilan robot tanpa beban

Total Pengujian

Tabel L3. Hasil pengujian beban 2Kg dengan ketinggian 25cm Pengujian

ke Pos 1 Kembali ke

base Pos 2 Kembali ke

base

Tabel L4. Persentase kagagalan dan keberhasilan robot dengan beban 2Kg

Tabel L5. Hasil pengujian beban 2Kg dengan ketinggian 30cm Pengujian

ke Pos 1 Tidak kembali

ke base Pos 2 Tidak kembali

ke base

Tabel L6. Persentase kegagalan dan keberhasilan robot dengan beban 2Kg dengan ketinggian 30cm

Total Pengujian

Tabel L7. Hasil pengujian beban 2.2Kg dengan ketinggian 25cm Pengujian

ke Pos 1 Tidak kembali

ke base Pos 2 Tidak kembali

ke base

Tabel L8. Persentase kegagalan dan keberhasilan robot dengan beban 2.2Kg dan ketinggian 25cm

Lampiran Program

/*****************************************************

This program was produced by the CodeWizardAVR V1.25.8 Standard Automatic Program Generator

© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Version :

Date : 10/9/2012 Author : F4CG Company : F4CG Comments:

Chip type : ATmega8535 Program type : Application Clock frequency : 12.000000 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 128

*****************************************************/

#include <mega8535.h>

#include <delay.h>

#include <stdio.h>

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x15 ;PORTC

#endasm

OCR1A=0x1ff;

// Timer 0 overflow interrupt service routine interrupt [TIM0_OVF] void timer0_ovf_isr(void) {

// Reinitialize Timer 0 value TCNT0=0x8A;

// Place your code here if (x==100)

x++;

} }

#define ADC_VREF_TYPE 0x40 unsigned int data;

// Read the AD conversion result

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

sprintf(baris,"%3d",z) ;lcd_gotoxy(0,0) ;lcd_puts(baris); //tampilkan detik }

sprintf(baris2,"%3d",data) ;lcd_gotoxy(10,0) ;lcd_puts(baris2);//baca data adc 0

sprintf(baris1,"%3d",distance) ;lcd_gotoxy(6,0) ;lcd_puts(baris1); //tampilkan jarak sensor ping

}

// Declare your global variables here void alarm(void)

goto again;

case 0b111000: kiri_banyak2 ();

break;

case 0b000100: kanan_banyak2 (); //blkng. letak sensor belakang pd hardware kebalik dengan yang depan.

break;

case 0b000000: kanan_banyak2();

break;

case 0b001100: maju ();

break;

case 0b001000: maju (); //dpn break;

o++;

PULANG();

else if (data>=80)//semakin berat nilai ADC semakin besar {

putar1: counter=0; //Initial value

delay_ms(5000);

// Declare your global variables here void POS1(void) //stop kanan {

break;

case 0b000100: kanan_banyak2 (); //blkng. letak sensor belakang pd hardware kebalik dengan yang depan.

break;

case 0b000000: kanan_banyak2();

break;

case 0b001100: maju ();

break;

case 0b001000: maju (); //dpn break;

case 0b111100: ping (); goto out;

break;

break;

case 0b000011: kanan_ banting ();

break;

case 0b110000: kiri_ banting ();

break;

case 0b111000: kiri_ banting ();

break;

case 0b000100: kanan_banyak2 (); //blkng break;

case 0b000000: kanan_banyak2 ();

break;

case 0b001100: maju ();

break;

case 0b001000: maju (); //dpn break;

case 0b111100: maju ();

break;

case 0b001111: ping (); goto out;

break;

// 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=0xC0;

DDRB=0b00000000;

// 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=0b10111111;

// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 11.719 kHz // Mode: Normal top=FFh

// OC0 output: Disconnected TCCR0=0x05;

TCNT0=0x8A;

OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0xa3; // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

// Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC Clock frequency: 750.000 kHz // ADC Voltage Reference: AVCC pin // ADC High Speed Mode: Off

// ADC Auto Trigger Source: Free Running ADMUX=ADC_VREF_TYPE & 0xff;

lcd_putsf("085114013");

delay_ms(5000);

lcd_clear();

while (1) {

// Place your code here lcd_gotoxy(0,0);

Rangkaian Keseluruhan

Dokumen terkait