Monitoring Ketinggian Air pada Bendungan Menggunakan Sensor Ultrasonik Berbasis Mikrokontroller Atmega 8535

(1)

MONITORING KETINGGIAN AIR PADA BENDUNGAN

MENGGUNAKAN SENSOR ULTRASONIK BERBASIS

MIKROKONTROLLER ATMEGA8535

TUGAS AKHIR

DEBBY ZAMHARIRO 112408018

PROGRAM STUDI D-III FISIKA DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(2)

MONITORING KETINGGIAN AIR PADA BENDUNGAN

MENGGUNAKAN SENSOR ULTRASONIK BERBASIS

MIKROKONTROLLER ATMEGA8535

TUGAS AKHIR

Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh Ahli Madya

DEBBY ZAMHARIRO 112408018

PROGRAM STUDI D-III FISIKA DEPARTEMEN FISIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS SUMATERA UTARA

MEDAN 2014


(3)

PERSETUJUAN

Judul : MONITORING KETINGGIAN AIR PADA

BENDUNGAN MENGGUNAKAN SENSOR ULTRASONIK BERBASIS

MIKROKONTROLLER ATMEGA8535

Kategori : TUGAS AKHIR

Nama : DEBBY ZAMHARIRO

Nomor Induk Mahasiswa : 112408018 Program Studi : D3 FISIKA

Departemen : FISIKA

Fakultas : MATEMATIKA DAN ILMU PENGETAHUAN

ALAM (FMIPA) UNIVERSITAS SUMATERA UTARA

Diluluskan di Medan, 27 Juni 2014

Disetujui Oleh:

Program Studi D3 Fisika

Ketua, Pembimbing,

(Dr. Susilawati, M.Si) (Drs. Syahrul Humaidi, M.Sc)


(4)

PERNYATAAN

MONITORING KETINGGIAN AIR PADA BENDUNGAN

MENGGUNAKAN SENSOR ULTRASONIK BERBASIS

MIKROKONTROLLER ATMEGA8535

TUGAS AKHIR

Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri. Kecuali beberapa kutipan dan ringkasan yang masing-masing disebutkan sumbernya.

Medan, Juni 2014

DEBBY ZAMHARIRO 112408018


(5)

PENGHARGAAN

Puji dan syukur penulis panjatkan kepada Allah SWT yang Maha Pengasih dan Maha Penyayang, dengan limpah karunia-Nya penulis dapat menyelesaikan penyusunan tugas akhir ini dalam waktu yang telah ditetapkan.

Terimakasih penulis sampaikan kepada Drs. Syahrul Humaidi, M.Sc selaku dosen pembimbing pada penyelesaian tugas akhir ini, yang telah meluangkan waktunya selama penyusunan tugas akhir ini. Terimakasih kepada Dr. Susilawati, M.Si dan Dr. Perdinan Sinuaji, M.Si selaku Ketua Program Studi D3 Fisika dan Sekretaris Program Studi D3 Fisika FMIPA USU Medan, Dekan dan Pembantu Dekan FMIPA USU, seluruh Staff dan Dosen D3 Fisika FMIPA USU, pegawai di FMIPA USU.

Serta ucapan terimakasih yang tak terhingga kepada kedua orang tua saya Ayahanda Parhan dan Ibunda Asra Laila yang telah banyak memberikan dukungan baik berupa moril dan materil sehingga penulis dapat menyelesaikan tugas akhir ini. Serta ucapan terimakasih kepada rekan-rekan mahasiswa/I D3 Fisika stambuk 2011 yang telah membantu dalam menyelesaikan tugas akhir ini.


(6)

ABSTRAK

Pada tugas akhir ini penulis membahas masalah yang berjudul “Monitoring Ketinggian Air Pada Bendungan Menggunakan Sensor Ultrasonik Berbasis Mikrokontroller ATMega8535”. Alat ini berfungsi sebagai sistem pemantauan ketinggian air secara elektronik yang dapat digunakan untuk memantau perubahan ketinggian air. Dengan memanfaatkan sensor ultrasonik sebagai detektor guna mendeteksi jarak. Sensor ini berdasarkan prinsip pantulan gelombang suara, dimana sensor memancarkan gelombang suara yang kemudian menangkapnya kembali dengan perbedaan waktu dan mikrokontroller ATMega8535 sebagai mikrokontrollernya.


(7)

DAFTAR ISI

Persetujuan i

Pernyataan ii

Penghargaan iii

Abstrak iv

Daftar Isi v

Daftar Tabel vii

Daftar Gambar viii

Bab 1 Pendahuluan 1.1 Latar Belakang 1

1.2 Rumusan Masalah 2

1.3 Tujuan Penulisan 3

1.4 Batasan Masalah 3

1.5 Sistematika Penulisan 4

Bab 2 Landasan Teori 2.1 Mikrokontroller ATMega8535 6

2.1.1 Timer ATMega8535 6

2.2.2 Pin-Pin Mikrokontroler ATmega8535 7 2.2 Pengenalan Pemrograman C 8

2.2.1 Tipe Data 9

2.2.2 Konstanta Dan Variabel 9

2.2.3 Variabel Bertanda (Signed) Dan Tak Bertanda (Unsigned) 10

2.2.4 Pengarah Preprosesor 10

2.2.5 Pernyataan 11

2.2.6 Blok Pernyataan 11

2.2.7 Fungsi Pustaka 11

2.2.8 Pernyataan If 12

2.2.9 Pernyataan If..Else 13

2.2.10 Pernyataan While 14

2.2.11 Bentuk Dasar Program C 15

2.3 Code Vision AVR 16

2.4 Code Vision AVR Chip Programmer 16

2.5 Sensor Jarak Ultrasonik PING 16

2.6 Buzzer 17

2.7 Catu Daya 18

2.8 Transistor 19

Bab 3 Rancangan Sistem 3.1. Rangkaian Perangkat Keras (Hardware) 20

3.1.1 Diagram Blok Rangkaian 20

3.1.2 Flowchart Deteksi Banjir 21


(8)

3.1.4 Perancangan Rangkaian Sensor 23

3.1.5 Perancangan Rangkaian Mikrokontroler ATMega8535 24

3.1.6 Perancangan Rangkaian Penguat 25

3.1.7 Perancangan Rangkaian Buzzer 25

3.1.8 Perancangan Rangkaian LCD Display 26

3.2 Skematika Rangkaian Pendeteksi Banjir 27

3.3 Perancangan Perangkat Lunak / Program 28

3.1.9 Langkah - Langkah Atau Prosedur Pembuatan Program 28

3.3.2 Rancangan Program Sistem Deteksi Banjir Dengan Pemrograman Bahasa C Yaitu CV AVR 2.04 31

