Perancangan Algoritma Program Perancangan Program Sistem

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