Skematika Rangkaian Pendeteksi Banjir Pengujian Program Mikrokontroler ATMega8535 Pengujian Program Utuh Deteksi Banjir Dengan Bahasa C

3.2 Skematika Rangkaian Pendeteksi Banjir

Gambar 3.7 Skematika Rangkaian Deteksi Banjir Berbasis ATmega8535 Universitas Sumatera Utara

3.3 Perancangan Perangkat Lunak Program

Pemrograman pada mikrokontroler ini akan didesain dengan tujuan agar dapat mengirimkan objek yang diterima dari sensor ke mikrokontroler sesuai dengan kondisi yang ada. Sedangkan aplikasi program pada PC, didesain agar aplikasi program berjalan dengan baik pada mikrokontroler dan dapat mengolah data untuk diambil informasinya dari objek yang telah terdeteksi.

3.3.1 Langkah - Langkah Atau Prosedur Pembuatan Program

1. Siapkan perangkat lunak editor penyusun program dalam rancangan ini menggunakan CV AVR 2.04. 2. Buka atau jalankan CV AVR 2.04 kemudian buka file baru dari file pilih new kemudian pilih project. Gambar 3.8 Jendela Pilihan Tipe File 3. Pilih project lalu pilih yes, maka muncul pilihan untuk menggunakan Code Wizard atau tidak. Kemudian pilih yes Gambar 3.9 Jendela Konfirmasi Universitas Sumatera Utara 4. Lakukan setting awal Chip pada Code Wizard AVR . Gambar 3.10 CodeWizardAVR pada tab Chip 5. Lakukan setting Code Wizard AVR pada Alphanumeric LCD dengan memasukkan 16 pada Characters dan PORTD pada LCD Module AVR. Gambar 3.11 CodeWizardAVR pada Alphanumeric LCD 6. Port B dengan bit 0 sebagai output Gambar 3.12 CodeWizardAVR pada tab Port B Universitas Sumatera Utara 7. Port C dengan bit 0 sebagai output, bit 1 sebagai pull-up. Gambar 3.13 CodeWizardAVR pada tab Port C 8. Untuk mengenerate programpilih File kemudian pilih Generate, Save and Exit Gambar 3.14 Genarate,Save and Exit 9. Simpan file setting dengan nama tertentu. 10. Setelah file tersimpan menu editor akan terbuka dan siap untuk penulisan. 11. Penulisan dilakukan dengan mengikuti kaidah penulisan bahasa C. 12. Setelah selesai program ditulis, saatnya untuk mengcompile program menjadi kode mesin yaitu melalui menu project pilih compile. Gambar 3.15 Compile Program Universitas Sumatera Utara 13. Jika terdapat kesalahan penulisan, maka pada display akan ditampilkan pesan kesalahan dengan nomor baris letak kesalahan dengan nomor baris letak kesalahan. 14. Jika kompilasi berhasil tanpa error, program dapat dilanjutkan dengan proses pengunduhan kedalam IC yaitu dengan menjalankan perintah download pada menu dan jika proses pengunduhan berhasil maka program dapat diuji coba langsung ke rangkaian. Gambar 3.15 Jendela Informasi

3.3.2 Rancangan Program Sistem Deteksi Banjir Dengan Pemrograman Bahasa