Bab 4 Analisa Program 4.1 Pengujian Program Mikrokontroler ATMega8535 36

4.2 Pengujian Program Utuh Deteksi Banjir Dengan Bahasa C 38

4.3 Pengukuran Rangkaian Mikrokontroller ATMega8535 42

4.4 Pengukuran Tegangan Catu Daya 43

4.5 Pengukuran Tegangan Regulator 44

4.6 Pengukuran Pulsa Keluaran Sensor PING 44

4.6.1 Tampilan Grafik Pengukuran Pulsa Keluaran Sensor Ping 44

4.6.2 Analisa Perhitungan Pengukuran Pulsa Sensor PING 46

4.7 Pengukuran Persentase Error 47

4.7.1 Analisa Perhitungan Persentase Error 48

Bab 5 Kesimpulan Dan Saran 5.1 Kesimpulan 49

5.2 Saran 49


(9)

DAFTAR TABEL

Tabel 2.1 Tipe Data 9

Tabel 4.1 Hasil Pengukuran Tegangan Pin Mikrokontroller 42

Tabel 4.2 Hasil Pengukuran Pulsa Keluaran Sensor Ping 44


(10)

DAFTAR GAMBAR

Gambar 2.1 Mikrokontroler ATMega8535 6

Gambar 2.2 Konfigurasi pin ATmega8535 (Data Sheet AVR) 7

Gambar 2.3 Sensor Jarak Ultrasonik Ping 17

Gambar 2.5 Bentuk Buzzer 18

Gambar 3.1 Diagram Blok 20 Gambar 3.2 Flowchart Deteksi Banjir 22

Gambar 3.3 Rangkaian Sensor Ultrasonik 24

Gambar 3.4 Konfigurasi Pin ATmega8535 25

Gambar 3.5 Rangkaian Penguat dan Buzzer 26

Gambar 3.6 Rangkaian LCD Display 26

Gambar 3.7 Skematika Rangkaian Deteksi Banjir Berbasis ATMega8535 27

Gambar 3.8 Jendela Pilihan Tipe File 28

Gambar 3.9 Jendela Konfirmasi 28

Gambar 3.10 CodeWizardAVR pada tab Chip 29

Gambar 3.11 CodeWizardAVR pada Alphanumeric LCD 29

Gambar 3.12 CodeWizardAVR pada tab Port B 29

Gambar 3.13 CodeWizardAVR pada tab Port C 30

Gambar 3.14 Genarate,Save and Exit 30

Gambar 3.15 Compile Program 30

Gambar 3.16 Jendela Informasi 31

Gambar 4.1 Grafik Jarak 16 cm 44

Gambar 4.2 Grafik Jarak 14 cm 45

Gambar 4.3 Grafik Jarak 12 cm 45

Gambar 4.4 Grafik Jarak 10 cm 45


(11)

ABSTRAK

Pada tugas akhir ini penulis membahas masalah yang berjudul “Monitoring Ketinggian Air Pada Bendungan Menggunakan Sensor Ultrasonik Berbasis Mikrokontroller ATMega8535”. Alat ini berfungsi sebagai sistem pemantauan ketinggian air secara elektronik yang dapat digunakan untuk memantau perubahan ketinggian air. Dengan memanfaatkan sensor ultrasonik sebagai detektor guna mendeteksi jarak. Sensor ini berdasarkan prinsip pantulan gelombang suara, dimana sensor memancarkan gelombang suara yang kemudian menangkapnya kembali dengan perbedaan waktu dan mikrokontroller ATMega8535 sebagai mikrokontrollernya.


(12)

BAB 1 PENDAHULUAN

1.1Latar Belakang

Banjir merupakan peristiwa tergenang dan terbenamnya daratan, karena volume air yang meningkat. Banjir dapat terjadi karena peluapan air yang berlebihan di suatu tempat akibat hujan besar, peluapan air sungai, atau pecahnya bendungan sungai. Pengertian yang lain yaitu, Banjir adalah aliran yang relatif tinggi, dan tidak tertampung oleh alur sungai atau saluran. Di banyak daerah yang gersang di dunia, tanahnya mempunyai daya serapan air yang buruk, atau jumlah curah hujan melebihi kemampuan tanah untuk menyerap air. Ketika hujan turun, yang kadang terjadi adalah banjir secara tiba-tiba yang diakibatkan terisinya saluran air kering dengan air. Banjir semacam ini disebut banjir bandang.

Saat musim penghujan tiba, hujan bisa turun terus-menerus sehingga air pun semakin banyak memenuhi sungai dan saluran-saluran air. Kalau sungai dan saluran air itu tersumbat oleh sampah dan kotoran, maka banjir bisa terjadi. Pada saat air jatuh kepermukaan bumi dalam bentuk hujan, maka air itu akan mengalir ketempat yang lebih rendah melalui saluran-saluran atau sugai-sungai dalam bentuk aliran permukaan sebagian akan masuk/meresap kedalam tanah dan sebagiannya lagi akan menguap ke udara.

Melihat kondisi beberapa wilayah di Indonesia yang saat ini sering mengalami banjir. Banjir menimbulkan kerugian bagi mereka yang terkena banjir baik secara langsung maupun tidak langsung. Dampak banjir memang luar biasa. Rumah rusak karena terendam banjir, barang-barang perabotan rumah tangga


(13)

hanyut dan rusak. Ditambah bila penduduk yang memiliki usaha rumahan bisa terganggu aktifitas produksinya sehingga mengakibatkan kerugian. Akan tetapi kerugian akibat banjir dapat sedikit dikurangi bila ada peringatan dini banjir, sehingga masyarakat sudah siap sebelum banjir datang.

Salah satu cara mengurangi dampak kerugian yang ditimbulkan oleh genangan air adalah harus mengetahui tinggi permukaan dan debit air. Pengukuran yang digunakan saat ini masih menggunakan tanda garis yang dibuat sedemikian rupa serta masih menghitung debitnya secara manual. Dengan sistem pengukuran yang dilakukan saat ini memiliki kelemahan yaitu tidak dapat dilakukan secara terus menerus karena faktor keterbatasan fisik yang ada pada manusia. Pengukuran yang dilakukan dalam penelitian ini menggunakan sensor ultrasonic.

Sensor ultrasonik digunakan dalam pengukuran ketinggian air yang dipasang dihalaman rumah. Sensor tersebut mendeteksi jarak dari sensor ke permukaan air sehingga pendeteksian tidak perlu dilakukan dengan kontak fisik antara sensor dengan air.

1.2Rumusan Masalah

Berdasarkan uraian di atas, dapat dirumuskan beberapa masalah yang dibahas dalam laporan proyek ini, yaitu:

