• Tidak ada hasil yang ditemukan

Alat Bantu Parkir Mobil Berbasis Mikrokontroler ATMega 16.

N/A
N/A
Protected

Academic year: 2017

Membagikan "Alat Bantu Parkir Mobil Berbasis Mikrokontroler ATMega 16."

Copied!
49
0
0

Teks penuh

(1)

i

ALAT BANTU PARKIR MOBIL BERBASIS MIKROKONTROLER ATMEGA16

Disusun Oleh :

Nama : Venda Luntungan Nrp : 0522108

Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,

Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.

Email : ven_dha22@yahoo.com

ABSTRAK

Perkembangan teknologi dalam dunia elektronika sekarang ini maju dengan pesatnya, dimana teknologi tersebut dikembangkan dan terus dikembangkan guna memunculkan teknologi yang lebih handal. Mikrokontroler merupakan salah satu produk teknologi yang dapat diumpamakan sebagai bentuk minimum dari sebuah mikrokomputer yang berukuran kecil, akan tetapi dapat melakukan berbagai macam perintah dengan kecepatan tinggi.

Pada tugas akhir ini, dirancang suatu alat bantu parkir mobil. Pada dasarnya sistem ini terdiri dari satu bagian utama. Sistem pada pengukuran jarak yang dirancang terdiri dari 1 sensor adalah sensor PING yang mempunyai kemampuan sebagai alat pengukur jarak dengan memancarkan gelombang ulrasonik. Sensor PING akan memancarkan gelombang ultrasonik pada objek yang telah ditentukan, data jarak yang telah didapat oleh sensor PING akan di proses oleh mikrokontroler Atmega16, kemudian hasil data proses yang di olah oleh mikrokontroler akan di tampilkan di LCD dan IC ISD1420 berfungsi sebagai tempat penyimpan data suara yang direkam. Data yang direkam IC ISD1420akan mengeluarkan hasil suara jarak yang telah ditentukan, kemudian motor DC akan bergerak menarik pedal rem pada saat jarak yang telah ditentukan. Hasil pengukuran jarak tersebut ditampilkan pada LCD secara real time.

Berdasarkan percobaan yang dilakukan, perangkat sistem yang dirancang berhasil direalisasikan dengan persentase keberhasilan 90% selama sistem masih berada di dalam batas jangkauan.

(2)

ii

CAR PARKING ASSIST DEVICE

BASED ON MICROCONTROLLER ATMEGA16

Composed by :

Name : Venda Luntungan Nrp : 0522108

Electrical Engineering, Faculty of Engineering, Kristen Maranatha University,

Prof. drg. Suria Sumantri, MPH Street, No. 65th, Bandung, Indonesia.

Email : ven_dha22@yahoo.com

ABSTRACT

Technological developments in the world of today's advanced electronics

with the rapid, where the technology was developed and continues to be

developed in order to bring a more reliable technology. Microcontroller is a

technology product that can be likened to a minimum form of a small

microcomputer, but can perform a variety of commands with high speed.

In this final project, a tool designed car park. Basically the system consists

of a main section. Distance measurement system designed to consist of 1 PING

sensor is a sensor that has the ability as a distance measuring device with

ultrasonic emit. PING sensor will emit ultrasonic waves at a predetermined object,

the distance the data has been obtained by PING sensor will be processed by the

microcontroller ATmega16, then process the data results in if the microcontroller

will be displayed on the LCD and IC ISD1420 serves as a voice data storage were

recorded. IC ISD1420 recorded data will release the results sound a predetermined

distance, then draw DC motor will move the brake pedal at a predetermined

distance. Distance measurement results are displayed on the LCD in real time.

Based on experiments conducted, the system is designed successfully

realized with a 90% success rate for the system is still within the limits of the

(3)

iii DAFTAR ISI

Halaman

ABSTRAK ... i

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR TABEL ... vii

DAFTAR GAMBAR ... viii

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah ... 1

1.2. Identifikasi Masalah ... 2

1.3. Perumusan Masalah ... 2

1.4. Tujuan ... 2

