Perancangan Program Kendali Alat Ukur Pendeteksi Jarak

2.Jika tidak terjadi kesalahan maka akan tampak kotak dialog seperti pada Gambar 3.18. Gambar 3.18. Dialog Kompilasi 3. Tombol program the chip diklik untuk unduh ke mikrokontroler ATmega 8535 sehingga akan tampak progress bar seperti pada Gambar 3.19. Gambar 3.19. Progress Bar Unduh ke Mikrokontroler ATmega 8535

3.4.2 Perancangan Program Kendali Alat Ukur Pendeteksi Jarak

Berikut adalah rancangan program yang diprogram dengan bahasa C dengan CV AVR Versi 2.03. • include mega8535.h include lcd.h include delay.h Universitas Sumatera Utara include stdio.h asm .equ __lcd_port= 0x15; PORTC endasm define ADC_VREF_TYPE 0X00 Merupakan perintah pengikut sertaan ATmega 8535, LCD, delay, Stdio dan mendefenisikan ADC yang digunakan. • unsigned long Data ; unsigned int Constant, ; char buf [16]; Merupakan perintah untuk mendeklarasikan variable yang digunakan dalam program. • PORTA=0X00; DDRA=0X00; PORTB=0X00; DDRB=0X0F; PORTC=0X00; DDRC=0X00; PORTD=0X00; DDRD=0X04; Merupakan perintah untuk mengisi nilai awal PORT dan menginisialisasikan PORT – PORT tersebut sebagai input atau output. • lcd_init16; Universitas Sumatera Utara lcd_gotoxy0,0; lcd_putsf RANCANGAN ; lcd_gotoxy0,1; lcd_putsf DETEKSI JARAK; delay_ms3000; lcd_clear; constant = 74; Merupakan perintah untuk menampilkan pesan pada display LCD. • PORTD.2 = 1; delay_us20; PORRT.D = 0; Merupakan perintah untuk mengirim pulsa trigger pemicu untuk menstart pembacaan sensor ultrasonic. • TCNT=0; Perintah Meriset hitungan register timer. • while PIND.3 == 0 {}; Perintah Mendeteksi signal dari sensor yaitu logika 1 sebagai pulsa start. • TCCR1B = 0X02; while PIND.3 == 1 TIFR 0X80; TCCR1B=0X00; Data = TCNT1; Merupakan perintah untuk memulai menjalankan counter hingga terdeteksi 0 kemudian menghentikan timer dan mengisi timer ke variable data. • if Data 1000 {Data10Constant;} Universitas Sumatera Utara if Data = 1000 {DataConstant10;} if Data 3000{ Merupakan perintah untuk mengkalibrasi hitungan timer ke jarak. • lcd_gotoxy 0,0; lcd_putsf JARAK : CM; lcd_gotoxy8,0; lcd_putchar Data1000 10 + 0x30; lcd_putchar Data100 10 + 0x30; lcd_putchar Data10 10 + 0x30; lcd_putsf .; lcd_putchar Data 10 +0x30; Perintah Menampilkan jarak yang terukur ke display LCD. • if Data 5000 {t = 50;} if Data 3000 {t = 100;} if Data 2000 {t = 200;} if Data 1000 {t = 300;} if Data 500 {t = 600;} Merupakan perintah untuk menentukan frekuensi bunyi dari buzzer sesuai dengan jarak yang tertentu. • else { lcd_gotoxy 0,0; lcd_putsf DILUAR JANGKAUAN delay_ms1000; lcd_clear{}; Universitas Sumatera Utara Merupakan perintah untuk menampilkan pesan diluar jangkauan jika hasil bacaan sensor di atas nilai 3000. • void Alarm v0id { PORTB.0 = 1; delay_mst; PORTB.0 = 0; delay_ms600-t; Merupakan perintah untuk membunyikan buzzer dengan frekuensi tertentu sesuai dengan jarak yang terdeteksi.

3.4.3 FlowChart Program Pendeteksi Jarak