1. Bagaimana mendeteksi air berdasarkan ketinggian menggunakan sensor ultrasonik.


(14)

3. Bagaimana membuat perangkat lunak untuk mengendalikan sensor dan buzzer pada rangkaian deteksi banjir.

1.3Tujuan Penulisan

Adapun maksud dan tujuan dari penulisan laporan proyek ini adalah sebagai berikut:

1. Untuk menerapkan ilmu yang dipelajari di bangku kuliah secara nyata dan aplikatif.

2. Untuk memenuhi salah satu syarat dalam menyelesaikan studi program studi DIII Fisika di Fakultas MIPA Universitas Sumatera Utara.

3. Studi awal dalam merancang suatu alat instrumentasi cerdas alat untuk mendeteksi ketinggian air akibat banjir.

4. Merancang rangkaian pengendali alat detector banjir menggunakan mikrokontroler AVR ATMega8535 .

5. Membuat program untuk membaca ketinggian air dengan sensor ultrasonic dan membunyikan alarm peringatan.

1.4Batasan Masalah

Mengingat keterbatasan kemampuan penulis dan waktu pelaksanaan pembuatan laporan proyek, maka dibuat batasan masalah sebagai berikut :

1. Rancangan menggunakan sebuah mikrokontroler yaitu ATMega8535 sebagai pengendali sistem.

2. Perancangan menggunakan sistem ultrasonic tipe SR04 sebagai deteksi ketinggian.


(15)

3. Pemrograman IC mikrokontroler menggunakan bahasa pemrograman C yaitu Code Vision AVR versi 2.4.0.

1.5Sistematika Penulisan

Untuk mempermudah pembahasan dan pemahaman maka penulis membuat sistematika pembahasan bagaimana sebenarnya prinsip kerja sistem pengaturan atap otomatis, maka penulis menulis laporan proyek ini sebagai berikut:

BAB I. PENDAHULUAN

Dalam bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, serta sistematika penulisan.

BAB II. LANDASAN TEORI

Landasan teori, dalam bab ini dijelaskan tentang teori pendukung yang digunakan untuk pembahasan dan cara kerja dari rangkaian Teori pendukung itu antara lain tentang sensor ultrasonic, mikrokontroller ATmega8535 (hardware dan software), Transistor Negatif Positif Negatif (NPN) dan transistor Positif Negatif Positif (PNP), Buzzer, bahasa program yang digunakan serta karekteristik dari komponen-komponen pendukung.

BAB III. PERANCANGAN ALAT

Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram blok dari rangkaian, skematik dari masing-masing rangkaian.


(16)

BAB IV. PENGUJIAN RANGKAIAN

Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem kerja alat, penjelasan mengenai program-program yang digunakan untuk mengaktifkan rangkaian, dan diagram alir dari program yang akan diisikan ke mikrokontroller ATMega8535.

BAB V. KESIMPULAN DAN SARAN

Bab ini merupakan penutup yang meliputi tentang kesimpulan yang dilakukan dari tugas akhir ini serta saran apakah yang diberikan agar rangkaian ini dapat dibuat lebih efisien dan dikembangkan perakitannya pada suatu metode lain yang mempunyai sistem kerja yang sama.


(17)

BAB 2

LANDASAN TEORI

2.1Mikrokontroller ATMega 8535

Mikrokontroler AVR (Alf and Vegard’s RISC Processor) dari Atmel ini menggunakan arsitektur RISC (Reduced Instruction Set Computing) yang artinya proses tersebut memilikiset instruksi program yang lebih sedikit dibandingkan dengan MCS-51 yang menerapkan arsitektur CISC (Complex Instruction Set Computer). Beberapa fitur yang dimiliki Mikrokontroler ATMega8535 adalah 130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock. 32 x 8-bit register serbaguna.

Gambar 2.1 Mikrokontroler ATMega8535

2.1.1 Timer ATMega8535

ATMega8535 memiliki 3 modul timer yang terdiri dari 2 buah timer / counter 8-bit dan 1 buah timer / counter 16-bit. Ketiga modul timer / counter ini dapat diatur dalam mode yang berbeda secara individu dan tidak saling mempengaruhi satu sama lain. Selain itu semua timer / counter juga dapat difungsikan sebagai sumber interupsi.


(18)

2.1.2 Pin-Pin Mikrokontroler ATmega8535

Gambar 2.2 Konfigurasi pin ATMega8535 (Data Sheet AVR)

Konfigurasi pin ATMega8535 dapat dilihat pada gambar 2.2. Dari gambar di atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:

1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merukan pin Ground.

3. Port A (PortA0 sampai PortA7) merupakan pin input/output dua arah dan pin masukan ADC.

4. Port B (PortB sampai PortB7) merupakan pin input/output dua arah dan dan pin fungsi khusus.

5. Port D (PortD0 sampai PortD7) merupakan pin input/output dua arah dan pin fungsi khusus.

6. RESET merupakan pin yang digunakan untuk me-reset mikrokontroler. 7. XTAL1 dan XTAL2 merupakan pin masukan clock eksternal.


(19)

8. AVCC merupakan pin masukan tegangan untuk ADC. 9. AREFF merupakan pin masukan tegangan referensi ADC.

2.2 Pengenalan Pemrograman C

Pengenalan merupakan sebuah nama yang didefinisikan oleh pemrograman untuk menunjukkan identitas dan sebuah konstanta, variabel, fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenalan dapat ditentukan bebas sesuai keinginan pemrogram tetapi harus memenuhi aturan berikut:

1. Karakter pertama tidak boleh menggunakan angka.

2. Karakter kedua dapat berupa huruf, angka, atau garis bawah. 3. Tidak boleh menggunakan spasi.

4. Bersifat case sensitif, yaitu huruf kapital dan huruf kecil dianggap berbeda.

5. Tidak boleh menggunakan kata-kata yang merupakan sintaks maupun operator dalam pemrograman C, misalnya: void, short, const, if, static, bit, long, case, do, switch, char, float, for, else, break, int, double, include, while.

Contoh penamaan pengenal yang diperbolehkan yaitu nama, _nama, nama2, nama_pengenal_yang_panjang_juga_boleh. Contoh penamaan pengenal yang diperbolehkan yaitu:

a. 2nama (tidak boleh diawali dengan angka) b. Nama+2 (tidak boleh menggunakan operator ‘+’) c. Nama panjang (tidak boleh menggunakan spasi).


(20)

2.2.1 Tipe Data

Berikut ini adalah tipe-tipe data yang ada dalam bahasa C dan yang dikenali oleh Compiler CodeVisionAVR:

Tabel 2.4 Tipe Data

