TUGAS AKHIR
DEBBY ZAMHARIRO
112408018
TUGAS AKHIR
DEBBY ZAMHARIRO
112408018
ULTRASONIK BERBASIS
MIKROKONTROLLER ATMEGA8535
Departemen : FISIKA
UTARA
Diluluskan di
Disetujui Oleh:
Ketua, Pembimbing,
TUGAS AKHIR
Saya mengakui bahwa tugas akhir ini adalah hasil karya sendiri. Kecuali beberapa
DEBBY ZAMHARIRO
112408018
Puji dan syukur penulis panjatkan kepada Allah SWT yang Maha Pengasih
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
Fisika stambuk 2011 yang telah membantu dalam menyelesaikan tugas akhir ini.
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.
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
Daftar Pustaka 50
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.
PENDAHULUAN
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
mengalami banjir. Banjir menimbulkan kerugian bagi mereka yang terkena banjir
baik secara langsung maupun tidak langsung. Dampak banjir memang luar biasa.
kerugian akibat banjir dapat sedikit dikurangi bila ada peringatan dini banjir,
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
ultrasonic.
permukaan air sehingga pendeteksian tidak perlu dilakukan dengan kontak fisik
ultrasonik.
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
3. Studi awal dalam merancang suatu alat instrumentasi cerdas alat untuk
pengendali sistem.
ketinggian.
atap otomatis, maka penulis menulis laporan proyek ini sebagai berikut:
BAB I. PENDAHULUAN
penulisan.
Pada bagian ini akan dibahas perancangan dari alat, yaitu diagram
Pada bab ini akan dibahas hasil analisa dari rangkaian dan sistem
yang dilakukan dari tugas akhir ini serta saran apakah yang
LANDASAN TEORI
Mikrokontroler AVR (Alf and Vegard’s RISC Processor) dari Atmel ini
130 macam instruksi yang hampir semuanya dieksekusi dalam satu siklus clock.
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.
Konfigurasi pin ATMega8535 dapat dilihat pada gambar 2.2. Dari gambar di
atas dapat dijelaskan fungsi dari masing-masing pin Atmega8535 sebagai berikut:
3. Port A (PortA0 sampai PortA7) merupakan pin input/output dua arah dan
4. Port B (PortB sampai PortB7) merupakan pin input/output dua arah dan
5. Port D (PortD0 sampai PortD7) merupakan pin input/output dua arah dan
fungsi, label atau tipe data khusus. Pemberian nama sebuah pengenalan dapat
berikut:
4. Bersifat case sensitif, yaitu huruf kapital dan huruf kecil dianggap berbeda.
operator dalam pemrograman C, misalnya: void, short, const, if, static, bit,
long, case, do, switch, char, float, for, else, break, int, double, include,
while.
diperbolehkan yaitu:
Berikut ini adalah tipe-tipe data yang ada dalam bahasa C dan yang
yang berada dalam memori. Konstanta berisi data yang nilainya tetap dan tidak
dapat diubah selama program dijalankan, sedangkan variabel berisi data yang bisa
Char variabelku=0x20;
Bit variabel_bit;
Untuk pendeklarasian tipe yang berupa bilangan bulat yaitu chart, int,
short dan long dapat ditambahkan signed atau unsigned. Signed digunakan untuk
digunakan, dalam hal ini adalah untuk mendefinisikan jenis mikrokontroler yang
register dan penamaannya dilakukan pada file lain yang disisipkan dalam program
2.2.5 Pernyataan
Pernyataan adalah satu buah instruksi lengkap yang berdiri sendiri. Berikut
0x0F ke Port C.
disebut dengan blok pernyataan. Satu blok pernyataan ditandai dengan tanda ‘{‘
PORTA=0x00; //pernyataan_1
PORTB=0x0F; //pernyataan_2
PORTC=0xFF; //pernyataan_2
tertentu dan sengaja disediakan untuk menangani berbagai hal dengan cara
melainkan dalam bentuk yang telah dikompilasi. Pada saat proses linking, kode-
2.2.8 Pernyataan if
terhadap dua buah kemungkinan yaitu mengerjakan suatu blok pernyataan atau
if (kondisi)
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
if (kondisi)
Else
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
blok pernyataan secara terus menerus selama kondisi tertentu masih terpenuhi.
while (kondisi)
Jika pernyataan yang akan diulang hanya berupa sebuah pernyataan saja
.....
while (a<10)
PORTC=a;
a++;
ulang. Setiap kali pengulangan nilai a akan bertambah 1 dan sebuah nilai a
Fungsi dasar ini disebut dengan fungsi utama dan memiliki kerangka program
sebagai berikut:
//pernyataan-pernyataan
Jika kita memiliki beberapa fungsi yang lain maka fungsi utama inilah
sehingga setiap kali program dijalankan akan selalu dimulai dari memanggil
fungsi utama terlebih dahulu. Fungsi-fungsi yang lain dapat dipanggil setelah
DDRA = A;
DDRB = B;
DDRC = C;
DDRD = D;
karena terdapat versi evaluasi yang disediakan secara gratis walaupun dengan
Salah satu kelebihan dari CodeVision AVR adalah tersedianya fasilitas untuk
demikian CodeVision ini selain dapat berfungsi sebagai software kompiler juga
Pada dasanya, Sensor PING terdiri dari sebuah chip pembangkit sinyal
Gelombang ultrasonik melalui udara dengan kecepatan 344 meter per detik,
output high pada 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
2.6 Buzzer
getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja buzzer hampir
pada diafragma dan kemudian kumparan tadi akan tertarik dalam atau keluar,
tergantung dari arus dan polaritas magnetnya, karena kumparan dipasang pada
Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi
Catu daya digunakan untuk memberi kebutuhan arus dan tegangan pada
rangkaian. Catu daya terdiri dari beberapa bagian, yaitu: Jala-Jala Listrik,
tegangan searah (DC). Filter pada catu daya akan meminimalisir tegangan kerut
beban tidak lagi tergantung pada arus yang mengalir dari tegangan jala-jala listrik.
terminalnya berturut-turut disebut emitor, base dan kolektor. Base selalu berada di
tengah, di antara emitor dan kolektor. Beberapa fungsi transistor sebagai saklar
RANCANGAN SISTEM
perancangan fisik dari sensor dan perancangan PCB dari rangkaian. Untuk
perancangan PCB, akan dibuat sebuah rangkaian yang memiliki fitur-fitur yang
LCD
Mikrokontroler
Jarak tinggi air Sensor
ATmega8535
Buzzer Suara
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
bekerja membaca ketinggian air melalui sensor ultrasonik pada keadaan tertentu
isyarat melalui output suara yaitu buzzer sebagai isyarat kemungkinan atau akan
terjadi banjir dan display LCD yang menampilkan pesan atau jarak yang terukur.
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
Inisialisasi LCD,
isi nilai awal port
Trigger / picu
sensor ultrasonik
Ya Sinyal pantulan
diterima?
Kalkulasi jarak
ketinggian air
Aktifkan buzzer
End
mikrokontroller. Rancangan terdiri dari beberapa bagian utama antara lain yaitu:
1. Sensor
2. Mikrokontroller
3. Penguat
4. Buzzer.
5. Display LCD
Pada rancangan ini menggunakan sensor jarak sensor jarak yaitu sensor
ultrasonic. Tipe sensor ultrasonic yaitu SR 04. Cara kerja sensor pada rangkaian
selisih waktu dan dengan mengetahui kecepatan suara kecepatan suara diudara
t
maka dapat dihitung jarak objek dengan sensor. Dengan persamaan: s = V × 2 .
jarak dan memutuskan jika harus mengeluarkan suatu output peringatan atau
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
pulsa atau logika yang diberikan oleh sensor saat diterimanya gelombang
penguat arus yaitu rangkaian yang berfungsi menguatkan arus agar dapat
mengendalikan beban yang lebih besar. Penguat arus terdiri dari sebuah transistor
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
mengeluarkan suara dengan frekuensi tertentu sebagai isyarat atau suatu sinyal
elektrik dengan frekuensi ± 1000 Hz. Dengan memberikan arus pada buzzer
menyebabkan getaran pada piezo dan mengeluarkan suara berupa bunyi dengan
Display atau penampil pada rancangan adalah display LCD yaitu LCD
M1632, display berfungsi menampilkan status atau pesan pada tampilan berupa
terdapat 8 pin. Data pada LCD yang berfungsi sebagai masukan data, 3 pin
Pemrograman pada mikrokontroler ini akan didesain dengan tujuan agar dapat
kondisi yang ada. Sedangkan aplikasi program pada PC, didesain agar aplikasi
program berjalan dengan baik pada mikrokontroler dan dapat mengolah data
2. Buka atau jalankan CV AVR 2.04 kemudian buka file baru dari file pilih new
3. Pilih project lalu pilih yes, maka muncul pilihan untuk menggunakan Code
8. Untuk mengenerate programpilih File kemudian pilih Generate, Save and Exit
10. Setelah file tersimpan menu editor akan terbuka dan siap untuk penulisan.
12. Setelah selesai program ditulis, saatnya untuk mengcompile program menjadi
kesalahan dengan nomor baris letak kesalahan dengan nomor baris letak
kesalahan.
14. Jika kompilasi berhasil tanpa error, program dapat dilanjutkan dengan proses
menu dan jika proses pengunduhan berhasil maka program dapat diuji coba
langsung ke rangkaian.
1. #include <alcd.h>
#include <mega8535.h>
#include <delay.h>
3. PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x0F;
PORTC=0x02;
DDRC=0x01;
PORTD=0xFF;
DDRD=0x00;
4. lcd_init(16);
lcd_gotoxy(0,0);
delay_ms(2000);
Constant = 27;
lcd_clear();
5. PORTC.0 = 1;
delay_us(20);
PORTC.0 = 0;
6. TCNT1=0;
Perintah Mendeteksi signal dari sensor yaitu logika 1 sebagai pulsa start.
8. TCCR1B=0x02;
TCCR1B=0x00;
US = TCNT1;
12. lcd_gotoxy(8,0);
lcd_putsf(".");
13. delay_ms(100);
PORTB.1 = 0;
delay_ms(500);
PORTB.1 = 1;}
Perintah untuk menunda waktu selama 100 mili detik dan 500 mili detik.
ANALISA PROGRAM
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;
lcd_init(16);
lcd_gotoxy(0,0);
lcd_gotoxy(0,1);
delay_ms(2000);
Constant = 27;
lcd_clear();
PORTC.0 = 1;
PORTC.0 = 0;
TCNT1=0;
TCCR1B=0x02;
TCCR1B=0x00;
US = TCNT1;
if ( US < 2000){
lcd_gotoxy(0,0);lcd_putsf("TINGGI: CM");
US = 198 - US;
lcd_gotoxy(8,0);
lcd_putsf(".");
delay_ms(100);
PORTB.1 = 0;
delay_ms(500);
PORTB.1 = 1;}
#include <alcd.h>
#include <mega8535.h>
#include <delay.h>
#include <stdio.h>
void main(void)
PORTA=0x00;
PORTB=0x00;
DDRB=0x0F;
PORTC=0x02;
DDRC=0x01;
PORTD=0xFF;
DDRD=0x00;
lcd_init(16);
lcd_gotoxy(0,0);
lcd_gotoxy(0,1);
delay_ms(2000);
Constant = 27;
lcd_clear();
while (1)
PORTC.0 = 1;
delay_us(20);
PORTC.0 = 0;
TCCR1B=0x02;
TCCR1B=0x00;
US = TCNT1;
if ( US < 2000){
lcd_gotoxy(0,0);lcd_putsf("TINGGI: CM");
US = 198 - US;
lcd_gotoxy(8,0);
lcd_putsf(".");
delay_ms(100);
PORTB.1 = 0;
delay_ms(500);
PORTB.1 = 1;}
bahasa C, dimana program diuji langsung pada alat atau rangkaian sistem.
Hal yang diperoleh dari pengujian program adalah bahwa sensor memberikan
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
3 cm. jadi uji coba tersebut dapat disimpulkan bahwa rancangan program telah
berjalan dengan baik yaitu memberikan output yang diinginkan sesuai dengan
kondisi input.
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
20 4,94
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
Dari data hasil pengukuran pulsa sensor ping, dapat diperoleh analisa data
t
V×
1000
dengan rumus: S=
2
t = Waktu (s)
v.t
a. Jarak 16 cm s1 = 2
0,96
340 m/s × s
1000
s1 = 2
s1 = 0,1632 m
s1 = 16,32 cm
v.t
b. Jarak 14 cm s2 = 2
0,78
340 m/s × s
1000
s2 = 2
s2 = 0,1326 m
s2 = 13,26 cm
0,64
340 m/s × s
1000
s3 = 2
s3 = 0,1088 m
s3 = 10,88 cm
v.t
d. Jarak 10 cm s4 = 2
0,48
340 m/s × s
1000
s4 = 2
s4 = 0,816 m
s4 = 8,16 cm
v.t
e. Jarak 8 cm s5 = 2
0,4
340 m/s × s
1000
s5 = 2
s5 = 0,68 m
s5 = 6,8 cm
16 16.32 2%
14 13.26 5.2 %
12 10.88 9.3 %
10 8.16 18,4 %
8 6.8 15
Dari data hasil pengukuran persentase error, dapat diperoleh analisa data
16−16,32
a. Jarak 16 cm % error = 16
× 100%
= 2%
14−13,26
b. Jarak 14 cm % error = 14
× 100%
= 5,2%
12−10,88
c. Jarak 12 cm % error = 12
× 100%
= 9,3%
10−8,16
d. Jarak 10 cm % error = 10
× 100%
= 18,4%
8−6,8
e. Jarak 8 cm % error = 8
× 100%
= 15%
5.1 Kesimpulan
kesimpulan yaitu:
kecepatan suara yang diakibatkan oleh suhu udara maupun tekanan udara
2. Penyebab kesalahan sensor juga dapat diakibatkan oleh bentuk objek yang
5.2 Saran
Paramita.
http://daytronika.blogspot.com/2011/06/mikrokontroler-atmega-8535.html
http://www.scribd.com/doc/Implementasi-Mikrokontroler-ATmega8535
http://www.share-pdf.com/JURNAL/TUGAS/Akhir.htm