1.5. Pembatasan Masalah ... 2

1.6. Spesifikasi Alat Yang Digunakan ... 3

1.7. Sistematika Penulisan ... 4

BAB II LANDASAN TEORI 2.1. Sensor PING ... 5

2.1.1 Cara kerja modul PING)))™ Ultrasonic Range Finder ... 5

2.2. Mikrokontroler AVR ATMEGA16 ... 8

2.2.1 Fitur ATmega16 ... 9

2.2.2. Konfigurasi Pin ATmega16 ... 9

2.2.3. Diagram Blok ATmega16... 12

2.2.4. General Purpose Register ATmega16 ... 13

2.2.5. Peta Memori ATmega16 ... 13

2.2.6. Pemrograman pada AVR ATmega 16 ... 15

2.3. Pengenalan ISD 1420 ... 16

(4)

iv

2.3.2 Blok Diagram ISD 1420... 16

2.3.3. Konfigurasi Pin ISD 1420 ... .... 17

2.3.4. Pengalamatan Pada ISD 1420 ... 20

2.3.6. Timing Diagram ISD 1420... 20

2.4. LCD... 22

BAB III PERANCANGAN DAN REALISASI 3.1. Diagram Blok ... 24

3.2. Rangkaian Mikrokontroler ATMEGA16 ... 26

3.3. Perancangan Driver Motor DC ... 27

3.4. Modul ISD1420 ……… 29

3.4.1. Proses Merekam Suara ………. 29

3.5. Diagram Alir pada system ……….. 31

BAB IV DATA PENGAMATAN DAN ANALISIS 4.1. Pengujian Sensor PINGTM... 35

4.2. Pengujian pada LCD ... ... 36

4.3. Pengujian pada ISD 1420 ... 37

4.4. Pengujian keseluruhan alat ... 40

BAB V KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 41

5.2. Saran ... 41

DAFTAR PUSTAKA

(5)

v

DAFTAR TABEL

Halaman

Tabel 2.1 Fungsi Khusus Port B... 10

Tabel 2.2 Fungsi Khusus Port C... 11

Tabel 2.3 Fungsi Khusus Port D ... 11

Tabel 2.4 Fungsi Pin ISD 1420 ... 18

Tabel 2.5 Per Segmen pada ISD 1416 dan 1420 ... 20

Tabel 2.4 Konfigurasi kaki LCD ... 22

Tabel 3.1 Penggunaan Port Pada Mikrokontroler ATMEGA16... 26

Tabel 3.2 Arah Putar Motor DC... ... 28

Tabel 3.3 Kata yang direkam pada ISD1420 ... 30

sesuai dengan alamat yang ditentukan Tabel 4.1 Hasil Perbandingan Jarak Sebenarnya ... ... 35

Dengan Pembacaan Sensor PINGTM Tabel 4.2 Pengujian pada ISD1420 ... ... 39

(6)

vi

DAFTAR GAMBAR

Halaman

Gambar 2.1 Sensor PING ... 5

Gambar 2.2 Diagram waktu modul PING... 5

Gambar 2.3 Ilustrasi cara kerja modul PING ... 6

Gambar 2.4 Flowchart Program untuk Aplikasi ini... 7

Gambar 2.5 Flowchart Program untuk Aplikasi ini ( sambungan ) ... 8

Gambar 2.6 Konfigurasi Pin ATMEGA16 ... 10

Gambar 2.7 Diagram Blok ATMEGA16 ... 12

Gambar 2.8 General Purpose Register ATmega16 ... 13

Gambar 2.9 Peta Memori Program ATmega16 ... 14

Gambar 2.10 Peta Memori Data ATmega16... 15

Gambar 2.11 Blok diagram ISD 1420... 17

Gambar 2.12 Konfigurasi Pin ISD 1420 ... 17

Gambar 2.13 Record Timing Diagram ISD 1420 ... 21

Gambar 2.14 Playback Timing Diagram ISD 1420 ... 21

Gambar 2.15 Konfigurasi kaki LCD ... 23