Tipe Data Ukuran Jangkauan Nilai

Bit 1 bit 0 atau 1

Chart 1 byte -128 s/d 127

Unsigned Char 1 byte 0 s/d 225

Signed Char 1 byte -128 s/d 127

Int 2 byte -32,768 s/d 32,767

Short Int 2 byte -32,768 s/d 32,767

Unsigned Int 2 byte 0 s/d 65,535

Signed Int 2 byte -32,768 s/d 32,767

Long Int 4 byte -2,147,483,648 s/d 2,147,483,647 Unsigned Long Int 4 byte 0 s/d 4,294,967,295

Signed Long Int 4 byte -2,147,483,648 s/d 2,147,483,647 Float 4 byte 1,2*10-38 s/d 3,4*10+38 Double Ukuran 1,2*10-38 s/d 3,4*10+38

2.2.2 Konstanta Dan Variabel

Konstanta dan variabel merupakan sebuah tempat untuk menyimpan data yang berada dalam memori. Konstanta berisi data yang nilainya tetap dan tidak dapat diubah selama program dijalankan, sedangkan variabel berisi data yang bisa


(21)

berubah nilainya pada saat prrogram dijalankan. Untuk membuat sebuah konstanta atau variabel maka kita harus mendeklarasikannya terlebih dahulu. Deklarasi Konstanta: Const [tipe_data] [nama_konstanta]=[nilai]

Contoh: Const char konstantaku=0x10;

Deklarasi Variabel: [tipe_data] [nama_variabel]=[nilai_awal]

Contoh : Char variabelku; Char variabelku=0x20; Bit variabel_bit; Bit variabel bit=1;

2.2.3 Variabel Bertanda (Signed) Dan Tak Bertanda (Unsigned)

Untuk pendeklarasian tipe yang berupa bilangan bulat yaitu chart, int, short dan long dapat ditambahkan signed atau unsigned. Signed digunakan untuk mendefinisikan bahwa data yang disimpan dalam variabel adalah bertanda sedangkan unsigned untuk data yang tidak bertanda.

Contoh : Unsigned char data1; Signed char data2;

2.2.4 Pengarah Preprosesor

Pengarah preprosesor digunakan untuk mendefinisikan prosesor yang digunakan, dalam hal ini adalah untuk mendefinisikan jenis mikrokontroler yang digunakan. Dengan pengarah preprosesor ini maka pendeklarasian register-register dan penamaannya dilakukan pada file lain yang disisipkan dalam program utama dengan sintaks sebagai berikut: #include <nama_preprosesor>


(22)

Contoh : #include <mega8535.h>

2.2.5 Pernyataan

Pernyataan adalah satu buah instruksi lengkap yang berdiri sendiri. Berikut adalah contoh sebuah pernyataan: PORTC = 0x0F;

Pernyataan diatas merupakan sebuah instruksi untuk mengeluarkan data 0x0F ke Port C.

2.2.6 Blok Pernyataan

Kumpulan beberapa pernyataan yang berada dalam satu bagian program disebut dengan blok pernyataan. Satu blok pernyataan ditandai dengan tanda ‘{‘ dan diakhiri dengan tanda ‘}’.

Contoh sebuah blok pernyataan:

