27
3.4 Perancangan Algoritma Program
Perancangan software adalah proses perancangan untuk pembuatan program yang nantinya akan dijalankan oleh mikrokontroler. Sebuah
mikrokontroler tidak akan bekerja sebelum diberikan program. Sebelum membuat program untuk sistem ini, ada baiknya membuat terlebih
dahulu flowchart dari program yang ingin dibuat. Dengan flowchart dapat mengerti kemana arah tujuan program yang akan dibuat. Flowchart dapat dilihat
pada gambar 3.8
No
Yes
No
Yes
Gambar 3.8 Flowchart Rangkaian
Mulai
Sensor =1 ?
Aktifkan ponsel memanggil
pemilik motor Inisialisasi Nilai awal
Baca Sensor Limit Sw
Sistem dinonaktifkan
?
Kunci stang utk mematikan alarm
Masukkan kode Ignition
Selesai Putuskan pengapian
Aktifkan alarm
28 Prinsip Kerja Rangkaian secara Keseluruhan yaitu pada saat semua
komponen telah terhubung menjadi sebuah sistem. Pada saat diaktifkan status alarm dalam keadaan aktif dan posisi stang kemudi harus pada posisi kunci. Dalam
keadaan aktif, jika stang diluruskan, sensor akan memberikan sinyal yaitu logika 1 pada mikrokontroller sehingga mikrokontroller akan merespons dengan
mengaktifkan sirinealarm dan melakukan panggilan telepon pada pemilik kendaraan. Sedangkan jika sensor aktif dan pemilik hendak menggunakan
kendaraan maka pemilik harus memberikan masukan lebih dahulu berupa kode ignition. Kode Ignition diberikan melalui kunci kontak dengan memutar balik
kunci sebanyak 3 kali. Jika kode terverifikasi maka sistem akan dinonaktifkan kemudian pengapian akan terhubung atau on dan pemilik dapat menggunakan
kendaraannya. Untuk mengunci kembali pemilik kendaraan harus mencabut kunci kontak dan mengatur posisi stang pada posisi kunci sehingga dalam waktu 10
detik sistem akan otomatis aktif kembali, pada saat itu pengapian telah dimatikan atau diputuskan.
3.5 Perancangan Program Sistem
Program dibuat dengan menggunakan bahasa pemrograman C yaitu CV AVR Code Vision AVR Ver 2.0.4.9. Program ditulis pada editor tersebut sesuai
dengan bahasa C. Bagian ini akan menjelaskan proses pembuatan program mulai dari awal dan
prinsip kerja dari program tersebut. 1.
Perintah dibawah merupakan perintah untuk mengikutsertakan file-file bantu yaitu delay.h, mega8.h dan sebagainya. Dimana file tersebut telah
tersedia dalam CV AVR.
include mega8.h include stdio.h
include delay.h
2. Perintah dibawah merupakan perintah untuk mendeklarasikan variabel-
variabel yang digunakan yaitu variabel i,j dengan tipe data integer dan k,M,n tipe karakter variabel alarm
unsigned char i,j,Alarm,k,M,n;
29 3.
Perintah dibawah merupakan perintah awal atau pembuka program utama.
void mainvoid
4. Perintah dibawah merupakan perintah untuk inisialisasi port B,C,D dan
nilai awal port B,C,D.
InputOutput Ports initialization Port B initialization
PORTB=0xFC; DDRB=0x03;
Port C initialization PORTC=0xFF;
DDRC=0x00; Port D initialization
PORTD=0x00; DDRD=0x0F;
Alarm = 1; k = 0;
n = 0; M = 0;
5. Perintah dibawah merupakan perintah dimana lampu LED merah yang
terhubung pada Port B.1 akan berkedip 3 kali dengan durasi atau tundaan 500 ms
for i=0;i3;i++ {PORTB.1 = 1;delay_ms500;PORTB.1 = 0;delay_ms500;}
PORTB.0 = 1;
6. Perintah di bawah ini merupakan perintah untuk sensor limit switch, while
merupakan perintah untuk melakukan pengujian atas beberapa kondisi.
while 1 { if Alarm == 1{PORTB.1 = 0;delay_ms500;PORTB.1 =
1;}delay_ms500; if Alarm == 1PINC.0 == 1{for i=1;i60;i++ {PORTD.1
= 1;delay_ms200;PORTD.1 = 0;delay_ms200;}} jika alarm aktif dan stang digeser
30 Jika alarm aktif 1 dan Limit switch diganggu PINC.0=1, hal ini
memberi respon buzzer akan berbunyi dengan durasi selama 60 x 400 ms 24s.
7. Perintah – perintah dibawah ini merupakan perintah input kunci kontak
atau ignition key.
if Alarm == 1PINB.3 == 0{n = 0;whilePINB.3 == 0{delay_ms1000;n++; jika alarm aktif dan kunci kontak
diputar
if n 10{PORTD.2 = 0;n = 0;j++;for i=1;i100;i++ {PORTD.1 = 1;delay_ms100;PORTD.1 =
0;delay_ms100;}}jika kunci kontak di hidupkan terus tanpa melalui kode
} k++;
} if k == 3{Alarm = 0;M = 0;k = 0;PORTB.0 = 0;PORTD.2
= 1;}jika kunci kontak diputar mencapai 3 kali, maka sistem alarm dimatikan
jika alarm aktif 1 dan kunci kontak diputar balik sebanyak 3 kali dalam tundaan waktu 1000 ms 1s, posisi limit switch dalam keadaan tertutup,
buzzer akan berbunyi 3 kali kemudian lampu hijau hidup, lampu merah berhenti berkedip dan relay pengapian akan aktif. Pada kondisi tersebut,
sepeda motor dapat digunakan secara normal dan buzzer tidak berbunyi saat stang diluruskan.
8. Perintah dibawah merupakan perintah untuk pengaktifan alarm.
if Alarm == 0PINC.0 == 0PINB.3 == 1{M++;} jika stang pada posisi kunci dan kunci kontak dicabut counter M
akan mulai menghitung if M 20{PORTD.2 = 0;PORTB.0 = 1;M = 0;Alarm =
1;for i=0;i3;i++ {PORTD.1 = 1;delay_ms100;PORTD.1 = 0;delay_ms500;}} jika Counter M mencapai 10 detik maka
sistem alarm diaktifkan
31 jika posisi limit switch dalam keadaan tertutup alarm = 0 dan kunci
kontak dicabut dalam keadaan off maka dalam waktu 10 detik alarm akan otomatis aktif. Hal ini dapat dilihat dengan bunyi buzzer, lampu merah
berkedip 3 kali, lampu hijau mati dan relay dalam keadaan off.
32
BAB 4 PENGUJIAN RANGKAIAN
4.1 Pengujian Input output port