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
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
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)
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
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
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.
DAFTAR ISI
Bab 1 Pendahuluan 1.1 Latar Belakang 1
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
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
3.1.4 Perancangan Rangkaian Sensor 23
3.1.5 Perancangan Rangkaian Mikrokontroler ATMega8535 24
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
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
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
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.
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.
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.
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
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
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
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
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.
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 ‘+’)
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
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
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
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:
{
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
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
}
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
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
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;
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.
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)
//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
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
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
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
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
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
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
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)
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
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
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.
3.2 Skematika Rangkaian Pendeteksi Banjir
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
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
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.
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 <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;
Perintah diatas merupakan perintah merupakan perintah untuk
menginisialisasi port dan mengisi nilai awal port.
4. lcd_init(16);
lcd_gotoxy(0,0);
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;}
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;}
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
BAB 4
ANALISA PROGRAM
4.1Pengujian Program Mikrokontroler ATMega8535
1. Pengujian Program untuk menginisialisasi port dan mengisi nilai awal port.
PORTA=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
delay_us(20);
PORTC.0 = 0;
TCNT1=0;
while (PINC.1 == 0){};
4. Pengujian program timer
TCCR1B=0x02;
5. Pengujian program untuk menampilkan data tinggi pada LCD.
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>
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);
lcd_putchar(US %10 + 0x30);
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
4.3 Pengukuran Rangkaian Mikrokontroller ATMega8535
Tabel 4.1 Hasil Pengukuran Tegangan Pin Mikrokontroller
Pin Tegangan Pin (Volt)
21 4,93
4.4Pengukuran Tegangan Catu Daya
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
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
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
c. Jarak 12 cm s3 =
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.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%
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
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