C Yaitu CV AVR 2.04 Berikut adalah rancangan program yang diprogram dengan bahasa C dengan CV AVR Versi 2.04 1. include alcd.h include mega8535.h include delay.h Universitas Sumatera Utara include stdio.h define SIG_in PINC.1 define trigger PINC.0 Perintah diatas adalah perintah untuk mendefenisikan variabel dan mengikut sertakan file-file bantu. Misalnya mega8535, LCD, dll. 2. unsigned int US; unsigned int Constant; void main void Perintah diatas merupakan perintah untuk mendeklarasikan variabel yang digunakan yaitu variabel US dengan tipe integer. 3. PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x0F; PORTC=0x02; DDRC=0x01; PORTD=0xFF; DDRD=0x00; Perintah diatas merupakan perintah merupakan perintah untuk menginisialisasi port dan mengisi nilai awal port. 4. lcd_init16; lcd_gotoxy0,0; lcd_putsf SISTEM ALARM; Universitas Sumatera Utara lcd_gotoxy0,1; lcd_putsf DETEKSI BANJIR; delay_ms2000; Constant = 27; lcd_clear; Merupakan perintah untuk menampilkan pesan pada display LCD. 5. PORTC.0 = 1; delay_us20; PORTC.0 = 0; Merupakan perintah untuk mengirim pulsa trigger pemicu untuk menstart pembacaan sensor ultrasonik. 6. TCNT1=0; Perintah mengisi nilai awal untuk counter 1, yaitu = 0. 7. while PINC.1 == 0{}; wait for return pulse Perintah Mendeteksi signal dari sensor yaitu logika 1 sebagai pulsa start. 8. TCCR1B=0x02; while PINC.1 == 1 TIFR 0x80; TCCR1B=0x00; US = TCNT1; Merupakan perintah untuk memulai menjalankan counter hingga terdeteksi 0 kemudian menghentikan timer dan mengisi timer ke variabel data. 9. if US 1000 {US = US10Constant;} if US = 1000 {US = USConstant10;} Universitas Sumatera Utara if US 2000 Merupakan perintah untuk mengkalibrasi hitungan timer ke tinggi. 10. lcd_gotoxy0,0;lcd_putsfTINGGI: CM; Perintah menampilkan jarak yang terukur ke display LCD. 11. US = 198 - US; if US 0{US = 0;} if US 50 {PORTB.0 = 1;}else{PORTB.0 = 0;} Merupakan perintah untuk menentukan frekuensi bunyi dari buzzer sesuai dengan jarak yang tertentu. 12. lcd_gotoxy8,0; lcd_putcharUS1000 10 + 0x30; lcd_putcharUS100 10 + 0x30; lcd_putcharUS10 10 + 0x30; lcd_putsf.; lcd_putcharUS 10 + 0x30; Perintah menampilkan jarak yang terukur ke display LCD. 13. delay_ms100; PORTB.1 = 0; delay_ms500; PORTB.1 = 1;} Perintah untuk menunda waktu selama 100 mili detik dan 500 mili detik. Universitas Sumatera Utara Keterangan yang ada pada CV AVR: 1. USART untuk komunikasi data serial. 2. Analog Computer untuk pembanding sinyal analog. 3. ADC untuk mengubah analog menjadi digital. 4. SP1, I2C, 1 Wire, TW1 I2C untuk mengkomunikasi data serial. 5. Alphanumeric LCD untuk pengaturan port LCD. 6. Chip untuk pemilihan IC mikrokontroller. 7. External IRQ untuk pengaturan interupsi eksternal. 8. Timer untuk pengaturan waktu atau delay. 9. Bit-Banged untuk penggunaan periveral tertentu. Misalnya sensor project information untuk menulis data project. Universitas Sumatera Utara

BAB 4 ANALISA PROGRAM

4.1 Pengujian Program Mikrokontroler ATMega8535

1. Pengujian Program untuk menginisialisasi port dan mengisi nilai awal port. PORTA=0x00; DDRA=0x00; PORTB=0x00; DDRB=0x0F; PORTC=0x02; DDRC=0x01; PORTD=0xFF; DDRD=0x00; 2. Pengujian program perintah untuk menampilkan pesan pada display LCD lcd_init16; lcd_gotoxy0,0; lcd_putsf SISTEM ALARM; lcd_gotoxy0,1; lcd_putsf DETEKSI BANJIR; delay_ms2000; Constant = 27; lcd_clear; 3. Pengujian program pembaca sensor ultrasonik PORTC.0 = 1; Universitas Sumatera Utara delay_us20; PORTC.0 = 0; TCNT1=0; while PINC.1 == 0{}; 4. Pengujian program timer TCCR1B=0x02; while PINC.1 == 1 TIFR 0x80; TCCR1B=0x00; US = TCNT1; if US 1000 {US = US10Constant;} if US = 1000 {US = USConstant10;} if US 2000{ 5. Pengujian program untuk menampilkan data tinggi pada LCD. lcd_gotoxy0,0;lcd_putsfTINGGI: CM; US = 198 - US; if US 0{US = 0;} if US 50 {PORTB.0 = 1;}else{PORTB.0 = 0;} lcd_gotoxy8,0; lcd_putcharUS1000 10 + 0x30; Universitas Sumatera Utara lcd_putcharUS100 10 + 0x30; lcd_putcharUS10 10 + 0x30; lcd_putsf.; lcd_putcharUS 10 + 0x30; 6. Program untuk menunda waktu delay_ms100; PORTB.1 = 0; delay_ms500; PORTB.1 = 1;}