Gambar 3.1 Diagram Blok Sistem ... 24

Gambar 3.2 Rangkaian Plant Secara Keseluruhan ... 25

Gambar 3.3 Alokasi Port Pada Sistem Minimum ... 27

Mikrokontroler ATMEGA16 Gambar 3.4 IC Driver Motor DC L293D ... 28

Gambar 3.5 Gambar Skematik Perancangan Sistem Voice Recording ... 29

(7)

vii

Gambar 3.7 Diagram alir system (sambungan)... 32

Gambar 3.8 Diagram alir system (sambungan)... 33

Gambar 3.9 Diagram alir system (sambungan)... 34

Gambar 4.1 Syntax pengujian pada LCD ... 36

Gambar 4.2 Hasil yang ditampilkan di LCD ... 37

Gambar 4.3 Syntax pengujian pada ISD ... 38

(8)
(9)

List Program pada AVR ATMEGA16:

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

This program was produced by the

CodeWizardAVR V2.04.6 Evaluation

Automatic Program Generator

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

http://www.hpinfotech.com

Project :

Version :

Date : 13/02/2013

Author : Freeware, for evaluation and non-commercial use only

Company :

Comments:

Chip type : ATmega16L

Program type : Application

AVR Core Clock frequency: 11,059000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

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

/*

(10)

PORTB->LCD

PORTC->ke alamat IC suara

PORTD.0-> untuk play atau stop suara

PORTD.5->mengatur kecepatan motor

PORTD.1-> mengatur arah putaran motor

PORTD.2-> mengatur arah putaran motor

#include <mega16.h>

#include <delay.h>

#include <stdlib.h>

#include <stdio.h>

#define sigout PORTA.0

#define sigin PINA.0

#define dirsig DDRA.0

void ambil_data();

unsigned int data_timer,dataping,dataping_awal,dataping_simpan;

unsigned char jarak[4],text[32];

// Alphanumeric LCD Module functions

#asm

.equ __lcd_port=0x18 ;PORTB

#endasm

#include <lcd.h>

// Timer1 overflow interrupt service routine

(11)

{

// Place your code here

data_timer=0;

}

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

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

(12)

DDRB=0x00;

// Port C initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTC=0x00;

DDRC=0xFF;

// Port D initialization

// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out

// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

PORTD=0x00;

DDRD=0xFF;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: 11059,000 kHz

// Mode: Fast PWM top=FFh

// OC0 output: Non-Inverted PWM

TCCR0=0x69;

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

(13)

// Mode: Normal top=FFFFh

// OC1A output: Discon.

// OC1B output: Discon.

// Noise Canceler: Off

// Input Capture on Rising Edge

// Timer1 Overflow Interrupt: On

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0x00;

TCCR1B=0x43;

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=FFh

// OC2 output: Disconnected

ASSR=0x00;

(14)

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=0x04;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// LCD module initialization

lcd_init(16);

//PORTD.0=0; // play

//PORTD.4=0;// motor stop

(15)

// Global enable interrupts

#asm("sei")

lcd_gotoxy(0,0);

lcd_putsf("ALAT BANTU");

lcd_gotoxy(0,1);

lcd_putsf("PARKIR");

delay_ms(2000);

lcd_clear();

while (1)

{

// Place your code here

ambil_data();

lcd_clear();

lcd_gotoxy(0,0);

sprintf(text,"jarak=%d",dataping) ;

lcd_puts(text);

//

// if(dataping < 100 )

// {

// PORTD.1=0;

(16)

// }

//

// if(PINA.1==0)

// {

// PORTD.1=0;

// PORTD.2=0;// motor stop

// }

//

//cek sensor jarak

if(dataping ==300 ) //jarak 300cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x28; //set alamat suara "tiga"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(17)

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==290 ) //jarak 290cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x58; //set alamat suara "sembilan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(18)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==280 ) //jarak 280cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x50; //set alamat suara "delapan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(19)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==270 ) //jarak 270cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x48; //set alamat suara "tujuh"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(20)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==260 ) //jarak 260cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x40; //set alamat suara "enam"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(21)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==250 ) //jarak 250cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x38; //set alamat suara "lima"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(22)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==240 ) //jarak 240cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x30; //set alamat suara "empat"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(23)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==230 ) //jarak 230cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x28; //set alamat suara "tiga"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(24)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==220 ) //jarak 220cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(25)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if(dataping ==210 ) //jarak 210cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //sto p

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(26)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==200 ) //jarak 200cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

\

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(27)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==190 ) //jarak 190cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x58; //set alamat suara "sembilan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(28)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==180 ) //jarak 180cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x50; //set alamat suara "delapan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(29)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==170 ) //jarak 170cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x48; //set alamat suara "tujuh"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(30)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==160 ) //jarak 160cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x40; //set alamat suara "enam"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(31)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==150 ) //jarak 150cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x38; //set alamat suara "lima"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(32)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==140 ) //jarak 140cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x30; //set alamat suara "empat"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(33)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==130 ) //jarak 130cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x28; //set alamat suara "tiga"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(34)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==120 ) //jarak 120cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x20; //set alamat suara "dua"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(35)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==110 ) //jarak 110cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(36)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==100 ) //jarak 100cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x18; //set alamat suara "satu"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(37)

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==90 ) //jarak 90cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x58 ; //set alamat suara "sembilan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(38)

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==80 ) //jarak 80cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x50 ; //set alamat suara "delapan"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

(39)

else if( dataping ==70 ) //jarak 70cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x48; //set alamat suara "tujuh"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==60 ) //jarak 60cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

(40)

PORTD.0=1; //stop

PORTC=0x40 ; //set alamat suara "enam"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping ==50 ) //jarak 50cm

{

PORTC=0x00; //set alamat suara "jarak"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x30 ; //set alamat suara "lima"

PORTD.0=0; //play

(41)

PORTD.0=1; //stop

PORTC=0x10; //set alamat suara "nol"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

PORTC=0x08; //set alamat suara "cm"

PORTD.0=0; //play

delay_ms(1000); //delay 1s

PORTD.0=1; //stop

}

else if( dataping < 100)

{

//motor mulai bergerak untuk rem

delay_us(100);//tunggu perubahan jarak

ambil_data();

dataping_awal = dataping;

if(dataping - dataping_awal >= 2) // menjauh dari halangan

{

//rem dilepas

PORTD.4=1;

PORTD.0=1;

PORTD.1=0;

}

else if ( dataping - dataping_awal < 2 ) // mendekati halangan

(42)

//rem ditarik

OCR0= (100-dataping) *5; // kecepatan mengikuti jarak objek

PORTD.0= 0;//motor menarik rem

PORTD.1= 1;//

}

//lepas rem bila kondisi jarak < 50 selama 3 detik.

if(dataping <=50)

{

ambil_data();

dataping_simpan= dataping;

delay_ms(3000);// tunggu

ambil_data();

if( dataping == dataping_simpan)

{

//lepas rem

//rem dilepas

PORTD.4=1; //motor on

PORTD.0=1;

PORTD.1=0;

delay_ms(200);

}

}

}

(43)

//delay_ms(500);

}

}

void ambil_data()

{

dirsig=1;

sigout=1;

delay_us(10);

sigout=0;

dirsig=0;

sigout=1;

while(sigin==0);

TCNT1=0;

data_timer=0;

while(sigin==1);

data_timer=TCNT1;

dataping=data_timer/10;

delay_ms(300);

(44)

Bab I Pendahuluan

1

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi dalam dunia elektronika sekarang ini

maju dengan pesatnya, dimana teknologi tersebut dikembangkan dan terus

dikembangkan guna memunculkan teknologi yang lebih handal.

Mikrokontroler merupakan salah satu produk teknologi yang dapat

diumpamakan sebagai bentuk minimum dari sebuah mikrokomputer yang

berukuran kecil, akan tetapi dapat melakukan berbagai macam perintah dengan kecepatan tinggi. Aplikasi mikrokontroler telah banyak digunakan

pada peralatan elektronika yang telah ada sekarang ini, tidak hanya

dibidang industri, rumah tangga bahkan instasi seperti rumah sakit

misalnya.

Sistem otomatisasi adalah salah satu bagian dari perkembangan

teknologi yang sangat pesat saat ini, dimana manusia selalu berusaha

untuk meringankan dan mempercepat pekerjaannya dengan menciptakan

suatu peralatan elektronik yang dapat mengendalikan secara otomatis dan

memonitor output dari alat tersebut sehingga dapat menggantikan peran

manusia dalam menyelesaikan setiap pekerjaannya dengan ringan dan

cepat. Salah satu contoh yang dapat kita terapkan dari teknologi tersebut

dimana dapat menggantikan peran manusia antara lain Alat Bantu Parkir

Mobil Bebasis Mikrokontroler Atmega16.

Selama ini pemilik kendaraan bermotor khususnya roda empat

selalu kesulitan untuk memarkirkan kendaraannya pada suatu keadaan

yang padat dimana pada posisi kiri dan kanan mobil terdapat kendaraan

lain. Perlu sebuah alat yang membantu pemilik kendaraan untuk

memberikan peringatan jarak antara kendaraan yang diparkir dengan kendaraan yang sudah ada ditempat parkir agar tidak terjadi tabrakan

maupun gesekan yang disebabkan terbatasnya penglihatan kebelakang

(45)

Bab I Pendahuluan 2

Oleh karena itu dirancanglah sebuah sistem alat otomatis yaitu

“Alat Bantu Parkir Mobil Berbasis Mikrokontroler Atmega16”. Alat ini bekerja berdasarkan input dari sensor jarak PING yang akan memberikan

data jarak, kemudian diteruskan ke mikrokontroler untuk kemudian diolah

dan dikeluarkan dalam bentuk suara agar supir atau pemilik kendaraan

mengetahui jarak di belakang mobil tersebut. Alat ini juga secara otomatis

akan menarik pedal rem secara otomatis jika jarak sensor dengan benda

sangat dekat. Sedangkan kamera digunakan untuk melihat bagian

belakang mobil secara langsung dan ditampilkan di layar monitor.

1.2 Identifikasi Masalah

Identifikasi masalah pada tugas akhir ini adalah diperlukan sistem peringatan parkir dengan memberikan peringatan kepada pengedara mobil secara langsung dan suara.

1.3 Perumusan Masalah

Permasalahan yang akan dibahas dalam Tugas Akhir ini meliputi:

1. Bagaimana merancang dan merealisasikan sebuah alat yang dapat

memberikan peringatan dalam bentuk suara dan display jarak kepada

pengendara mobil?

1.4 Tujuan

Tujuan yang hendak dicapai dalam pengerjaan Tugas Akhir ini

adalah:

1. Membuat suatu alat yang digunakan untuk memberikan data jarak

sekaligus peringatan dalam bentuk suara dan display jarak kepada

pengendara mobil.

1.5 Pembatasan Masalah

Pembatasan masalah pada Tugas Akhir ini meliputi:

1. Peringatan dalam bentuk suara

(46)

Bab I Pendahuluan 3

3. Bahasa yang digunakan pada program ini adalah Bahasa C Codevision

AVR.

4. Sensor PING™ digunakan untuk mengukur jarak.

1.6 Spesifikasi Alat Yang Digunakan

Alat yang digunakan memiliki spesifikasi sebagai berikut :

a. Sensor jarak PING yang digunakan untuk mengukur jarak benda dari

posisi sensor berada.

b. IC ISD2560 ini merupakan IC play/rec voice yang akan digunakan untuk

mengeluarkan suara

c. Motor DC yang dapat menarik atau mengulur pedal rem mobil.

d. LCD 2x16 sebagai display jarak.

1.7 Sistematika Penulisan

BAB I : PENDAHULUAN

Bab ini membahas mengenai latar belakang permasalahan,

perumusan masalah, tujuan penulisan, metode penyelesaian

masalah serta sistematika penulisan pada Tugas Akhir ini.

BAB II : DASAR TEORI

Bab ini membahas mengenai teori-teori penunjang yang

diperlukan dalam merealisasikan tugas akhir yaitu berupa

teori tentang cara kerja sensor PING, pengontrol mikro,

serial port yang digunakan untuk komunikasi dari komputer

ke pengontrol mikro,IC suara.

BAB III : PERANCANGAN DAN REALISASI

Pada bab ini diuraikan tentang perancangan sistem keamanan

parkir mundur dengan jarak aman yang sudah ditentukan.

Diagram blok, cara kerja alat, perangkat keras (ATmega16

dan sensor jarak) serta perangkat lunak yang dilengkapi

(47)

Bab I Pendahuluan 4

BAB IV : DATA PENGAMATAN DAN ANALISA

Bab ini menguraikan hasil dan analisa dari realisasi alat yang

telah dibuat.

BAB V : KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan dari analisa yang telah dilakukan

(48)

42

BAB V

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Dalam pembuatan tugas akhir ini, penulis mendapatkan beberapa

kesimpulan, antara lain:

1. Alat bantu parkir mobil menggunakan mikrokontroler ATMEGA16,telah

berhasil direalisasikan.

2. Motor DC bergerak menarik pedal rem pada saat jarak kurang dari 100 cm

dan berhenti menarik pedal rem pada saat jarak 50 cm.

3. Pengukuran jarak menggunakan sensor PING sesuai dengan pengukuran

jarak sebenarnya,dengan persentase kesalahan rata-rata 1,72%.

5.2 Saran

Berikut adalah saran-saran penulis untuk siapa saja yang ingin merevisi

dan mengembangkan sistem ini.

1. Sensor jarak dapat digunakan lebih dari satu,untuk dapat mengukur jarak dari

berbagai sudut.

2. Untuk mendapatkan pengereman yang lebih baik,sebaiknya menggunakan

(49)

DAFTAR PUSTAKA

1. Andrianto, Heri. 2008.”Pemograman Mikrokontroler AVR ATMEGA16

Menggunakan Bahasa C(CodeVisionAVR)”. Bandung: Informatika

2. Atmel AVR. “Datasheet ATMega 16”.(http://www.atmel.com), USE

3. Wardana, Lingga. 2006. “Belajar Sendiri Mikrokontroler AVR Seri ATMega16, Simulasi Hardware dan Aplikasi”. Yogyakarta: Andi

4. www.wikipedia.org

Referensi

Dokumen terkait

Pembelajaran untuk anak usia dini menggunakan prinsip belajar, bermain, dan bernyanyi (Slamet Suyanto, 2005: 133). Pembelajaran untuk anak usia dini diwujudkan

Perbedaan yang nyata jumlah batang atau tunas yang tumbuh antar perlakuan jumlah mata tunas baik pada varietas lokal dan varietas unggul tersebut menunjukkan bahwa

Berdasarkan hasil penelitian dapat diketahui bahwa responden yang mempunyai persepsi tidak setuju terhadap waktu antrian lebih banyak terdapat pada responden

Pelecehan seksual adalah segala tindakan seksual yang tidak diinginkan , permintaan untuk melakukan perbuatan seksual, tindakan lisan atau À sik atau isyarat yang bersifat

Mahasiswa memajang pekerjaan di tempat yang telah ditentukan, (8) 2 dari anggota kelompok menjelaskan dari hasil pekerjaan yang telah dibuat, anggota yang lain

Standar Akuntansi Keuangan adalah himpunan prinsip, prosedur, metode dan teknik akuntansi yang mengatur penyusunan laporan keuangan, khususnya yang ditujukan kepada pihak

Sejauh ini belum diketahui peran dan posisi sastra anak terjemahan di antara tumbuh kembangnya sastra anak Indonesia, tetapi satu hal sudah pasti, sastra anak

Dari hasil interpretasi rekaman seismik dasar laut diketahui terdapat lapisan dasar laut berupa parallel yang mencirikan lapisan batuan sedimen permukaan yang