{

PORTA=0x00; //pernyataan_1 PORTB=0x0F; //pernyataan_2 PORTC=0xFF; //pernyataan_2 }

2.2.7 Fungsi Pustaka

Bahasa C memiliki sejumlah fungsi pustaka yang berada pada file-file tertentu dan sengaja disediakan untuk menangani berbagai hal dengan cara memanggil fungsi-fungsi yang telah dideklarasikan di dalam file tersebut. Dalam banyak hal, pustaka-pustaka yang tersedia tidak berbentuk kode sumber melainkan dalam bentuk yang telah dikompilasi. Pada saat proses linking,


(23)

kode-kode dari fungsi ini akan dikaitkan dengan kode-kode-kode-kode yang ditulis oleh pemrograman. Sintaks untuk menggunakan fungsi pustaka ini adalah sebagai berikut : #include <nam_file_pustaka>

Contoh : #include<lcd.h>

2.2.8 Pernyataan if

Pernyataan if digunakan untuk melakukan pengambilan keputusan terhadap dua buah kemungkinan yaitu mengerjakan suatu blok pernyataan atau tidak. Bentuk pernyataan if adalah sebagai berikut:

if (kondisi) {

//blok pernyataan yang akan dikerjakan //jika kondisi if terpenuhi

}

Contoh: if (PINA>0x80) {

dataku = PINA; PORTC=0x0FF }

Pernyataan if diatas akan mengecek apakah data yang terbaca pada Port A (PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variabel dataku diisi dengan nilai PINA dan data 0xFF dikeluarkan ke Port C. Apabila dalam blok pernyataan hanya terdapat satu pernyataan saja maka tanda { dan } dapat dihilangkan seperti contoh berikut: if(PINA>0x80) PORTC=0xFF;


(24)

2.2.9 Pernyataan If..Else

Pernyataan if..else hampir sama dengan pernyataan if diatas atau yaitu digunakan untuk melakukan pengambilan keputusan terhadap dua buah kemungkinan, hanya yang berbeda adalah bahwa kedua kemungkinan tersebut berupa mengerjakan suatu blok pernyataan atau mengerjakan blok pernyataan yang lain. Bentuk pernyataan if..else adalah sebagai berikut:

if (kondisi) {

//blok pernyataan yang akan dikerjakan //jika kondisi if terpenuhi

} Else

{

//blok pernyataan yang akan dikerjakan //jika kondisi if tidak terpenuhi

}

Contoh : if(PIN.0x80) {

dataku = ~PINA; PORTC=0x00; }

Pernyataan if..else diata akan mengecek apakah data yang terbaca pada Port A (PINA) nilainya lebih dari 0x80 atau tidak, jika ya maka variabel dataku disiisi dengan nilai PINA dan data 0xFF dikeluarkan ke port C tetapi jika tidak


(25)

maka variabel dataku diisi dengan nilai komplemen dari PINA (~PINA) dan data 0x00 dikeluarkan ke port C.

2.2.10 Pernyataan While

Pernyataan while digunakan untuk pengulangan sebuah pernyataan atau blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi. Bentuk pernyataan while adalah sebagai berikut:

while (kondisi) {

//sebuah pernyataan atau blok pernyataan }

Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja maka tanda { dan } bisa dihilangkan. Contoh:

unsigned char a=0; ...

while (a<10) {

PORTC=a; a++; }

Pernyataan diatas akan mengeluarkan data as ke port C secara berulang-ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan sebuah nilai a mencapai 10 maka pengulangan selelsai.


(26)

2.2.11 Bentuk Dasar Program C

Sebuah program dalam bahasa C setidaknya harus memiliki sebuah fungsi. Fungsi dasar ini disebut dengan fungsi utama dan memiliki kerangka program sebagai berikut:

void main (void)

{

//pernyataan-pernyataan }

Jika kita memiliki beberapa fungsi yang lain maka fungsi utama inilah yang memiliki kedudukan paling tinggi dibandingkan fungsi-fungsi yang lain sehingga setiap kali program dijalankan akan selalu dimulai dari memanggil fungsi utama terlebih dahulu. Fungsi-fungsi yang lain dapat dipanggil setelah fungsi utama dijalankan melalui pernyataan-pernyataan yang berada di dalam fungsi utama. Contoh:

//prototipe fungsi inisialisasi port

voidinisialisasi_port (char A, char B, char C, char D); //definisi fungsi inisialisasi port

voidinisialisasi_port (char A, char B, char C, char D) {

DDRA = A; DDRB = B; DDRC = C; DDRD = D; }


(27)

//fungsi utama

void main (void)

{

inisialisasi_port 90xFF, 0xF0, 0x0F, 0x00); }

2.3 CodeVision AVR

CodeVision AVR merupakan salah satu software kompiler yang khusus digunakan untuk mikrokontroler keluarga AVR. Meskipun CodeVision AVR termasuk software komersial, namun dapat menggunakannya dengan mudah karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan kemampuan yang dibatasi.

2.4 CodeVision AVR Chip Programmer

Salah satu kelebihan dari CodeVision AVR adalah tersedianya fasilitas untuk mendownload program ke mikrokontroler yang telah terintegrasi sehingga dengan demikian CodeVision ini selain dapat berfungsi sebagai software kompiler juga dapat berfungsi sebagai software programmer atau downloader. Jadi dapat melakukan proses download program yang telah dikompiler dengan menggunakan software CodeVision AVR juga.

2.5 Sensor Jarak Ultrasonik PING

Pada dasanya, Sensor PING terdiri dari sebuah chip pembangkit sinyal 40KHz, sebuah speaker ultrasonik dan sebuah mikropon ultrasonik. Speaker


(28)

ultrasonik mengubah sinyal 40 KHz menjadi suara sementara mikropon ultrasonik berfungsi untuk mendeteksi pantulan suaranya.Sensor PING mendeteksi jarak obyek dengan cara memancarkan gelombang ultrasonik (40 KHz) selama

tBURST (200 μs) kemudian mendeteksi pantulannya. Sensor ping memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroler pengendali (pulsa triggerdengan t out minimal 2 μs).

Gambar 2.3 Sensor Jarak Ultrasonik Ping

Sensor ping mendeteksi jarak objek dengan cara memancarkan gelombang ultrasonik ( 40 KHz ) selama t = 200 us kemudian mendeteksi pantulannya. Sensor PING memancarkan gelombang ultrasonik sesuai dengan kontrol dari mikrokontroller pengendali ( pulsa trigger dengan t out minimal 2 μs ).

Gelombang ultrasonik melalui udara dengan kecepatan 344 meter per detik, mengenai obyek dan memantul kembali ke sensor. PING mengeluarkan pulsa output highpada pin SIG setelah memancarkan gelombang ultrasonik dan setelah gelombang pantulan terdeteksi PING akan membuat output low pada pin SIG. Lebar pulsa High (tIN) akan sesuai dengan lama waktu tempuh gelombang ultrasonik untuk 2 kali jarak ukur dengan obyek.

2.6 Buzzer

Buzzer merupakan komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir


(29)

sama dengan loud speaker, jadi buzzer juga terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan tadi akan tertarik dalam atau keluar, tergantung dari arus dan polaritas magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).

Gambar 2.5 Bentuk Buzzer

2.7 Catu Daya

Catu daya digunakan untuk memberi kebutuhan arus dan tegangan pada rangkaian. Catu daya terdiri dari beberapa bagian, yaitu: Jala-Jala Listrik, Transformator, Rectifier, Filter, Regulator Beban. Rectifier (penyearah) akan menyearahkan tegangan bolak- balik (AC) dari keluaran transformator menjadi tegangan searah (DC). Filter pada catu daya akan meminimalisir tegangan kerut (ripple) pada tegangan keluaran penyearah. Regulator beban digunakan untuk mengatur tegangan keluaran kepada beban sehingga tegangan keluaran kepada beban tidak lagi tergantung pada arus yang mengalir dari tegangan jala-jala listrik.


(30)

2.8 Transistor

Transistor merupakan dioda dengan dua sambungan (junction). Sambungan itu membentuk transistor PNP maupun NPN. Ujung-ujung terminalnya berturut-turut disebut emitor, base dan kolektor. Base selalu berada di tengah, di antara emitor dan kolektor. Beberapa fungsi transistor sebagai saklar (switch on/off) dan sebagai penguat (amplifier).


(31)

BAB 3

RANCANGAN SISTEM

3.1 Rangkaian Perangkat Keras (Hardware)

Dalam tahap perancangan perangkat keras ini, akan dilakukan perancangan fisik dari sensor dan perancangan PCB dari rangkaian. Untuk perancangan PCB, akan dibuat sebuah rangkaian yang memiliki fitur-fitur yang diperlukan dalam menjalankan sistem ini.

3.1.1 Diagram Blok Rangkaian

Jarak tinggi air

Suara

Gambar 3.1 Diagram Blok

Mikrokontroler ATmega8535

Buzzer Sensor


(32)

Diagram blok diatas merupakan diagram dasar dari rancangan sistem terdiri dari beberapa bagian yaitu: input, proses dan output. Input sistem yang dirancang yaitu deteksi dini banjir dengan alarm. Rancangan berupa suatu proses deteksi input dan mengeluarkan output tertentu. Dalam hal ini adalah ketinggian air pada saat terjadi luapan akibat banjir. Dengan menggunakan sensor jarak ultrasonik dapat diukur ketinggian air yang masuk dalam suatu wadah yang dibuat dengan tabung plastik.

Bagian proses terdiri dari sebuah mikrokontroler ATMega8535 yang bekerja membaca ketinggian air melalui sensor ultrasonik pada keadaan tertentu yaitu ketinggian air tertentu mikrokontroler ATMega8535 harus memberikan isyarat melalui output suara yaitu buzzer sebagai isyarat kemungkinan atau akan terjadi banjir dan display LCD yang menampilkan pesan atau jarak yang terukur.

3.1.2 Flowchart Deteksi Banjir

Diagram dibawah merupakan diagram alir atau flowchart sistem dimana diagram menjelaskan proses dari start hingga selesai satu siklus kerja program. Mulai dari start, program menginisialisasikan Display LCD dan mengisi nilai awal dari port. Kemudian program akan mulai membaca sensor dengan pemberian sinyal untuk jarak kesensor pada ping signal. Setelah itu program akan menunggu respon sensor berupa pulsa akibat pantulan gelombang ultrasonic sehingga dapat ditentuka selisih waktu pantulan tersebut dan dihitung jarak objek. Hasil hitungan akan ditampilkan pada display LCD selain itu program juga akan membunyikan buzzer sesuai dengan jarak terukur.


(33)

Ya

Gambar 3.2 Flowchart Deteksi Banjir

Trigger / picu sensor ultrasonik

Sinyal pantulan diterima?

Aktifkan buzzer

End

Baca sinyal pantulan Start

Inisialisasi LCD, isi nilai awal port

Kalkulasi jarak ketinggian air

Tampilkan pada LCD jarak yang terukur


(34)

3.1.3 Perancangan Rangkaian Kendali

Rancangan rangkaian kendali adalah suatu rangkaian elektronik berbasis mikrokontroller. Rancangan terdiri dari beberapa bagian utama antara lain yaitu:

1. Sensor

2. Mikrokontroller 3. Penguat

4. Buzzer. 5. Display LCD

3.1.4 Perancangan Rangkaian Sensor

Pada rancangan ini menggunakan sensor jarak sensor jarak yaitu sensor ultrasonic. Tipe sensor ultrasonic yaitu SR 04. Cara kerja sensor pada rangkaian adalah sebagai berikut: Sensor akan memancarkan sebuah gelombang ultrasonic dengan frekuensi 40 kHz kemudian sensor akan mendeteksi pantulan gelombang ultrasonic tersebut jika mengenai suatu objek pemantul. Antara dipancarkan gelombang ultrasonic dengan diterimanya kembali gelombang tersebut terdapat selisih waktu dan dengan mengetahui kecepatan suara kecepatan suara diudara maka dapat dihitung jarak objek dengan sensor. Dengan persamaan: s = V × t

2 .

Dimana: s = jarak objek dengan sensor (cm) V = kecepatan suara (340 m/s) t = waktu pantul ultrasonik (s)


(35)

Gambar 3.3 Rangkaian Sensor Ultrasonik

3.1.5 Perancangan Rangkaian Mikrokontroler ATMega8535

Mikrokontroller adalah bagian rangkaian yang berfungsi mengendalikan sistem secara keseluruhan yaitu membaca input dari sensor, mengkalkulasikan jarak dan memutuskan jika harus mengeluarkan suatu output peringatan atau isyarat. Mikrokontroller yang digunakan dalam rancangan adalah AVR ATMega8535. Mikrokontroller tersebut diprogram dengan bahasa C yaitu CV AVR 2.04. Mikrokontroller membaca input melalui port D yaitu PD.0 dan PD.1 sedangkan output mikrokontroller diprogram pada port B yaitu PB.0. Kristal pada pin 12 dan 13 berfungsi sebagai masukan pulsa clock, sedangkan resistor pada pin 9 berfungsi sebagai riset awal saat mikrokontroller diaktifkan. Mikrokontroller akan membaca sensor dengan cara mendeteksi waktu pancar gelombang ultrasonic dan diterimanya kembali gelombang tersebut yaitu dengan mendeteksi pulsa atau logika yang diberikan oleh sensor saat diterimanya gelombang ultrasonic pantulan. Mikrokontroller mengeluarkan output dengan cara memberikan logika 1 pada penguat untuk mengaktifkan buzzer.


(36)

Gambar 3.4 Konfigurasi Pin ATmega8535

3.1.6 Perancangan Rangkaian Penguat

Yang dimaksud dengan penguat dalam rangkaian ini adalah rangkaian penguat arus yaitu rangkaian yang berfungsi menguatkan arus agar dapat mengendalikan beban yang lebih besar. Penguat arus terdiri dari sebuah transistor dan sebuah resistor. Transistor dikonfigurasikan sebagai penguat common emitor dan bekerja pada daerah on-off dengan memberikan logika 1 pada basis akan menyebabkan transistor jenuh karena mendapat bias positif sehingga arus akan terputus. Tipe transistor dalam rangkaian adalah BD139 yaitu transistor NPN (Negatif Positif Negatif) dengan arus 1 ampere.

3.1.7 Perancangan Rangkaian Buzzer

Buzzer merupakan komponen output dari sistem. Buzzer akan mengeluarkan suara dengan frekuensi tertentu sebagai isyarat atau suatu sinyal


(37)

peringatan akan terjadi banir. Dalam rancangan ini digunakan buzzer tipe piezo elektrik dengan frekuensi ± 1000 Hz. Dengan memberikan arus pada buzzer menyebabkan getaran pada piezo dan mengeluarkan suara berupa bunyi dengan frekuensi 1000 Hz.

Gambar 3.5 Rangkaian Penguat dan Buzzer

3.1.8 Perancangan Rangkaian LCD Display

Display atau penampil pada rancangan adalah display LCD yaitu LCD M1632, display berfungsi menampilkan status atau pesan pada tampilan berupa karakter maupun symbol. Display dikendalikan oleh mikrokontroler melalui PORT C. hasil pengukuran jarak ditampilkan deprogram dalam mikrokontroler terdapat 8 pin. Data pada LCD yang berfungsi sebagai masukan data, 3 pin control sebagai mengendalikan LCD yaitu RS sebagai pemilih register, RW sebagai mengatur arah data dan clock sebagai signal sinkronisasi.


(38)

3.2 Skematika Rangkaian Pendeteksi Banjir


(39)

3.3Perancangan 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


(40)

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


(41)

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.


(42)

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

BahasaC 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>


(43)

#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_init(16); lcd_gotoxy(0,0);


(44)

lcd_gotoxy(0,1);

lcd_putsf(" DETEKSI BANJIR"); delay_ms(2000);

Constant = 27; lcd_clear();

Merupakan perintah untuk menampilkan pesan pada display LCD.

5. PORTC.0 = 1; delay_us(20); 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 = (US*10)/Constant;}


(45)

if ( US < 2000)

Merupakan perintah untuk mengkalibrasi hitungan timer ke tinggi.

10.lcd_gotoxy(0,0);lcd_putsf("TINGGI: 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_gotoxy(8,0);

lcd_putchar(US/1000 %10 + 0x30); lcd_putchar(US/100 %10 + 0x30); lcd_putchar(US/10 %10 + 0x30); lcd_putsf(".");

lcd_putchar(US %10 + 0x30);

Perintah menampilkan jarak yang terukur ke display LCD.

13.delay_ms(100); PORTB.1 = 0; delay_ms(500); PORTB.1 = 1;}


(46)

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.


(47)

BAB 4

ANALISA PROGRAM

4.1Pengujian 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_init(16); lcd_gotoxy(0,0);

lcd_putsf(" SISTEM ALARM"); lcd_gotoxy(0,1);

lcd_putsf(" DETEKSI BANJIR"); delay_ms(2000);

Constant = 27; lcd_clear();

3. Pengujian program pembaca sensor ultrasonik


(48)

delay_us(20); 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 = (US*10)/Constant;}

