ABSTRACT Filling the water tank manually forcing people to remain vigilant in monitoring levels of height and decrease the water level. Often people forget to turn off the pump when the water is full of water, so that there wasted and indirectly will result in wastage of water. If this continues to happen then it could be considered less effective and less efficient because if it is used in industry can result in losses. To be able to create automated systems and the use of water can continue to be monitored on a regular basis then used SRF04 ultrasonic sensors for detecting water level readings. Furthermore, the readings are processed and converted in the microcontroller and displayed on the LCD and the output will control the pump to drain the water and off the water in the water tank through a relay. Keywords: water level, SRF04, Microcontroller
xviii
BAB I PENDAHULUAN A. Latar Belakang dan Permasalahan Di era globalisasi ini perkembangan teknologi berkembang begitu pesat seiring dengan kemajuan pola pikir sumber daya manusia yang semakin maju. Keinginan untuk selalu menciptakan suatu hasil karya mengalami perubahan secara bertahap yang bersifat kompetitif agar dapat menciptakan kemudahan bagi manusianya sendiri yang di dukung dengan perangkat - perangkat canggih. Kondisi tersebut menginspirasi penulis selaku mahasiswa untuk menciptakan suatu produk yang bersifat ekonomis dan efisien dengan hasil yang bersifat kualitatif. Hal itu tidak akan tercapai apabila suatu industri masih menggunakan sistem manual yang mayoritas menggunakan jasa tenaga kerja manusia. Dalam kehidupan sehari – hari, manusia sering melakukan pengukuran terhadap ketinggian air. Misalnya dalam suatu pabrik yang memiliki tangki – tangki penyimpanan air yang harus selalu terpantau volumenya atau ketinggian permukannya. Contoh lainnya pada Stasiun Pengisian Bahan Bakar Umum (SPBU) yaitu untuk mengetahui seberapa banyak Bahan Bakar Minyak (BBM) yang masih tersisa di dalam tangki. Dalam rumah tangga terkadang juga membutuhkan dalam pengukuran ketinggian air misalkan untuk mengetahui isi penampungan air yang dimiliki. Untuk memantau ketinggian air ini ada beberapa cara, dari cara tradisional dan cara modern. Sebelum ditemukannya suatu cara modern, manusia menggunakan semacam tongkat panjang atau galah untuk mendeteksi nilai ketinggian air. Cara tradisional ini memiliki kelemahan yaitu untuk mengukur ketinggian air membutuhkan waktu yang lama karena masih dilakukan secara manual selain itu hasil perhitungan terkadang kurang akurat dan pengukuran dengan cara ini juga tidak dapat dilakukan secara terus menerus karena faktor keterbatasan fisik yang ada pada manusia.
1
2
Dengan metode modern yang memanfaaatkan teknologi ada beberapa cara untuk mengukur ketinggian air tersebut diantaranya yaitu pertama dengan menanamkan sensor elektroda pada dinding tangki dengan jarak tertentu. Saat air menyentuh elektroda tersebut maka akan terdeteksi dengan sistem konduktifitas. Namun cara ini memiliki kelemahan yaitu elektroda yang diletakkan didalam air akan ikut terkontaminasi dengan air dalam tangki. Hal ini tentunya sangat berbahaya apabila digunakan untuk kebutuhan sehari-hari dalam rumah tangga terutama untuk dikonsumsi karena air berpotensi mengandung bahan logam. Cara kedua yaitu menggunakan pelampung/ bandul yang digantungkan pada relai, sehingga saat air kosong maka bandul akan menarik relai untuk tertutup dan pompa akan hidup, sedangkan saat air penuh maka bandul akan mengambang dan relai terbuka maka pompa akan mati. Namun pada sistem yang sudah ada sekarang masih ada beberapa kelemahan yaitu apabila menggunakan bandul maka berpotensi muncul lumut pada bandul, mengandung bahan kimia, bahkan tali bandul pun tidak awet karena cepat jamuran sehingga mudah putus. Cara lainnya yaitu dengan menggunakan sensor ultrasonik yang di pasang di atas tangki. Sensor tersebut mendeteksi jarak dari sensor ke permukaan air sehingga pendeteksian tidak perlu dilakukan dengan kontak fisik antara sensor dengan permukaan air dan dalam hal ini aman untuk penggunaan air yang dikonsumsi sehari – hari. Dari ketiga cara tersebut yang paling efektif adalah menggunakan sensor ultrasonik untuk pendeteksiannya. Dengan sensor ultrasonik tersebut tingkat pendeteksian akan menunjukkan hasil yang lebih akurat dan ketelitian yang tinggi. Dengan adanya kasus ini penulis mencoba memberikan sebuah inovasi berupa “Otomatisasi Profil Tank Dengan Water Level Berbasis Mikrokontroler Menggunakan Sensor Ultrasonik”.
3
B. Tujuan dan Manfaat Proyek Akhir Adapun maksud dan tujuan dari pembuatan proyek akhir ini adalah sebagai berikut : 1. Untuk menerapkan ilmu yang dipelajari di bangku perkuliahan secara nyata dan aplikatif. 2. Merancang dan mengimplementasikan rangkaian sensor ultrasonik SRF04 dengan Mikrokontroler ATMega16 dalam ruang tertutup sebagai pengganti pelampung/ bandul pada sistem yang lama. 3. Membangun otomatisasi pengisian air yang lebih modern dengan tampilan level air. 4. Membuat sebuah inovasi untuk membantu masyarakat serta industri dalam
pengembangan
teknologi
untuk
mempermudah
proses
pengisian air pada profil tank serta penghematan biaya listrik dengan tampilan level air. C. Tinjauan Pustaka Tinjauan pustaka berisi penelitian-penelitian sebelumnya yang memiliki kaitan dengan topik penelitian yang ditulis, diantaranya : a. Dalam Laporan Tugas Akhir : Sistem Monitoring Level Ketinggian Air Dengan Tampilan Output Pada Situs Jejaring Sosial Twitter Untuk Peringatan Dini Bahaya Banjir Oleh Eko Waluyo Jati (2013) menyatakan Sensor SRF04 adalah modul yang berisi transmitter dan receiver ultrasonic, yang dapat digunakan untuk mengukur jarak. Modul ini mengukur jarak dengan cara menghitung selisih waktu antara saat pemancaran sinyal dan saat penerimaan sinyal pantul. b. Mokh. Sholihul Hadi (2004) menyatakan bahwa
AVR ATMega16
merupakan seri mikrokontroler CMOS 8-bit buatan Atmel, berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, dan mode power saving, ADC dan PWM internal.
4
D. Batasan Masalah Pembatasan masalah diperlukan untuk mempermudah pelaksanaan maupun penulisan proyek akhir sehingga tidak menyimpang dari judul proyek akhir. Lingkup pembatasan masalah dalam laporan proyek akhir ini hanya dibatasi pada: 1. Perancangan program mikrokontroler menggunakan Bahasa C. 2. Cara kerja alat yang dibagi dalam beberapa sistem diantaranya rangkaian catu daya, sistem minimum mikrokontroler, sensor ultrasonik dan penampil. 3. Perancangan mekanik secara keseluruhan. 4. Pembacaan jarak sensor SRF04 mencakup 3 cm sampai 3 meter. E. Metodologi Metode-metode yang digunakan dalam pembuatan proyek akhir ini adalah sebagai berikut: 1. Menentukan tujuan dan batasan masalah dengan melihat faktor-faktor dan sistem lain yang bermanfaat bagi pengembangan sistem pada proyek akhir. 2. Melakukan kajian dan pembelajaran lebih lanjut tentang sistem yang dibahas pada proyek akhir ini dengan metode: Studi Literatur yaitu mempelajari karakteristik sensor ultrasonik untuk pembacaan level air, pemograman alat menggunakan bahasa C serta cara kerja alat yang dapat diperoleh melalui beberapa sumber seperti artikel, makalah, jurnal, karya tulis, serta buku-buku yang terkait sesuai topik yang dibahas, untuk kemudian dijadikan sebagai acuan dan referensi dalam merancang dan membuat penelitian ini. 3. Mengembangkan sistem yang terdiri dari dua bagian, yaitu: a. Perangkat Keras (Hardware) Meliputi pembuatan desain rangkaian skematik dan PCB minimum sistem mikrokontroler ATMega16, rangkaian catu daya, rangkaian penampil dan driver relay dengan software proteus 7.0. b. Perangkat Lunak (Software) Meliputi pembuatan program untuk mikrokontroler ATMega16 dengan software Codevision AVR menggunakan bahasa C.
5
4. Setelah sistem dirancang, selanjutnya direalisasikan secara keseluruhan yang meliputi beberapa bagian, yaitu bagian catu daya, sensor, mikrokontroler, dan penampil. 5. Sistem
yang
telah
dibuat,
diujicobakan
dan
dianalisa
dengan
mengintegrasikan semua bagian secara keseluruhan, untuk memastikan bahwa sistem telah bekerja dengan baik dan hasilnya sesuai dengan yang diinginkan. F. Sistematika Laporan Agar lebih mudah memahami isi keseluruhan dari proyek akhir ini, maka penyusunan laporan proyek akhir ini terdiri dari 5 bab diantaranya : BAB I Pendahuluan Berisi penguraian tentang latar belakang masalah yang dibahas, batasan masalah pada penelitian, tujuan dan manfaat penelitian, tinjaun pustaka metodologi yang digunakan serta sistematika penulisan laporan proyek akhir. BAB II Landasan Teori Berisi dasar teori tentang water level, sensor ultrasonik SRF04, mikrokontroler ATMega16, penampil LCD 16x2, rangkaian catu daya, modul relay, pompa air dan perangkat lunak menganai dasar-dasar pemprograman bahasa C. BAB III Perancangan Alat Berisi perancangan perangkat keras (hardware), yang meliputi rangkaian modul sensor SRF04, sistem minimum mikrokontroler ATMega16, penampil LCD 16x2, modul relay dan rangkaian catu daya serta berisi rancangan perangkat lunak (software), yaitu program untuk mikrokontroler dengan menggunakan software Codevision AVR. BAB IV Pengujian dan Pembahasan Berisi pengujian, apakah perangkat keras dan perangkat lunak yang diuji sudah sesuai dengan yang diharapkan. Selain itu juga membahas tentang hasil yang telah diperoleh dari hasil pengujian. BAB V Kesimpulan dan Saran Berisi kesimpulan dari hasil yang telah diperoleh dan memberikan saran untuk pengembangan lebih lanjut.
BAB II LANDASAN TEORI A. Water Level Seperti namanya water artinya “Air”, level artinya “Tingkat”, jadi water level adalah suatu alat/ piranti elektronika yang berfungsi sebagai alat pengatur tinggi rendahnya permukaan air. Selain itu water level, juga bisa dikatakan sebagai saklar otomatis apabila dalam penerapannya dikombinasikan dengan piranti yang dapat mendeteksi tingkat ketinggian air misalkan sensor. Penerapan sistem dengan water level banyak dijumpai pada pengisian bejana, boiler, profil tank dan lainlain. Sehingga secara keseluruhan water level merupakan sebuah rangkaian yang berfungsi untuk mengontrol kerja dari pompa air. Jika air dalam tendon habis maka pompa akan menyala, dan sebaliknya jika air dalam tendon penuh maka pompa akan mati. Dalam perkembangannya sistem water level tidak hanya dapat digunakan sebagai pengontrol kerja dari pompa air tetapi dapat digunakan sebagai penampil
ketinggian
air
dengan
level
–
level
tertentu
menggunakan
mikrokontroler sehingga dapat memantau tinggi rendahnya permukaan air tanpa harus mengukur langsung dengan mistar. Untuk satuan ukurannya tergantung dari sensor yang digunakan. Sebagai contoh jika menggunakan sensor ultrasonik SRF04 maka ukurannya dalam centimeter (cm) sedangkan jika menggunakan sensor yang lain akan berbeda. B. Sensor Ultrasonik SRF04 adalah modul yang berisi transmitter dan receiver ultrasonic, yang dapat digunakan untuk mengukur jarak. Modul ini mengukur jarak dengan cara menghitung selisih waktu antara saat pemancaran sinyal dan saat penerimaan sinyal pantul. Seperti diketahui, kecepatan rambat suara di udara adalah 34399,22 cm/ detik, berarti untuk merambat sejauh 1 cm suara membutuhkan waktu 29 mikro detik. Misalkan waktu antara pengiriman dan peneriman sinyal ultrasonik adalah 5800 mikro detik, maka jarak antara sensor dan benda (penghalang) adalah
6
7
100 cm.( 2 x 100 cm x 29 mikro-detik/cm = 5800 mikro detik). Selanjutnya untuk cara kerja sensor ultrasonik dapat dilihat pada Gambar 2.1 dibawah ini
Gambar 2.1 Ilustrasi cara kerja SRF04 SRF-04 hanya menggunakan 2 port I/O untuk berhubungan dengan mikrokontroler, sehingga sangat ideal untuk aplikasi-aplikasi robotika, SRF-04 dapat mengukur jarak mulai 3 cm sampai 3 m, dan dapat mengukur benda dengan diameter 3 cm pada jarak kurang dari 2 meter.
Gambar 2.2 kontruksi SRF04 Prinsip kerja SRF04 adalah transmitter memancarkan seberkas sinyal ultrasonik (40 KHz) yang bebentuk pulsa, kemudian jika di depan SRF04 ada objek padat maka receiver akan menerima pantulan sinyal ultrasonik tersebut. Receiver akan membaca lebar pulsa (dalam bentuk PWM) yang dipantulkan objek dan selisih waktu pemancaran. Dengan pengukuran tersebut, jarak objek di depan sensor dapat diketahui. Untuk lebih jelasnya, perhatikan gambar di bawah ini :
8
Gambar 2.3 SRF04 timing diagram Untuk mengaktifkan SRF04, mikrokontroler harus mengirimkan pulsa positif minimal 10 µS melalui pin trigger, maka SRF04 akan mengeluarkan sinyal ultrasonik sebesar 8 cycle dan selanjutnya SRF04 akan memberikan pulsa (high) 100 µS -18 mS pada outputnya tergantung pada informasi jarak pantulan objek yang diterima. Setelah gelombang pantulan terdeteksi pin echo berupa sinyal pwm dan duty cycle akan membuat output low pada pin echo. Lebar pulsa high (echo pulse) ke posisi low akan sesuai dengan lamanya waktu tempuh gelombang ultrasonik untuk 2x jarak ukur dengan obyek dan apabila tidak ada penghalang maka PO akan berlogika 1 selama kurang lebih 36 mS. Misalkan lama echo pulse adalah T, maka untuk mengetahui jaraknya dapat diketahui dengan cara membagi T dengan 58 ( T/58 )untuk satuan centimeter dan dibagi dengan 148 ( T/148 ) untuk satuan inchi. Misalkan panjang echo pulse adalah 5800 mikro detik maka jarak benda adalah 1 meter ( 5800/ 58 = 100 cm = 1 meter ). Adapun spesifikasi Sensor Ultrasonik SRF04 sebagai berikut : 1. Sumber tegangan 5 V. 2. Arus standar 30 mA, dan maksimal arus 50 mA. 3. Frekuensi 40 KHz. 4. Jangkauan jarak minimal 3cm sampai dengan jarak maksimal 3 m. 5. Sensitivitas : Mampu mendeteksi gagang sapu berdiameter 3 cm dalam jarak > 2 m 6. Input trigger 10 µs.
9
7. Echo pulse berupa sinyal positif TTL, atau sebanding dengan lebar jangkauan. C. Mikrokontroler ATMega16 Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu serpih (chip). Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa peripheral seperti pencacah/ pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi. Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR. AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard. Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny. Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya. Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu beserta
komponen
kendali
lainnya.
Berbeda
dengan
mikroprosesor,
mikrokontroler menyediakan memori dalam serpih yang sama dengen prosesornya (in chip).
1. Arsitektur ATMEGA16 Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent). Pada Gambar 2.4 menjelaskan arsitektur yang dimiliki oleh mikrokontroler ATMega16 sebagai berikut:
10
Gambar 2.4 Blok diagram fungsional ATMega16 Secara garis besar mikrokontroler ATMega16 terdiri dari : a) Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16 Mhz. b) Memiliki kapasitas memori Flash 16 Kbyte, EEPROM 512 Byte, dan SRAM 1024 byte. c) Saluran I/O 32 buah, yaitu PortA, PortB, PortC, dan PortD. d) CPU yang terdiri dari 32 buah register. e) User interupsi internal dan eksternal. f) Port antarmuka SPI dan Port USART sebagai komunikasi serial. g) Fitur Peripheral
Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare.
11
Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture.
Real time counter dengan osilator tersendiri.
Empat kanal PWM dan antarmuka komparator analog.
8 kanal, 10 bit ADC.
Byte-oriented Two-wire Serial Interface.
Watchdog timer dengan osilator internal.
2. Konfigurasi Pin ATMega16 ATMega16 memiliki 40 pin. Konfigurasi pin ATMega16 terlihat seperti Gambar 2.5 dibawah ini :
Gambar 2.5 Konfigurasi pin ATMega16 Fungsi pin - pin di mikrokontroler ATMega16 adalah sebagai berikut : a. Pin 10 (VCC ) dihubungkan ke power supply 5 volt. b. Pin 11 dan Pin 31 (GND) dihubungkan ke ground. c. Pin 29 sampai Pin 22 adalah PortC (PC7..PC0), merupakan 8-bit I/O port bidirectional dengan resistor pull-up internal (untuk setiap bit). Pin portC dalam keadaan tri-state ketika kondisi reset menjadi aktif atau clock tidak berjalan. d. Pin 33 sampai pin 40 adalah PortA (PA7..PA0), merupakan masukan
12
analog ke A/D converter. PortA juga dapat berfungsi sebagai 8-bit I/O port bidirectional, jika A/D converter tidak digunakan. e. Pin 9 (RESET) berguna untuk mereset mikrokontroler dengan logika low yang lebih lama dari minimum panjang pulsa atau clock tidak berjalan. f. Pin 13 (XTAL1) input ke inverting oscillator amplifier dan input ke clock internal. g. Pin 12 (XTAL2) output inverting oscillator amplifier. h. Pin 8 sampai Pin 1 adalah PortB (PB7..PB0), merupakan 8-bit I/O port bidirectional dengan resistor pull-up internal (untuk setiap bit). Fungsifungsi alternatif portB seperti pada Tabel 2.1 Tabel 2.1 Fungsi – fungsi alternatif pada PortB Port Pin PB0 (Pin 1)
Fungsi Alternatif T0 (Timer/Counter0 External Counter Input) XCK (USART External Clock Input/Output)
PB1 (Pin 2)
T1 (Timer/Counter1 External Counter Input)
PB2 (Pin 3)
AIN0 (Analog Comparator Positif Input) INT2 (External Interrupt 2 Input)
PB3 (Pin 4)
AIN1 (Analog Comparator Negatif Input) OCO (Timer/Counter0 Output Counter Match Output)
PB4 (Pin 5)
SS (SPI Slave Select Input)
PB5 (Pin 6)
MOSI (SPI Bus Master Output/Slave Input)
PB6 (Pin 7)
MISO (SPI Bus Master Input/Slave Output)
PB7 (Pin 8)
SCK (SPI Bus Serial Clock)
i. Pin 30 (AVCC) merupakan supply tegangan untuk pin A dan A/D converter yang sebaiknya secara eksternal tersambung ke VCC jika ADC tidak digunakan. Jika ADC digunakan sebaiknya disambung ke Vcc melalui low-pass filter. j. Pin 32 (AREF) merupakan referensi analog untuk A/D converter.
13
k. Pin 21 sampai Pin 14 adalah PortD (PD7..PD0), merupakan 8-bit I/O port bidirectional dengan resistor pull-up internal (untuk setiap bit). Fungsifungsi alternatif PortD seperti pada Tabel 2.2. Tabel 2.2 Fungsi-fungsi alternatif pada PortD Port Pin
Fungsi Alternatif
PD0 (Pin 14)
RXD (USART Input Pin)
PD1 (Pin 15)
TXD (USART Output Pin)
PD2 (Pin 16)
INT0 (External Interrupt 0 Input)
PD3 (Pin 17)
INT1 (External Interrupt 0 Input)
PD4 (Pin 18)
OC1B (Timer/Counter1 Output Compare B Match Output)
PD5 (Pin 19)
OC1A (Timer/Counter1 Output Compare A Match Output)
PD6 (Pin 20)
ICP1 (Timer/Counter1 Input Capture Pin
PD7 (Pin 21)
OC2 (Timer/Counter2 Output Compare Match Output)
3. Peta Memori ATMega16 3.1 Memori Program Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program. Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan
data.
Reprogrammable
ATMega16 Flash
memiliki
Memory
untuk
16
Kbyte
menyimpan
On-chip
In-System
program.
Instruksi
ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi seperti terlihat pada Gambar 2.6. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.
14
Gambar 2.6 Peta Memori ATMega16 3.2 Memori Data (SRAM) Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F. Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal. Register File
Data Address Space
R0
$0000
R1
$0001
R2
$0002
...
...
R29
$000D
R30
$000E
R31
$000F
15
Gambar 2.7 Peta Memori Data ATMega16 4. Timer ATMega16 ATMega16 memiliki tiga buah timer, yaitu timer/counter0 (8 bit), timer/counter1 (16 bit) dan timer/counter2 (8 bit). Namun, pada sub bab ini hanya akan
membahas
mengenai
timer/counter1
timer/counter 16 bit/ 65535
saja.
Timer/counter1
adalah
cacahan yang multifungsi. Fitur-fitur dari
timer/counter1 pada ATMega16 adalah sebagai berikut a. Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit. b. Dua buah unit pembanding. c. Dua buah register pembanding. d. Satu buah input capture unit. e. Timer di-nol-kan saat proses pembandingan tercapai (match compare). f. Dapat menghasilkan gelombang PWM. g. Periode PWM yang dapat diubah-ubah.