4.2 Pengujian Program Utuh Deteksi Banjir Dengan Bahasa C

include alcd.h include mega8535.h include delay.h include stdio.h define SIG_in PINC.1 define trigger PINC.0 unsigned int US; unsigned int Constant; void mainvoid { PORTA=0x00; Universitas Sumatera Utara DDRA=0x00; PORTB=0x00; DDRB=0x0F; PORTC=0x02; DDRC=0x01; PORTD=0xFF; DDRD=0x00; lcd_init16; lcd_gotoxy0,0; lcd_putsf SISTEM ALARM; lcd_gotoxy0,1; lcd_putsf DETEKSI BANJIR; delay_ms2000; Constant = 27; lcd_clear; while 1 { PORTC.0 = 1; delay_us20; PORTC.0 = 0; Universitas Sumatera Utara TCNT1=0; while PINC.1 == 0{}; TCCR1B=0x02; while PINC.1 == 1 TIFR 0x80; TCCR1B=0x00; US = TCNT1; if US 1000 {US = US10Constant;} if US = 1000 {US = USConstant10;} if US 2000{ lcd_gotoxy0,0;lcd_putsfTINGGI: CM; US = 198 - US; if US 0{US = 0;} if US 50 {PORTB.0 = 1;}else{PORTB.0 = 0;} lcd_gotoxy8,0; lcd_putcharUS1000 10 + 0x30; lcd_putcharUS100 10 + 0x30; lcd_putcharUS10 10 + 0x30; lcd_putsf.; Universitas Sumatera Utara lcd_putcharUS 10 + 0x30; delay_ms100; PORTB.1 = 0; delay_ms500; PORTB.1 = 1;} } } Program diatas adalah proses pengujian program yang dibuat dengan bahasa C, dimana program diuji langsung pada alat atau rangkaian sistem. Sebelumnya program diunduh dalam IC mikrokontroller kemudian dijelaskan. Hal yang diperoleh dari pengujian program adalah bahwa sensor memberikan input pada mikrokontroller sehingga mikrokontroller akan merespon pada jarak tertentu yaitu mengeluarkan output buzzer. Dalam hal ini jarak sensor dengan objek untuk memberikan output buzzer adalah lebih kecil dari 17 cm dengan asumsi bahwa alat ukur ketinggian air telah mencapai 3 cm yaitu tinggi sensor dikurangi selisih antara jarak sensor dengan ketinggian air yaitu 20 cm – 17 cm = 3 cm. jadi uji coba tersebut dapat disimpulkan bahwa rancangan program telah berjalan dengan baik yaitu memberikan output yang diinginkan sesuai dengan kondisi input. Universitas Sumatera Utara 4.3 Pengukuran Rangkaian Mikrokontroller ATMega8535 Tabel 4.1 Hasil Pengukuran Tegangan Pin Mikrokontroller Pin Tegangan Pin Volt 1 2 4,9 3 4 5 1,48 6 1,46 7 1,46 8 1,46 9 4,96 10 4,97 11 12 0,78 13 0,95 14 4,94 15 4,94 16 4,94 17 4,94 18 4,94 19 4,94 20 4,94 Universitas Sumatera Utara 21 4,93 22 0,01 23 0,60 24 0,57 25 0,58 26 1,58 27 0,63 28 0,58 29 1,56 30 4,97 31 32 4,97 33 1,57 34 1,61 35 1,57 36 1,60 37 0,09 38 1,58 39 1,60 40 1,59

4.4 Pengukuran Tegangan Catu Daya