if ( US >= 1000) {US = (US/Constant)*10;} if ( US < 2000){

5. Pengujian program untuk menampilkan data tinggi pada LCD.

lcd_gotoxy(0,0);lcd_putsf("TINGGI: CM");

US = 198 - US; if (US < 0){US = 0;}

if ( US > 50 ) {PORTB.0 = 1;}else{PORTB.0 = 0;}

lcd_gotoxy(8,0);


(49)

lcd_putchar(US/100 %10 + 0x30); lcd_putchar(US/10 %10 + 0x30); lcd_putsf(".");

lcd_putchar(US %10 + 0x30);

6. Program untuk menunda waktu

delay_ms(100); PORTB.1 = 0; delay_ms(500); 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 main(void) {


(50)

DDRA=0x00;

PORTB=0x00; DDRB=0x0F;

PORTC=0x02; DDRC=0x01;

PORTD=0xFF; DDRD=0x00;

lcd_init(16); lcd_gotoxy(0,0);

lcd_putsf(" SISTEM ALARM"); lcd_gotoxy(0,1);

lcd_putsf(" DETEKSI BANJIR"); delay_ms(2000);

Constant = 27; lcd_clear(); while (1) {

PORTC.0 = 1; delay_us(20); PORTC.0 = 0;


(51)

TCNT1=0;

while (PINC.1 == 0){};

TCCR1B=0x02;

while ((PINC.1 == 1) && !(TIFR & 0x80)); TCCR1B=0x00; US = TCNT1;

if ( US < 1000 ) {US = (US*10)/Constant;}

if ( US >= 1000) {US = (US/Constant)*10;} if ( US < 2000){

lcd_gotoxy(0,0);lcd_putsf("TINGGI: CM");

US = 198 - US; if (US < 0){US = 0;}

if ( US > 50 ) {PORTB.0 = 1;}else{PORTB.0 = 0;}

lcd_gotoxy(8,0);

lcd_putchar(US/1000 %10 + 0x30); lcd_putchar(US/100 %10 + 0x30); lcd_putchar(US/10 %10 + 0x30); lcd_putsf(".");


(52)

lcd_putchar(US %10 + 0x30);

delay_ms(100); PORTB.1 = 0; delay_ms(500); 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.


(53)

4.3 Pengukuran Rangkaian Mikrokontroller ATMega8535 Tabel 4.1 Hasil Pengukuran Tegangan Pin Mikrokontroller

Pin Tegangan Pin (Volt)

1 0

2 4,9

3 0

4 0

5 1,48

6 1,46

7 1,46

8 1,46

9 4,96

10 4,97

11 0

12 0,78

13 0,95

14 4,94

15 4,94

16 4,94

17 4,94

18 4,94

19 4,94


(54)

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 0

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.4Pengukuran Tegangan Catu Daya


(55)

4.5Pengukuran Tegangan Regulator

Hasil pengukuran tegangan regulator yaitu 4,97 Volt

4.6Pengukuran Pulsa Keluaran Sensor PING

Tabel 4.2 Hasil Pengukuran Pulsa Keluaran Sensor Ping

Jarak Lebar Pulsa Tegangan Pulsa Gambar

16 cm 0.96 ms 4.8 Volt Gambar 1

14 cm 0.78 ms 4.8 Volt Gambar 2

12 cm 0.64 ms 4.8 Volt Gambar 3

10 cm 0.48 ms 4.8 Volt Gambar 3

8 cm 0.4 ms 4.8 Volt Gambar 4

4.6.1 Tampilan Grafik Pengukuran Pulsa Keluaran Sensor Ping

1. Tampilan grafik dengan jarak 16 cm

Gambar 4.1 Grafik Jarak 16 cm


(56)

Gambar 4.2 Grafik Jarak 14 cm

3. Tampilan grafik dengan jarak 12 cm

Gambar 4.3 Grafik Jarak 12 cm

4. Tampilan grafik dengan jarak 10 cm

Gambar 4.4 Grafik Jarak 10 cm


(57)

Gambar 4.5 Grafik Jarak 8 cm

4.6.2 Analisa Perhitungan Pengukuran Pulsa Sensor PING

Dari data hasil pengukuran pulsa sensor ping, dapat diperoleh analisa data

dengan rumus: S = V× t 1000 2

Dimana : S = Jarak objek (cm) V = Kecepatan suara (Volt) t = Waktu (s)

a. Jarak 16 cm s1 =

v.t 2

s1 =

340 m /s ×0,96 1000 s 2

s1 = 0,1632 m

s1 = 16,32 cm

b. Jarak 14 cm s2 =

v.t 2

s2 =

340 m /s ×0,78 1000 s 2

s2 = 0,1326 m


(58)

c. Jarak 12 cm s3 =

v.t 2

s3 =

340 m /s ×0,64 1000 s 2

s3 = 0,1088 m

s3 = 10,88 cm

d. Jarak 10 cm s4 =

v.t 2

s4 =

340 m /s ×0,48 1000s 2

s4 = 0,816 m

s4 = 8,16 cm

e. Jarak 8 cm s5 =

v.t 2

s5 =

340 m /s × 0,4 1000 s 2

s5 = 0,68 m

s5 = 6,8 cm

4.7Pengukuran Persentase Error

Tabel 4.3 Hasil Pengukuran Persentase Error

Jarak Terukur (cm) Jarak Terhitung (cm) % Error

16 16.32 2 %

14 13.26 5.2 %

12 10.88 9.3 %

10 8.16 18,4 %


(59)

4.7.1 Analisa Perhitungan Persentase Error

Dari data hasil pengukuran persentase error, dapat diperoleh analisa data dengan rumus: % error = jarak terukur −jarak terhitung

jarak terukur × 100%

a. Jarak 16 cm % error = 16−16,32

16 × 100%

= 2%

b. Jarak 14 cm % error = 14−13,26

14 × 100%

= 5,2%

c. Jarak 12 cm % error = 12−10,88

12 × 100%

= 9,3%

d. Jarak 10 cm % error = 10−8,16

10 × 100%

= 18,4%

e. Jarak 8 cm % error = 8−6,8

8 × 100%


(60)

BAB 5

KESIMPULAN DAN SARAN

5.1Kesimpulan

Melalui data hasil pengukuran dan pengujian, dapat diambil beberapa kesimpulan yaitu:

1. Pada pengujian sensor, persentase error dapat disebutkan oleh perubahan kecepatan suara yang diakibatkan oleh suhu udara maupun tekanan udara sehingga hasil pengukuran dapat menyimpang.

2. Penyebab kesalahan sensor juga dapat diakibatkan oleh bentuk objek yang memantulkan suara, karena cara kerja sensor adalah mendeteksi pantulan ultrasonik dari objek sehingga jika bentuk permukaan objek pemantul sangat mempengaruhi hasil pengukuran.

3. Bahasa C (CV AVR 2.04) dapat digunakan sebagai software untuk ATMega8535 sebagai monitoring ketinggian air.

4. Mikrokontroller ATMega8535 dapat digunakan untuk mendeteksi banjir berdasarkan kenaikan tinggi air.

5.2 Saran

1. Rancangan dapat dikembangkan menjadi sistem deteksi dini banjir akibat luapan air sungai maupun bendungan, yaitu dengan mengembangkan sistem dengan sensor khusus.

2. Rancangan dapat dilengkapi dengan sistem pemantau online yang dapat dipantau oleh BMKG sehingga bahaya banjir massal dapat diminimalisir.


(61)

DAFTAR PUSTAKA

Bejo, Agus. 2008. C Dan AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroller ATmega 8535. Edisi Pertama. Cetakan Pertama. Yogyakarta: Graham ilmu.

Iswanto, 2008. Design Dan Implementasi Sistem Embedded Mikrokontroller ATMega8535 Dengan Bahasa Basic. Edisi Pertama. Cetakan Pertama. Jogjakarta: Gava Media.

Woollard, Barry. 2003. Elektronika Praktis. Cetakan Kelima. Jakarta: Pradnya Paramita.

Diakses tanggal 20 Juni 2014

Diakses tanggal 20 Juni 2014

Diakses tanggal 20 Juni 2014


(1)

Gambar 4.2 Grafik Jarak 14 cm

3. Tampilan grafik dengan jarak 12 cm

Gambar 4.3 Grafik Jarak 12 cm

4. Tampilan grafik dengan jarak 10 cm

Gambar 4.4 Grafik Jarak 10 cm


(2)

Gambar 4.5 Grafik Jarak 8 cm

4.6.2 Analisa Perhitungan Pengukuran Pulsa Sensor PING

Dari data hasil pengukuran pulsa sensor ping, dapat diperoleh analisa data dengan rumus: S = V×

t 1000

2

Dimana : S = Jarak objek (cm) V = Kecepatan suara (Volt) t = Waktu (s)

a. Jarak 16 cm s1 = v.t 2

s1 = 340 m /s ×

0,96 1000 s

2

s1 = 0,1632 m s1 = 16,32 cm

b. Jarak 14 cm s2 = v.t 2

s2 = 340 m /s ×

0,78 1000 s

2

s2 = 0,1326 m s2 = 13,26 cm


(3)

c. Jarak 12 cm s3 = v.t

2

s3 = 340 m /s ×

0,64 1000 s

2

s3 = 0,1088 m s3 = 10,88 cm

d. Jarak 10 cm s4 = v.t

2

s4 = 340 m /s ×

0,48 1000s

2

s4 = 0,816 m s4 = 8,16 cm

e. Jarak 8 cm s5 = v.t

2

s5 = 340 m /s ×

0,4 1000 s

2

s5 = 0,68 m s5 = 6,8 cm

4.7Pengukuran Persentase Error

Tabel 4.3 Hasil Pengukuran Persentase Error

Jarak Terukur (cm) Jarak Terhitung (cm) % Error

16 16.32 2 %

14 13.26 5.2 %

12 10.88 9.3 %

10 8.16 18,4 %


(4)

4.7.1 Analisa Perhitungan Persentase Error

Dari data hasil pengukuran persentase error, dapat diperoleh analisa data dengan rumus: % error = jarak terukur −jarak terhitung

jarak terukur × 100%

a. Jarak 16 cm % error = 16−16,32

16 × 100%

= 2%

b. Jarak 14 cm % error = 14−13,26

14 × 100%

= 5,2%

c. Jarak 12 cm % error = 12−10,88

12 × 100%

= 9,3%

d. Jarak 10 cm % error = 10−8,16

10 × 100%

= 18,4%

e. Jarak 8 cm % error = 8−6,8

8 × 100% = 15%


(5)

BAB 5

KESIMPULAN DAN SARAN

5.1Kesimpulan

Melalui data hasil pengukuran dan pengujian, dapat diambil beberapa kesimpulan yaitu:

1. Pada pengujian sensor, persentase error dapat disebutkan oleh perubahan kecepatan suara yang diakibatkan oleh suhu udara maupun tekanan udara sehingga hasil pengukuran dapat menyimpang.

2. Penyebab kesalahan sensor juga dapat diakibatkan oleh bentuk objek yang memantulkan suara, karena cara kerja sensor adalah mendeteksi pantulan ultrasonik dari objek sehingga jika bentuk permukaan objek pemantul sangat mempengaruhi hasil pengukuran.

3. Bahasa C (CV AVR 2.04) dapat digunakan sebagai software untuk ATMega8535 sebagai monitoring ketinggian air.

4. Mikrokontroller ATMega8535 dapat digunakan untuk mendeteksi banjir berdasarkan kenaikan tinggi air.

5.2 Saran

1. Rancangan dapat dikembangkan menjadi sistem deteksi dini banjir akibat luapan air sungai maupun bendungan, yaitu dengan mengembangkan sistem dengan sensor khusus.

2. Rancangan dapat dilengkapi dengan sistem pemantau online yang dapat dipantau oleh BMKG sehingga bahaya banjir massal dapat diminimalisir.


(6)

DAFTAR PUSTAKA

Bejo, Agus. 2008. C Dan AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroller ATmega 8535. Edisi Pertama. Cetakan Pertama. Yogyakarta: Graham ilmu.

Iswanto, 2008. Design Dan Implementasi Sistem Embedded Mikrokontroller ATMega8535 Dengan Bahasa Basic. Edisi Pertama. Cetakan Pertama. Jogjakarta: Gava Media.

Woollard, Barry. 2003. Elektronika Praktis. Cetakan Kelima. Jakarta: Pradnya Paramita.

Diakses tanggal 20 Juni 2014

Diakses tanggal 20 Juni 2014

Diakses tanggal 20 Juni 2014