You are on page 1of 79

TANDON AIR OTOMATIS BERBASIS MIKROKONTROLER ATMEGA16

SKRIPSI

diajukan oleh : Danang Saktyo Yudhanto 2077200278

PROGRAM STUDI SISTEM KOMPUTER SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER ADI UNGGUL BHIRAWA (STMIK-AUB) SURAKARTA 2012

TANDON AIR OTOMATIS BERBASIS MIKROKONTROLER ATMEGA16


SKRIPSI Untuk memenuhi persyaratan memperoleh gelar Sarjana Komputer pada Program Studi Sistem Komputer

diajukan oleh : Danang Saktyo Yudhanto 2077200278

PROGRAM STUDI SISTEM KOMPUTER SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER ADI UNGGUL BHIRAWA (STMIK-AUB) SURAKARTA 2012

NOTA PEMBIMBING

Dosen STMIK-AUB Surakarta Di :SURAKARTA Nota Dinas Hal : Skripsi Saudara Danang Saktyo Yudhanto Kepada Yth. Ketua STMIK-AUB Surakarta Di : SURAKARTA Setelah membaca, meneliti, mengoreksi dan mengadakan perbaikan seperlunya terhadap Skripsi Saudara : Nama NIM Program Studi Judul : Danang Saktyo Yudhanto : 2077200278 : Sistem Komputer : TANDON AIR OTOMATIS BERBASIS MIKROKONTROLER ATMEGA16

Dengan ini kami menilai Skripsi tersebut dapat disetujui untuk diajukan dalam Sidang Ujian Skripsi pada Program Studi Sistem Komputer Sekolah Tinggi Manajemen Informatika Dan Komputer Adi Unggul Bhirawa (STMIK-AUB) Surakarta. Surakarta 7 Maret 2012 Pembimbing I Pembimbing II

Dwiyono, ST. NIPY : 097/D/AUB/2002

H. Ary Setyadi, ST. NIPY : 186/D/AUB/2002

PENGESAHAN SKRIPSI

Tandon Air Otomatis Berbasis Mikrokontroler ATMega16


Yang dipersiapkan dan disusun oleh Danang Saktyo Yudhanto 2077200278 Telah dipertahankan di depan Dewan Penguji pada Tanggal 3 Maret 2012

Susunan Dewan Penguji Nama Penguji Tanda Tangan

Haryanto, ST, M. Cs NIPY : 239/D/AUB/2011 Wisnu Wendanto, S.Kom NIPY : 216/D/AUB/2008 Ary Setyadi, ST NIPY : 186/D/AUB/2002

__________________

__________________

__________________

Skripsi ini telah diterima sebagai salah satu persyaratan untuk memperoleh gelar Sarjana Komputer Tanggal 7 Maret 2012 KETUA STMIK-AUB SURAKARTA

Drs. Dwi Kuncoro. M.Kom NIPY : 141/D/AUB/1991

PERSETUJUAN SKRIPSI

Nama Nomor Induk Mahasiswa Program Studi Judul Kerja Praktek

: Danang Saktyo Yudhanto : 2077200278 : Sistem Komputer : Tandon Air Otomatis Berbasis Mikrokontroler ATMEGA16

Dosen Pembimbing

: 1. Dwiyono, ST. 2. H. Ary Setyadi, ST.

Telah dipertahankan di depan dewan penguji. Pada tanggal 3 Maret 2012

Susunan Dewan Penguji Ketua

Haryanto, ST, M. CS Penguji I Penguji II

Wisnu Wendanto, S.Kom Skripsi ini telah diterima sebagai salah satu persyaratan untuk Memperoleh Gelar Sarjana Strata 1 (S-1) Ilmu Komputer

Ary Setyadi, ST

Surakarta, 7 Maret 2012 Ketua STMIK-AUB Surakarta

Drs. Dwi Kuncoro, M.Kom NIPY : 141/D/AUB/1991

Yayasan Karya Dharma Pancasila (YKDP) Surakarta SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER ADI UNGGUL BHIRAWA SURAKARTA STMIK-AUB SURAKARTA
STMIK-AUB : Jl. MW. Maramis 29, Cengklik, Nusukan, Surakarta 57135 Telp. (0271) 857070. E-mail : kampus@stmikaubsolo.com

PERNYATAAN KEASLIAN SKRIPSI

Saya yang bertanda tangan dibawah ini : Nama NIM : Danang Saktyo Yudhanto : 2077200278

Program Studi : Sistem Komputer Judul : Tandon Air Otomatis Berbasis Mikrokontroler ATMEGA16 Menyatakan dengan sebenarnya bahwa skripsi yang saya serahkan ini benar-benar merupakan hasil karya sendiri, kecuali kutipan-kutipan dan ringkasan-ringkasan yang semuanya telah saya jelaskan sumbernya. Apabila dikemudian hari terbukti atau dapat dibuktikan skripsi ini hasil jiplakan, maka gelar dan ijazah yang diberikan STMIK-AUB Surakarta batal saya terima.

Surakarta, 5 Maret 2012 Yang membuat pernyataan,

Danang Saktyo Yudhanto

MOTTO

# Sabar dalam mengatasi kesulitan dan bertindak bijaksana dalam mengatasinya adalah sesuatu yang utama. # Berusahalah jangan sampai terlengah walau sedetik saja, karena atas kelengahan kita tak akan bisa dikembalikan seperti semula. # Saya datang, saya bimbingan, saya ujian, saya revisi dan saya menang!

PERSEMBAHAN

Kupersembahkan karya ini untuk . . .

Ibu dan bapak tersayang, Yang telah memberikan pelajaran yang sangat berharga dalam hidup. Mitha dan Sasa tersayang, Menjadikanku untuk bisa selalu jadi saudara yang terbaik dari yang baik Temen-temen seperjuangan, Atas segala bantuan, dorongan, maupun spirit untuk tetap maju

KATA PENGANTAR

Segala puji dan syukur Alhamdulillah senantiasa penulis panjatkan kehadirat Allah SWT yang selalu melimpahkan rahmat, hidayah serta inayah-Nya, sehingga penulis dapat menyelesaikan skripsi dengan judul : TANDON AIR OTOMATIS BERBASIS MIKROKONTROLER ATMEGA16 Penulis juga menyadari sepenuhnya bahwa dalam penyusunan laporan skripsi ini tidak akan terwujud tanpa adanya bantuan dan dukungan dari berbagai pihak. Oleh karena itu, secara khusus penulis menyampaikan rasa terimakasih kepada : 1. Bapak dan ibu tercinta yang telah sabar memberikan dukungan dan kasih sayang baik secara moril maupun materiil. 2. Drs. Dwi Kuncoro M.Kom, selaku Ketua STMIK-AUB Surakarta. 3. Wisnu Wendanto, S.Kom, selaku Kepala program studi S 1 Sistem Komputer STMIK-AUB Surakarta. 4. Dwiyono, ST, selaku pembimbing I yang telah membimbing dan memberikan masukan selama skripsi berlangsung. 5. H. Ary Setyadi, ST, selaku pembimbing II yang telah memberikan kritik dan saran demi tersusun dan terlengkapinya laporan skripsi Penulis berharap laporan ini dapat bermanfaat bagi penulis khususnya dan bagi pembaca pada umumnya. Surakarta, Maret 2012

Penulis

DAFTAR ISI

HALAMAN JUDUL .................................................................................. HALAMAN NOTA PEMBIMBING .......................................................... HALAMAN PENGESAHAN ..................................................................... HALAMAN PERSETUJUAN......................................................................... HALAMAN PERNYATAAN KEASLIAN ................................................ .

i ii iii iv v

HALAMAN MOTTO ................................................................................. . vi HALAMAN PERSEMBAHAN........................................................................ vii KATA PENGANTAR...................................................................................... viii DAFTAR ISI .................................................................................................. ABSTRAK ......... ......................................................................................... ABSTRACK ................................................................................................ ix x xi

BAB I PENDAHULUAN 1.1. Latar belakang masalah ......................................................... 1.2. Rumusan masalah ................................................................. 1.3. Batasan masalah .................................................................... 1.4. Tujuan penelitian................................................................... 1.5. Manfaat penelitian ................................................................. 1.6. Tinjauan Pustaka .................................................................. 1.7. Metode Penelitian ................................................................. 1.8. Sistematika Penulisan.............................................................. 1 3 3 3 4 4 7 10

BAB II LANDASAN TEORI 2.1. Mikrokontroler ATMEGA16 ................................................ 11

2.2. Bahasa C .............................................................................. 2.3. ADC (Analog to Digital Donverter) ....................................... 2.4. Code Vision AVR.................................................................. 2.5. LCD (Liquid Crystal Display)................................................ 2.6. Resistor ................................................................................. 2.7. Transistor .............................................................................. 2.8. Kapasitor ............................................................................... 2.9. Tegangan Listrik ......................................................................

16 18 22 24 26 27 28 30

BAB III PERANCANGAN SISTEM 3.1. Peralatan Dan Bahan.............................................................. 3.2. Perancangan Perangkat Keras ................................................ 3.3. Perencanaan Perangkat Lunak ............................................... 32 32 41

BAB IV PENGUJIAN ALAT 4.1. Pengujian Alat ....................................................................... 4.2. Pengujian Rangkaian Power Supplay ..................................... 4.3. Pengujian Rangkaian Driver .................................................... 4.4. Pengujian Alat Utuh .............................................................. .. 51 51 53 54

4.5. Cara Penggunaan Alat ............................................................... 56

BAB V PENUTUP 5.1. Kesimpulan ........................................................................... 5.2. Saran .................................................................................... 57 57

`ABSTRAK

Pengisian tandon air secara manual memaksa orang untuk selalu waspada dalam pemantauan tingkat ketinggian maupun penurunan level airnya. Sering kali orang lupa mematikan pompa air apabila air sudah penuh, sehingga yang terjadi terbuang sia-sia dan secara tidak langsung akan mengakibatkan pemborosan air. Jika hal ini terus terjadi maka bisa dinilai kurang efektif dan kurang efisien. Secara keseluruhan alat ini dibagi kedalam blok rangkaian, yaitu masukan,unit pemroses, dan keluaran. Masukan terdiri atas Sensor air yaitu untuk memerintahkan bagian kontroller untuk bekerja. Unit pemroses terdiri atas Mikrokontroler ATMEGA16 dan Relay driver. Keluaran terdiri atas pompa air dan LCD yang berfungsi untuk mengaliri air dan menghentikan aliran air secara otomatis didalam tandon air. Cara kerjanya adalah Mikrokontroler menerima input dari sensor air, kemudian mikrokontroler memberikan sinyal ke relay driver untuk bekerja dan memerintahkan pompa air untuk mengalirkan dan mematikan air dalam tandon air. Kata Kunci: Otomatisasi, pompa air, Mikrokontroler ATMEGA16

ABSTRACK

Manually filling water tank to force people to be vigilant in monitoring the level of elevation and decline in water level. Often times people forget to turn off the water pump when the water is full, so that there is wasted and will indirectly result in waste of water. If this continues to happen then it could be considered less effective and less efficient. Overall this tool is divided into blocks of the circuit, namely input, processing unit, and output. Sensor input consists of water which is to instruct the controller to work. Processing unit consists of microcontroller ATmega16 and Relay driver. The output consists of a water pump and an LCD that serves to drain the water and automatically stop the flow of water in the reservoir water. The way it worksis the microcontroller receives input from the water sensor, and then relay the signal to the microcontroller to work and ordered the driver to pump the water to drain and shut off the water in the reservoir water. Keywords: automation, water pump, MicrocontrollerATmega16

BAB I PENDAHULUAN

1.1. Latar Belakang Air merupakan bagian yang tidak dapat dipisahkan dalam kehidupan sehari-hari. Setiap bagian tubuh mahkluk hidup pasti membutuhkan air untuk melangsungkan kehidupan. Air pada batas tertentu sangat bermanfaat untuk kehidupan umat. Musim kemarau seperti saat ini air sangat berarti, sebagian wilayah di Indonesia yang mengalami kekeringan selalu kesulitan air. Jumlah wilayah yang menderita kekeringan dari tahun ketahun terlihat semakin meningkat dan meluas. Hal ini diakibatkan tidak hanya oleh rusaknya lingkungan di daerah tangkapan air, akan tetapi juga diakibatkan oleh pesatnya pembangunan fisik serta rendahnya tingkat kesadaran masyarakat dalam penggunaan air tanpa diikuti dengan upaya menjaga dan melestarikan sumber daya air. Pada saat musim penghujan air sangat melimpah dan sangat mudah didapatkan sehingga banyak manusia yang justru boros dalam menggunakan air. Pemborosan air biasa terjadi ditempattempat penampungan air seperti tandon air. Mengingat pentingnya air dalam kehidupan manusia maka air harus dihemat penggunaannya. (Sudarmadi 2011) Dalam pengisian penampungan air tentunya menggunakan pompa air untuk mengalirkan air di dalam tandon air. Pengisian air pada tandon yang ada sekarang masih menggunakan sistem manual oleh penggunanya.

Pengisian air tandon dengan sistem manual sering menimbulkan pemborosan air jika penggunanya lalai mematikan pompa air, sehingga air akan keluar terus-menerus. Kelalaian mematikan pompa air akan berakibat pemborosan air dan secara tidak langsung akan berakibat menambah pemakaian energi listrik yang dikeluarkan oleh pengguna. Hal inilah yang sering terjadi dirumah-rumah sehingga perlu dicarikan solusinya. Mohd Syaryadhi, Agus Adria, dan Syukurullah (2007), menghasilkan sistem kendali kran air wudhu menggunakan sensor pir (passive infrared receiver) berbasis mikrokontroler. Sensor pir hanya mampu bekerja dengan baik pada suhu 86 oF 158 oF atau 16 oC - 56 oC (Datasheet RE200B Pyroelektric Infrared). Jika suhu ruangan tiba-tiba turun maka yang terjadi adalah sensor tidak mampu bekerja dengan baik, infra merah yang dipancarkan tubuh manusia yaitu terkuat pada panjang gelombang 9,4 m sehingga banyak noise yang dapat mengganggu kepekan sensor. Permasalahan di atas, muncul suatu pemikiran untuk membuat alat dengan judul TANDON AIR OTOMATIS BERBASIS

MIKROKONTROLER ATMEGA16. Alat yang akan dibuat berfungsi untuk mencegah pemborosan air yang akan ditimbulkan oleh pengguna saat lalai mematikan pompa air. Alat ini menggunakan sensor air yang berfungsi sebagai pendeteksi adanya obyek untuk mengukur level air saat penuh dan berkurang yang memerintahkan bagian kontroler untuk bekerja.

Sistem ini diharapkan mampu bekerja lebih baik agar alat ini bisa dimanfaatkan untuk kepentingan bersama.

1.2.Perumusan Masalah Berdasarkan latar belakang masalah diatas, maka penulis merumuskan masalah yaitu bagaimana menggunakan mikrokontroler ATMEGA16 untuk aplikasi alat Pengatur Ketinggian Air otomatis ?

1.3.Batasan Masalah Dari rumusan masalah di atas dapat disimpulkan beberapa

permasalahan yang ada tetapi penulis hanya akan membatasi pembahasan sebagai berikut : a. Sensor yang digunakan adalah kabel sebagai pendeteksi level air.. b. Mikrokontroler yang digunakan adalah seri ATMEGA16. c. Tampilan yang menggunakan LCD untuk mengetahui keadaan level air.

1.4.Tujuan Penelitian Setiap kegiatan yang dilaksanakan dengan teratur dan terencana pasti mempunyai tujuan, begitu juga dengan penelitian ini. Adapun tujuan dalam membuat penelitian ini adalah sebagai berikut : a. Membuat sistem perangkat keras untuk pengatur ketinggian air otomatis berbasis mikrokontroler ATMEGA16.

b. Memberikan kenyamanan bagi pengguna air, karena pengisian air di tandon air secara otomatis akan mengalir dan mati sendiri ketika air penuh dan habis

1.5.Manfaat Penelitian Manfaat-manfaat tersebut dapat diterima sebagai berikut : a. Bagi masyarakat Hasil pembuatan skripsi ini diharapkan bermanfaat bagi masyarakat sebagai pengingat yang ditampilkan menggunakan LCD yang

menandakan bahwa air di dalam tandon air telah terisi penuh dan memudahkan dalam hal pemantauan pengisian tandon air. b. Bagi mahasiswa Hasil pembuatan skripsi ini bagi mahasiswa sebagai proyek penelitian dan sebagai salah satu syarat untuk kelulusan dalam menempuh Sarjana.

1.6. Tinjauan Pustaka a. Hasil Penelitian Terdahulu 1. Nurul Afdhal dari Universitas Syaih Kuala ( 2006), pada tugas akhir yang berjudul Sistem Pemantauan Ketinggian Air Secara Real Time Berbasis Mikrokontroler membahas tentang bagaimana membuat suatu sistem pemantauan ketinggian air dengan memanfaatkan gelombang ultrasonik berbasis mikrokontroler.

2. Frendy Yudha Atmaja (2010), pada tugas akhir yang berjudul Otomatisasi Kran dan Penampung Air Pada Tempat Wudhu Berbasis Mikrokontroler membahas tentang otomatisasi kran yang lebih efektif. Alat tersebut menggunakan infra merah yang berfungsi sebagai pendeteksi adanya obyek. Infra merah terdiri dari pemancar dan penerima. Pemancar berupa LED IR, dan penerima berupa

phototransistor yang mampu bekerja pada suhu -85 F - 302 F atau 70 C - 102 C. 3. Mohd Syaryadhi, Agus Adria, dan Syukurullah, (2007),

menghasilkan sistem kendali kran air wudhu menggunakan sensor pir (passive infrared receiver) berbasis mikrokontroler. Sensor PIR bekerja dengan baik pada suhu 86 oF 158 oF atau 16 oC - 56 oC (Datasheet RE200B Pyroelektric Infrared). Saat tangan atau bagian tubuh yang lain menyentuh sensor gerak pada waktu wudhu akan menjalankan mikrokontroler dan air mengalir. Saat tangan ataupun anggota tubuh yang lain sudah tidak menyentuh sensor gerak maka air akan berhenti sendiri. b. Landasan Teori Sistem yang dibangun menggunakan prinsip air sebagai konduktor / pengahantar arus listrik. Pada saat air di dalam tandon air telah penuh maka kedua kabel di dalam tandon akan terhubung sehingga memberikan input ke rangkaian kontroler untuk mematikan pompa air. Ketika air di

dalam tandon berkurang maka kedua kabel akan terputus sehingga memberikan input ke rangkaian kontoller untuk manyalakan pompa air. Teori penunjang yang digunakan dalam aplikasi mikrokontroler untuk pengatur ketinggian air otomatis berbasis mikrokontroler ATMEGA 16 antara lain: 1. 2. 3. 4. 5. 6. 7. 8. 9. Mikrokontroler ATMEGA16 Sensor air Resistor Transistor Kapasitor Dioda Relay Transformator LCD display 16 x 2

1.7. Metode Penelitian A. Unit Penelitian Sistem yang dibangun merupakan riset penelitian yang bertujuan diterapkan di tandon air tetapi dalam proyek skripsi ini hanya dibatasi pada penggunaan tempat air sebagai simulator yang menyerupai keadaan yang sebenarnya. B. Alat dan Bahan Untuk membangun sistem ini penulis membutuhkan alat dan bahan sebagai berikut : Alat : 1. 2. 3. 4. 5. 6. 7. Mangkok yang tahan panas Gergaji besi Bor PCB Tang pemotong Multimeter Solder Komputer dengan Sistem Operasi Windows XP dan dilengkapi dengan port USB 8. Printer

Bahan : 1. 2. 3. PCB (Printed Cricuit Board) Kabel Timah (tenol)

4.

Komponen Elektronika (Resistor, Kapasitor, Dioda, Trafo, IC ATmega 16, IC7805, Relay)

5.

Software di Komputer (Code Vision AVR C Compiler)

C. Teknik Pengumpulan Data Teknik pengumpulan data untuk skripsi ini menggunakan metode : 1. Observasi Melakukan pengamatan terhadap level air yang sudah ada untuk melakukan perbandingan dan mengumpulkan data-data yang bisa dipakai sebagai acuan untuk merancang Pembuatan alat Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16. 2. Wawancara Melakukan wawancara dengan orang-orang yang

berkompeten dibidang elektronika dan mikrokontroler untuk mendapatkan data-data ataupun hal-hal yang bisa digunakan untuk menambah pengetahuan yang berkaitan dengan pembuatan alat Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16. 3. Studi Pustaka Mempelajari dari buku-buku yang berkaitan dengan

Pembuatan alat Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16.

D. Perancangan Alat dan Implementasi 1. Perancangan Rangkaian Membuat rancangan rangkaian dari alat dengan membuat skema rangkaian Pembuatan alat Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16. 2. Pengumpulan Komponen Mengumpulkan komponen-komponen yang akan digunakan untuk merancang alat berdasarkan rancangan skema rangkaian alat Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler

ATMEGA16 3. Perancangan Program Merancang program yang nantinya akan dimasukkan ke dalam mikrokontroler ATMEGA16 untuk menjalankan alat. 4. Pembuatan Alat Membuat alat berdasarkan skema rangkaian yang sudah dibuat kemudian memasukkan program yang sudah dirancang ke dalam mikrokontroler ATMEGA16 untuk menjalankan alat. 5. Pengujian Alat Melakukan uji coba/test pada alat yang telah selesai dirakit untuk mengetahui apakah alat bisa berjalan sesuai dengan yang diharapkan atau tidak.

1.8.Sistematika Penulisan Untuk memperjelas pembahasan materi pada setiap bab, maka penulis menggunakan sistematika penulisan sebagai berikut : BAB I PENDAHULUAN Penulis menjelaskan tentang latar belakang masalah, perumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian dan sistematika penulisan. BAB II LANDASAN TEORI Penulis menjelaskan tentang teori-teori dasar mengenai

mikrokontroler ATMEGA16, bahasa pemrograman C, ADC, Code Vision AVR, LCD dan komponen elektronika BAB III ANALISIS DAN PERANCANGAN SISTEM Membahas tentang perencanaan dan pembuatan alat secara keseluruhan. BAB IV IMPLEMENTASI ALAT Berisi tentang uji coba alat yang telah dibuat, pengoperasian dan spesifikasi alat. BAB V PENUTUP Bab ini berisi kesimpulan dan saran dari isi Skripsi yang telah dibuat. DAFTAR PUSTAKA LAMPIRAN

BAB II LANDASAN TEORI

2.1. Mikrokontroler 2.1.1. Mikrokontroler Mikrokontroler merupakan teknologi semikonduktor dengan kandungan transistor yang lebih banyak namun hanya membutuhkan ruang yang kecil serta dapat diproduksi secara masal. Teknologi mikrokontroler ini dimanfaatkan dalam banyak hal utamanya dalam pembuatan alatalat bantu bahkan mainan dengan teknologi yang lebih baik dan canggih (Heri Andrianto,2008). Penggunaan aplikasi mikrokontroler dalam kehidupan sehari hari misalnya pada aplikasi mesin tiket di arena permainan. Aplikasi mesin tiket ini ditangani oleh mikrokontroler dimana kita tidak perlu memasang PC (personal computer) yang memakan tempat yang cukup banyak. 2.1.2. Mikrokontroler AVR ATMEGA 16 AVR merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor (CMOS) 8-bit yang dibuat oleh ATMEL berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua instruksi pada program dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general purpose,timer/counter fleksibel dengan compare mode, interupsi internal dan external, seri USART,

programmable watchdog timer, power saving mode, ADC dan PWM. AVR mempunyai In System Programmable (ISP) Flash on chip yang mengijinkan memori program untuk diprogarm ulang (read/write). programmable watchdog timer, power saving mode, ADC dan PWM. AVR mempunyai In System Programmable (ISP) Flash on chip yang mengijinkan memori program untuk diprogarm ulang (read/write) dengan koneksi secara serial yang disebut Serial Peripheral Interface/SPI (Heri Andrianto,2008) AVR memiliki keunggulan dibandingkan dengan

mikrokontroler lain yaitu memiliki kecepatan dalam mengeksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock (lebih cepat dibandingkan mikrokontroler keluarga MCS 51 yang memilki arsitektur Complex Instruktions Set Compute). ATMEGA 16 mempunyai througput mendekati 1 Millions Instructions Per Second (MIPS) per MHz, sehingga mempunyai konsumsi daya menjadi lebih rendah terhadap kecepatan proses eksekusi perintah (Heri Andrianto,2008) Beberapa keistimewaan dari AVR ATMEGA 16 antara lain yaitu : 1. Mikrokontroler AVR 8-bit yang memiliki kemampuan tinggi dengan konsumsi daya rendah.

2. Arsitektur RISC dengan througput mencapai 16 MIPS pada frekuensi 16 MHz. 3. Memiliki kapasitas flash memori 16 Kbyte, EEPROM 512 Byte dan SRAM 1 Kbyte. 4. Saluran I/O sebanyak 32 buah yaitu port A, B, C dan D. 5. CPU yang terdiri dari 32 buah register. 6. Unit internal dan eksternal. 7. Port USART untuk komunikasi serial. 8. Non volatile program memory. 2.1.3. Konfigurasi Pin AVR ATMEGA16

Gambar 2.1 Konfigurasi Kaki (Pin) ATMEGA16

Konfigurasi pin dari ATMEGA16 dengan kemasan 40 pin Dual In Line Package (DIP) dapat dilihat pada gambar 2.1 di atas. (Ary Heryanto,2008:76). Fungsi dari masing-masing pin pada ATMEGA 16 adalah sebagai berikut : 1. VCC merupakan pin yang berfungsi sebagai masukan catu daya. 2. GND merupakan pin Ground. 3. Port A (PA0-PA7) merupakan pin input/output dua arah full duplex dan selain itu merupakan pin masukan ADC. 4. Port B (PB0-PB7) merupakan pin input/output dua arah (full duplex) dan merupakan pin dengan fungsi khusus seperti terlihat pada tabel dibawah ini : Tabel 2.1. Fungsi Khusus Port B Pin PB0 PB1 PB2 PB3 PB4 PB5 PB6 PB7 Fungsi Khusus XCX (USART External Clock Input/Output) T0 (Timer/Counter0 External Counter Input) T1 (Timer/Counter1 External Counter Input) INT2 (External Interupt 2 Input) AIN0 (Analog Comparator Negative Input) OCO (Timer/Counter0 Output Compare Match Output) AIN1 (Analog Comparator Negative Input) SS (SPI Slave Select Input) MOSI (SPI Bus Master Output/Slave Input) MISO (SPI Bus Master Input/Slave Ouput) SCK (SPI Bus Serial Clock)

1. Port C (PC0-PC7) merupakan pin input/output dua arah (full duplex) dan selain itu juga merupakan pin khusus dengan fungsi seperti berikut :

Tabel 2.2. Fungsi Khusus Port C Pin PC0 PC1 PC2 PC3 PC4 PC5 PC6 PC7 Fungsi Khusus SCL (Two wire Serial Bus Clock Line) SDA (Two wire Serial Bus Data Input/Output Line) TCK (Join Test Action Group Test Clock) TMS (JTAG Test Mode Select) TDO (JTAG Data Out) TDI (JTAG Test Data In) TOSC1 (Timer Oscillator pin 1) TOSC2 (Timer Oscillator pin 2)

2. Port D (PD0-PD7) merupakan pin input/output dua arah (full duplex) dan juga merupakan pin khusus dengan fungsi sebagai berikut : Tabel 2.3. Fungsi Khusus Port D Pin PD0 PD1 PD2 PD3 PD4 PD5 PD6 PD7 Fungsi Khusus RXD (USART Input Pin) TXD (USART Output Pin) INT0 (External Interupt 0 Input) INT1 (External Interupt 1 Input) OC1B (Timer/Counter1 Output Compare B Match Output) OC1A (Timer/Counter1 Output Compare A Match Output) ICP (Timer/Counter1 Input Capture Pin) OC2 (Timer/Counter2 Output Compare Match Output) merupakan pin yang digunakan untuk me-reset

3. RESET

mikrokontroler. 4. XTAL1 dan XTAL2 merupakan pin masukan external clock. 5. AVCC merupakan pin masukan tegangan untuk ADC. 6. AREF merupakan pin masukan tegangan referensi untuk ADC.

2.2. Bahasa C 2.2.1. Struktur Pemrograman C Secara umum, pemrograman C paling sederhana dilakukan hanya dengan menuliskan program utamanya saja, yaitu : void main (void) { .... } 2.2.2. Header Header berisi include file (.hex) yaitu library (pustaka) yang akan digunakan dalam program, dengan header utama berupa header jenis chip mikrokontroler yang dipakai. Contoh : #include <mega16.h> ..... 2.2.3. Percabangan 1. if then Bentuk umum dari percabangan ini adalah : if (kondisi) { //pernyataan }; Artinya adalah pernyataan akan dijalankan jika kondisi terpenuhi.

2. if then else Bentuk umum dari percabangan ini adalah : If (kondis) { //pernyataan a } else { //pernyataan b }; Artinya adalah pernyataan a akan dijalankan jika kondisi terpenuhi dan pernyataan b akan dijalankan bila kondisi tidak terpenuhi. (Frieyadie,2006) 2.2.4. Perulangan 1. for Pernyataan for akan melakukan perulangan beberapa kali sesuai dengan yang diinginkan. Stuktur penulisan perulangan for yaitu : ...... for (mulai; kondisi; penambahan atau pengurangan) { pernyataan-pernyataan; }; Mulai adalah pemberian nilai awal, kondisi adalah pengkondisi dalam for yaitu jika kondisi bernilai true maka pernyataan dalam

for akan dijalankan. Sedangkan penambahan atau pengurangan adalah penambahan atau pengurangan terhadap nilai awal.

2.3. ADC (Analog to Digital Converter) ADC adalah perangkat yang mengkonversi suatu input berupa tegangan maupun arus analog atau menjadi suatu angka dalam bentuk digital. Sebuah ADC dapat digunakan untuk membuat pengukuran yang terisolasi. ADC juga digunakan untuk kualitas bervariasi suatu sinyal dengan mengubahnya menjadi urutan sampel digital Beberapa tipe dari ADC antara lain : 1. Tipe Integrating ADC tipe ini menawarkan resolusi tertinggi dengan biaya terendah. Tipe ini juga tidak membutuhkan rangkaian sample hold. ADC tipe ini memiliki kelemahan yaitu waktu konversinya agak lama biasanya beberapa milidetik. 2. Tipe Tracking Tipe ADC ini menggunakan prinsip up down counter (pencacah naik dan turun). Binary counter (pencacah biner) akan mendapat masukan clock secara kontinyu dan hitungan akan bertambah atau berkurang tergantung pada kontrol dari pencacah apakah sedang naik (up counter) atau turun (down counter). ADC tipe ini tidak menguntungkan jika dipakai pada sistem yang memerlukan waktu konversi yang masukan keluaran singkat, sekalipun

pada bagian masukan tipe ini tidak memerlukan rangkaian sample hold. ADC tipe ini sangat tergantung pada kecepatan clock pencacah. Semakin tinggi nilai clock yang digunakan maka proses konversi akan semakin singkat. 3. Tipe flash/paralel Tipe ADC ini dapat menunjukkan konversi secara lengkap pada kecepatan 100MHz dengan rangkaian kerja yang sederhana. Sederetan tahanan mengatur masukan inverting dari tiap-tiap konverter menuju tegangan yang lebih tinggi dari konverter sebelumnya. Jadi untuk tegangan masukan (Vin) dengan full scale range komparator dengan bias dibawah Vin akan mempunyai keluaran rendah. Keluaran komparator ini tidak dalam bentuk biner murni. Suatu decoder dibutuhkan untuk membentuk suatu keluaran yang biner. Beberapa komparator berkecepatan tinggi dengan waktu tunda (delay) kurang dari 6 ns banyak digunakan, karena itu dihasilkan kecepatan konversi yang sangat tinggi. Jumlah komparator yang dibutuhkan untuk suatu konversi n bit adalah 2 n-1. 4. Tipe successive approximation Tipe ADC ini merupakan suatu konverter yang paling sering ditemui dalam desain perangkat keras yang menggunkan ADC. Tipe ini memilki kecepatan konversi yang cukup tinggi tetapi dari segi harga relatif mahal. Prinsip kerja konverter tipe ini adalah dengan membangkitkan pertanyaan-pertanyaan yang pada intinya berupa tebakan nilai digital

terhadap nilai tegangan analog yang dikonversikan. Apabila resolusi ADC tipe ini adalah 2n maka diperlukan maksimal n kali tebakan. Input ADC pada mikrokontroler dihubungkan ke sebuah 8 channel analog multiplexer yang digunakan untuk single ended input channels. Jika sinyal input dihubungkan ke masukan ADC dan 1 jalur lagi terhubung ke ground, disebut single ended input. Jika input ADC terhubung ke dua buah input ADC disebut sebagai differensial input yang dapat dikombinasikan sebanyak 16 kombinasi. Empat kombinsi terpenting antara lain kombinasi input differensial (ADC0 dengan ADC1 dan ADC2 dengan ADC3) dengan penguatan yang dapat diatur. ADC0 dan ADC2 sebagai tegangan input negatif, sedangkan ADC1 dan ADC3 sebagai tegangan input positif. Besar penguatan yang dapat dibuat yaitu 20dB (10x) atau 46db (200x) pada tegangan input differensial sebelum proses konversi ADC. Secara umum, proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, format output data dan mode pembacaan. Register yang perlu diset nilainya adalah ADMUX (ADC Multiplexer Selection Register), ADCSRA (ADC Control and Status Register) dan SFIOR (Special Function IO Register). ADMUX merupakan register 8 bit yang berfungsi menentukan tegangan referensi ADC, format data output dan saluran ADC yang digunakan. Untuk memilih channel ADC mana yang digunakan (single ended atau differensial), dilakukan dengan mengatur nilai MUX4 : 0 diberi nilai 00000B. Tegangan referensi ADC dapat dipilih antara lain pada pin AREF, pin AVCC

atau menggunakan tegangan referensi internal sebesar 2,56V. Agar fitur ADC mikrokontroler dapat digunakan maka ADEN (ADC Enable, dalam I/O register ADCSRA) harus diberi nilai 1. Setelah konversi selesai (ADIF high), hasil konversi dapat diperoleh pada register hasil (ADCL, ADCH). Untuk konversi single ended, hasilnya ialah : ADC = (Vin. 1024) / VRef. Dimana Vin adalah tegangan pada input yang dipilih dan VRef adalah tegangan referensi.

Jika hasil ADC = 000H, maka menunjukkan tegangan input sebesar 0V, jika hasil ADC = 3FFH menunjukkan tegangan input sebesar tegangan referensi dikurangi 1 LSB. Sebagai contoh, jika diberikan V in sebesar 0,2V dengan VRef sebesar 5V, maka hasil konversi ADC = 41. Jika menggunakan differensial channel hasilnya adalah 40,96. Bila digenapkan menjadi 39,40 karena ketelitian ADC ATMEGA 8535 sebesar 2LSB. Apabila yang digunakan saluran differensial, maka hasilnya yaitu : ADC = ((VPOS VNEG) . GAIN . 512) / VREF Dimana VPOS adalah tegangan pada input pin positif, VNEG adalah tegangan pada input negatif, GAIN adalah faktor penguatan dan VREF adalah tegangan referensi yang digunakan. (http://www.electroniclab.com/index.php?action=html&fid=56)

2.4. Code Vision AVR Code Vision AVR merupakan sebuah cross compiler C, Integrated Development Environtment (IDE) dan Automatic Program Generator yang didesain untuk mikrokontroler buatan ATMEL seri AVR. Code Vision AVR dapat dijalankan pada sistem operasi Windows 95, 98, ME, NT4, 2000 dan XP (Widodo Budiharto,2008:50) Cross compiler C mampu menterjemahkan hampir semua perintah dari bahasa ANSI C sejauh yang diijinkan oleh aristektur dari AVR dengan tambahan beberapa fitur untuk mengambil kelebihan khusus dari arsitektur AVR dan kebutuhan pada sistem embedded. File object COFF hasil kompilasi dapat digunakan untuk keperluan debugging pada tingkatan C dengan pengamatan variabel menggunkan debugger ATMEL AVR Studio. IDE mempunyai fasilitas internal berupa software AVR chip in system programmer yang memungkinkan kita untuk melakukan transfer program ke dalam chip mikrokontroler setelah sukses melakukan kompilasi secara otomatis. Software In-system Programmer didesain untuk bekerja dengan ATMEL STK500/AVRISP/AVRProg, Kanda System STK200+/300,

Dontronics DT006, Vogel Electronic VTEC-IS, Futurlec JRAVR dan MicroTronics ATCPU /Mega2000 programmers/development boards. Untuk keperluan debugging sistem embadded yang menggunkan komunikasi serial, IDE mempunyai fasilitas internal yaitu berupa sebuah terminal (Widodo Budiharto,2008:55).

Code Vision AVR memilki library tertentu yang digunakan untuk modul LCD alphanumeric, bus I2C dari Philips, sensor suhu LM75 dari National Semiconductor, real time clock (PCF8563, PCF8583 dari Philips, DS1302 dan DS1307dari Maxim/Dallas Semiconductor), protocol 1-wire dari Maxim/Dallas Semiconductor, sensor suhu (DS1820, DS18S20 dan DS18B20 dari Maxim/Dallas Semiconductor), thermometer/thermostat DS 1621 dari Maxim/Dallas Semiconductor, EEPROM DS2430 dan DS2433 dari Maxim/Dallas Semiconductor, SPI, Power Management, Delay, Konversi ke kode gray (Widodo Budiharto,2008:60). Code Vision AVR juga mempunyai Automatic Program Generator bernama Code Wizard AVR yang mengijinkan kita untuk menulis dalam hitungan menit, semua instruksi yang diperlukan untuk membuat fungsifungsi berikut : 1. Set-up akses memori eksternal. 2. Identifikasi sumber reset untuk chip. 3. Inisialisasi port input/output. 4. Inisialisasi interupsi eksternal. 5. Inisialisasi timer/counter. 6. Inisialisasi watchdog-timer. 7. Inisialisasi UART (USART) dan komunikasi serial berbasis buffer yang digerakkan oleh interupsi. 8. Inisialisasi pembanding analog. 9. Inisialisasi ADC.

10. Inisialisasi antarmuka SPI. 11. Inisialisasi antarmuka two wire. 12. Inisialisasi antarmuka CAN. 13. Inisialisasi BUS I2C, sensor suhu LM75, thermometer/thermostat DS1621 dan real time clock PCF8563, PCF8583, DS1302 dan DS1307. 14. Inisialisasi bus 1-wire dan sensor suhu DS1820, DS18S20. 15. Inisialisasi modul LCD. 2.5. LCD (Liquid Crystal Display) LCD adalah salah satu komponen elektronika yang berfungsi sebagai tampilan suatu data, baik karakter, huruf ataupun grafik. Di pasaran tampilan LCD sudah tersedia dalam bentuk modul yaitu tampilan LCD beserta rangkaian pendukungnya termasuk ROM dll. LCD mempunyai pin data, kontrol catu daya dan pengatur kontras tampilan (Ary Heryanto,2008:90) Tabel 2.4. Konfigurasi Pin LCD 16 x 2 Pin No 1 2 3 4 5 6 7 8 9 10 11 Nama Vss Vdd Vee RS R/W E D0 D1 D2 D3 D4 Fungsi Power Power Contrast Adj. Command Command Command I/O I/O I/O I/O I/O Keterangan GND +5V (-2) 0 5V Register Select Read/Write Enable Data LSB Data Data Data Data

12 13 14

D5 D6 D7

I/O I/O I/O

Data Data Data MSB


(Ary Heryanto,2008:90)

Fungsi dari pin-pin pada rangkaian LCD yaitu : 1. Pin data, dapat dihubungkan dengan bus data dari rangkaian lain seperti mikrokontroler dengan lebar data 8 bit. 2. Pin RS (Register Select) berfungsi sebagai indikator atau yang menentukan jenis data yang masuk apakah data atau perintah. Logika low menunjukkan yang masuk adalah perintah sedangkan logika high menujukkan data. 3. Pin R/W (Read/Write) berfungsi sebagai instruksi pada modul jika low tulis data, jika high baca data. 4. Pin E (Enable) digunakan untuk memegang data baik masuk atau keluar.

(Ary Heryanto,2008:91)

Gambar 2.2 Rangkaian LCD 16 x 2

2.6. Resistor Resistor adalah komponen elektronika yang berfungsi untuk menghambat arus listrik dan menghasilkan nilai resistansi tertentu. Kemampuan resistor dalam menghambat arus listrik sangat beragam disesuaikan dengan nilai resistansi resistor tersebut (Alwajiz,2011)

Gambar 2.3. Simbol Resistor

Resistor memiliki beragam jenis dan bentuk. Diantaranya resistor yang berbentuk silinder, SMD (Surface Mount Devices) dan wirewound. Sedangkan jenis resistor antara lain komposisi karbon, metal film, wirewound, smd dan resistor dengan teknologi film tebal. Resistor yang paling banyak beredar dipasaran umum adalah resistor dengan bahan komposisi karbon dan metal film. Resistor ini biasanya berbentuk silinder dengan pita-pita warna yang melingkar di badan resistor. Pita-pita warna dikenal sebagai kode resistor. Dengan mengetahui kode resistor kita dapat mengetahui nilai resistansi resistor, toleransi, koefisiensi temperatur dan reliabilitas resistor tersebut. Resistor dengan kode warna terdiri dari 3 macam yaitu : 1. Resistor 4 pita warna dengan 1 pita warna untuk toleransi. 2. Resistor 5 pita warna dengan 1 pita warna untuk toleransi.

3. Resistor 5 pita warna dengan 1 pita warna untuk toleransi dan 1 pita warna untuk reliabilitas.

Gambar 2.4. Resistor

Tabel 2.5. Kode Warna Resistor

2.7. Transistor Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung (switching), stabilisasi tegangan ataupun modulasi sinyal (Bishop, 2004). Transistor memiliki dua tipe dasar yaitu transistor bipolar (BJT) dan transisitor unipolar (FET). Transisitor bipolar menggunakan dua polaritas

pembawa muatan yaitu elektron dan lubang untuk membawa arus listrik. Dalam transistor bipolar, arus listrik utama harus melewati satu daerah/lapisan pembatas dan ketebalan lapisan ini diatur dengan kecepatan tinggi dengan tujuan untuk mengatur aliran arus utama tersebut. Sedangkan transistor unipolar (FET) hanya menggunakan satu jenis pembawa muatan (elektron atau hole). Dalam FET, arus listrik utama mengalir dalam satu kanal konduksi sempit lapisan pembatas dikedua sisinya dan ketebalan dari daerah perbatasan ini dapat diubah dengan perubahan tegangan yang diberikan.

Gambar 2.5. Simbol Transistor

2.8. Kapasitor Kapasitor atau kondensator (C) adalah komponen dasar elektronika yang termasuk dalam komponen pasif yang digunakan untuk menyimpan muatan listrik dalam jangka waktu tertentu. Satuan dari kapasitor adalah Farad. Satu Farad = 9 x 1011 cm2 (Petruzella,Frank D,2001) Kapasitor pada umumnya terdiri atas dua plat logam yang dipisahkan oleh suatu bahan penyekat, biasa disebut bahan dialektrika yaitu berupa vakum udara, keramik, gelas, mika dan lain-lain. Jika kedua ujung plat metal

diberi tegangan listrik, maka muatan-muatan positif akan mengumpul pada salah satu kaki (elektroda) metalnya dan pada saat yang sama muatan-muatan negatif terkumpul pada ujung metal yang lainnya. Muatan positif tidak dapat mengalir menuju ujung kutub negatif dan sebaliknya muatan negatif tidak bisa menuju ke ujung positif karena terpisah oleh bahan dialektrik yang non konduktif. Kapasitor dibagi dalam beberapa jenis yaitu kapasitor yang memiliki kapasitas tetap (kapasitor non polar), kapasitor yang memiliki polaritas pada kedua kakinya yaitu polaritas + dan polaritas (kapasitor polar) dan kapasitor yang memiliki kapasitas yang dapat diubah-ubah (kapasitor variabel).

Gambar 2.6. Simbol Kapasitor Non Polar

Gambar 2.7. Simbol Kapasitor Polar

Gambar 2.8. Simbol Kapasitor Variabel

Gambar 2.9 Jenis-jenis Kapasitor

2.9. Tegangan Listrik Tegangan listrik (voltage) adalah perbedaan potensi listrik antara dua titik dalam rangkaian listrik. Tegangan dinyatakan dalam satuan volt (V). Besaran ini mengukur energi potensial sebuah medan listrik yang menyebabkan aliran listrik dalam sebuah konduktor listrik. Tegangan listrik dapat dikatakan sebagai ekstra rendah, rendah, tinggi dan ekstra tinggi tergantung pada beda potensi listrik tersebut. Tegangan merupakan nilai dari potensial energi antara dua titik. Besarnya tegangan listrik ini bisa kita ukur dengan cara menghubungkan alat ukur secara paralel dengan tegangan sumber rangkaian (lihat gambar dibawah ini).

Gambar 2.10. Skema Pengukuran Tegangan

Tegangan listrik terdiri dari dua jenis yaitu tegangan listrik AC dan tegangan listrik DC. Tegangan listrik AC adalah tegangan bolak-balik (alternate current) dimana sumber tegangan ini dihasilkan dari listrik PLN. Sedangakan tegangan listrik DC adalah tegangan searah (direct current) dimana sumber tegangan ini dihasilkan dari peralat seperti ACCU, battrey maupun adaptor. (Richard Blocher,2003).

BAB III PERANCANGAN SISTEM

3.1. Peralatan dan Bahan Pembuatan alat Sistem Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16 ini memerlukan beberapa peralatan dan bahan yaitu antara lain : 1. PCB. 2. Solder dan timah. 3. Minimum system mikrokontroler ATMEGA16. 4. LCD display 16 x 2. 5. Power Supply 12 Vdc dan 5 Vdc 6. Kabel AC. 7. AC connector. 8. Pompa air. 9. Toples plastik (tandon air)

3.2. Perancangan Perangkat Keras Perancangan merupakan bagian yang terpenting dari seluruh pembuatan tugas akhir ini yang pada perinsipnya perancangan dan sistematika yang baik akan memberikan kemudahan-kemudahan proses dalam pembuatan alat. Adapaun diagram blok dari perancangan perangkat keras Sistem Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler ATMEGA16 adalah seperti dibawah ini :

SENSOR BATAS ATAS

Mikrokontroler
ATMEGA 16

DRIVER
Mikrokontr LCD oler

POMPA
Mikrokontr oler AT89S51

Mikrokontr
SENSOR BTS oler BAWAH

AT89S51

AT89S51 Mikrokontr Gambar 3.1 Blok Diagram Alat oler AT89S51

Untuk mengetahui Cara kerja dari Pengatur Ketinggian Air Otomatis Berbasis Mikrokontroler ATMEGA16 berdasarkan blok diagram alat diatas yaitu saat power supply menyala (ON) akan membuat minimum sistem ATMEGA16, LCD display juga dalam posisi menyala (ON). Pada saat sensor bawah Off kemudian sinyal dikendalikan oleh rangkaian mikrokontroler selanjutnya driver akan mengaktifkan pompa dan mengisi air pada tandon hasilnya akan ditampilkan di LCD (ON). Pada sensor atas ON / terkena air, kemudian sinyal dikendalikan oleh rangkaian mikrokontroler selanjutnya driver akan mematikan pompa dan hasilnya ditampilkan di LCD (Off). Ketika air habis dan sensor bawah Off tidak terkena air maka pompa akan kembali mengisi air hasilnya akan ditampilkan di LCD (ON) demikian seterusnya. 3.2.1. Perancangan Sensor Dalam perancangan sensor (sensor batas terendah dan sensor batas tertinggi), dapat memanfaatkan sebuah bahan penghantar (konduktor) seperti tembaga, timah. Pada perancangan disini menggunakan kabel sebagai sensornya. Sensor terdiri dari tiga bagian, yaitu sensor A (sebagai sensor normal) yang harus selalu terendam dalam air, sensor B (

sebagai sensor batas terendah) yang berfungsi untuk memberikan sinyal ketika air dari permukaan tinggi menuju rendah, sehingga memberikan trigger untuk diumpankan pada rangkaian mikrokontroler ATMEGA16, sensor C (sebagai sensor batas teratas ) untuk memberikan sinyal ketika air terisi dari permukaan terendah menuju tinggi, dimana ketika air menyentuh sensor batas tertinggi pada saat inilah trigger untuk diumpankan ke rangkaian mikrokontroler ATMEGA16
SENSOR

SLANG

Gambar 3.2. Bagian sensor tampak samping

Pada perancangan sensor disini memanfaatkan toples plastik untuk menempatkan rangkaian sensor. Pada bagian ini terdapat lubang yang digunakan untuk menempatkan slang. Bagian sensor terbuat dari kabel yang terdiri dari sensor C ( sensor batas atas), sensor B ( sensor batas bawah ), sensor paling bawah (sensor netral/ Ground) slang untuk mengisi air dan slang untuk mengosongkan air Pembuatan lubang ini menggunakan alat bantu bor. 3.2.2. Rangkaian Mikrokontroler ATMEGA16 Mikrokontroller ATMEGA16 adalah suatu chip IC yang terdiri dari 40 pin, dalam perancangan alat ini pin-pin yang digunakan adalah : 1. PC0 s/d PC7 digunakan untuk tampilan LCD 2. PD6 dan PD7 digunakan untuk untuk rangkaian sensor 3. Pin/kaki Chip 12 digunakan sebagai X-TAL2 4. Pin/kaki Chip 13 digunakan sebagai X-TAL1 5. Pin/kaki Chip 32 dan 30 AVCC. 6. PB0 digunakan sebagai masukan rangkian Driver 7. Pin 11(GND) digunakan sebagai ground 8. Pin 10 (VCC) digunakan sebagai sumber tegangan digunakan sebagai AREF dan

Gambar 3.3. Rangkaian Mikrokontroler ATMEGA16

3.2.3. Rangkaian Driver Keluaran dari Rangkaian mikrokontroler ATMEGA16 kemudian masuk kerangkaian Driver (PB0) yang kemudian diumpankan ke relay, dimana rangkaian tersebut diperlukan sebuah rangkaian penguat tegangan. Rangkaian penguat tegangan dapat dibangun dari komponen transistor. Transistor T1 (9012) berfungsi sebagai saklar terbuka dimana ketika PB0 berlogika (0). Setelah transistor T1 (9012) terbuka maka transistor Q1 (TIP131) juga dalam kondisi terbuka karena ada sumber tegangan sehingga relay on dan pompa menyala. Jika PB0 berlogika 1 transistor T1 (9012) berfungsi sebagai saklar tertutup, sehingga transistor Q1 tidak ada sumber tegangan maka relay dalam kondisi off dan pompa berhenti.

Pada

rangkaian

tersebut

Relay

berfungsi

sebagai

penghubung dan pemutus (tegangan AC Pompa air), yang fungsinya sama dengan saklar tetapi saklar disini adalah saklar elektronik.

Gambar 3.4. Rangkaian Driver

Sedangkan Dioda IN 4001 yang dipararel dengan Relay berfungsi sebagai pemblokir tegangan ketika pada relay terjadi induksi agar tidak terjadi hubungan singkat. 3.2.4. Pompa Air Pompa air adalah suatu alat yang berfungsi untuk memompa air dimana pada bagian pompa air ini menggunakan pompa air pada aquarium ikan hias yang dijual dipasaran . Pada sistem disini pompa air berfungsi untuk mengisi air dan menghentikan air masuk kepenampung air (tandon) sesuai masukan yang diterima dari rangkaian driver, dimana ketika relay dalam kondisi ON(Menyala) pompa berfungsi mengisi air pada penampung air dan sebaliknya ketika relay dalam kondisi OFF (mati) pompa air berhenti mengisi air.

Adapun gambar dari pompa air terlihat pada gambar 3.5. dibawah ini :

Gambar 3.5 Pompa air

3.2.5. Power Supply Rangkaian Power Supply digunakan untuk memberi

tegangan ke dalam mikrokontroler

yang stabil dan mempunyai

arus yang cukup ke dalam mikrokontroler sehingga tidak terjadi tegangan turun saat dioperasikan. Mikrokontroler ATMEGA16

membutuhkan sebuah tegangan tunggal sebesar +4,5 sampai +5 Volt dan relay membutuhkan tegangan sebesar 12 Volt untuk dapat aktif. Untuk itu dibuatlah catu daya dengan komponen sebagai

berikut. Transformator sebesar 500 mA digunakan untuk menurunkan tegangan bolak-balik dari PLN yang sebesar 220 volt menjadi tegangan yang lebih kecil yaitu 5 volt yang digunakan untuk menghidupkan mikrokontroler dan 12 volt untuk mengaktifkan relay

untuk mengendalikan pompa.

Tegangan bolak-balik yang telah

diturunkan ini kemudian disearahkan oleh dioda penyearah yang disusun dalam susunan jembatan (bridge) dan hasil penyearahan adalah tegangan searah dengan tegangan sebesar 15 volt untuk menggerakkan relay. IC 7805 digunakan untuk menstabilkan tegangan tersebut menjadi tegangan 5 volt dan IC 7812 digunakan untuk menstabilkan tegangan tersebut menjadi tegangan 12 volt yang selanjutnya digunakan untuk mencatu rangkaian.

Gambar 3.6. Rangkaian Power Supply

3.2.6. Pembuatan Kotak Rangkaian Pembuatan kotak dimulai dengan menggambar pola pada papan acrylic sesuai desain rancangan kemudian dipotong per bagian. Bagian pertama yang dibuat yaitu bagian dasar/alas Bentuk dari dasar/alas kotak adalah :

L C D

Rangkaian Mikrokontroler Tempat Rangkaian ATMEGA 16 Mikrokontroler AT16


Rangkaian Power Supply

Trafo

Gambar 3.7. Bagian Dasar Untuk Penempatan Rangkaian

Proses berikutnya adalah membuat bagian sumber air dimana pada bagian ini memanfaatkan toples plastik. Pada bagian ini didalamnya terdapat pompa air untuk yang digunakan untuk menyedot air, slang untuk mengalirkan air. Adapun gambar dari sumber air adalah :

SLANG

Wadah sensor

Pompa Air

Gambar 3.8. Bagian TampakSamping dari umber air

3.3 . Perencanaan Perangkat Lunak 3.3.1. Flowchart Dari gambar flow chart dibawah ini maka dapat dijelaskan bahwa pertama diawali dengan mulai atau start, kemudian masuk ke bagian inialisasi Input dan Output (I/O), inialisasi ADC (Analog Digital to Conventer) 8 bit, tugas ADC akan membaca sinyal yang berasal dari sensor dimana pada sensor memiliki dua keadaaan yaitu sensor atas dan ensor bawah. Jika sensor bawah Off akan mengaktifkan pompa dan mengisi air pada tandon hasilnya akan

ditampilkan di LCD (ON), ketika sensor atas ON / terkena air pompa akan mati hasilnya ditampilkan di LCD (Off). Ketika air habis dan sensor bawah Off tidak terkena air maka pompa akan kembali mengisi air hasilnya akan ditampilkan di LCD (ON) demikian seterusnya. Flowchart sistem kerja mikrokontroler pada Pengatur Ketinggian Air otomatis Berbasis Mikrokontroler dengan

ATMEGA16 ini adalah sebagai berikut :

Start

Listrik off? T Inisialisasi I/O

Baca sensor Tampilkan di LCD

Sensor bawah off? Y Pompa on

Baca sensor Tampilkan di LCD

Sensor atas on? Y Pompa off

End

Gambar 3.9. Flowchart Tandon Air Otomatis Berbasis Mikrokontroler ATMEGA16

3.3.2. Perancangan Program


#include <mega16.h> #include <delay.h> #include <stdio.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h> #define pompa PORTB.0 #define ADC_VREF_TYPE 0x20 // Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10; return ADCH; } // Declare your global variables here unsigned char layar_1[16],layar_2[16]; unsigned char up_level,down_level; void init_io(void) { // Declare your local variables here //inisialisasi input output

// Input/Output Ports initialization

// Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=InFunc0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00; // Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x01; DDRB=0x01; // Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh

// OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; // Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00;

TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 172,800 kHz // ADC Voltage Reference: AREF pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE; ADCSRA=0x86;

// LCD module initialization lcd_init(16); } void title(void) { lcd_gotoxy(0,0); lcd_putsf("Sistem Detektor"); //tampilan judul

lcd_gotoxy(0,1); lcd_putsf(" Level Air"); delay_ms(2000); } void view() { lcd_clear(); if(up_level<175)sprintf(layar_1,"Up:ON"); else sprintf(layar_1,"Up:OFF"); lcd_gotoxy(0,0);lcd_puts(layar_1); if(pompa==1)sprintf(layar_2,"Pompa:OFF"); else sprintf(layar_2,"Pompa:ON"); lcd_gotoxy(0,1);lcd_puts(layar_2); if (down_level<175)sprintf(layar_1,"Down:ON"); else sprintf(layar_1,"Down:OFF"); lcd_gotoxy(7,0);lcd_puts(layar_1); delay_ms(3); } void read_sensor() { up_level=read_adc(1); down_level=read_adc(0); } void main() { init_io(); title(); start: for(;;) { read_sensor(); view(); //baca ADC sensor //tampilkan kondisi sensor dan pompake lcd //inisialisasi input output //tampil judul di lcd //baca sensor atas //baca sensor bawah //tampilan kondisi sensor dan pompa di lcd

if(down_level>175) {pompa=0; break;} pompa on -->keluar dr looping delay_ms(200); } for(;;) { read_sensor(); view(); //baca ADC sensor //tunda 200ms

//jika sensor bawah off maka

//tampilkan kondisi sensor dan pompa ke lcd //jika sensor atas on maka pompa

if(up_level<175) {pompa=1; break;} mati ---> kelular dr looping delay_ms(200); } goto start; //kembali ke start //tunda 200ms

3.3.3. Memasukkan File Hexa Ke Dalam Mikrokontroler Tahap selanjutnya setelah semua komponen dirakit dan dipasang pada akrilik kemudian tahap berikutnya adalah memasukkan file hexa ke dalam mikrokontroler. Langkah-langkah memasukkan file hexa tersebut adalah sebagai berikut : 1. Instal software Code Vision AVR ke komputer. 2. Pasang alat USB AVR Programmer dan lakukan instalasi driver USB AVR Programmer ke komputer. 3. Hubungkan USB AVR Programmer dengan port pemrogram pada minimum sistem mikrokontroler ATMEGA16. 4. Jalankan program Code Vision AVR. 5. Pada program Code Vision AVR, klik menu Setting Programmer. Akan mucul jendela Programmer Setting. Pada bagian AVR Chip Programmer Type pilih Atmel AVRProg (AVR910), kemudian pilih Port sesuai dengan port yang

menghubungkan antara USB AVR Programmer dengan port pemrogram pada minimum sistem mikrokontroler ATMEGA16. Setelah itu setting nilai baud rate 115200. 6. Buka Chip Progammer pada bagian Tools. Akan muncul jendela tampilan Code Vision AVR Chip Programmer Jendela ini akan digunakan untuk proses memasukkan file hexa ke dalam mikrokontroler ATMEGA16. 7. Pada tampilan Code Vision AVR Chip Programmer, tekan Read Chip Signature untuk memeriksa apakah USB AVR Programmer bisa berkomunikasi dengan port pemrogram pada minimum sistem mikrokontroler ATMEGA16. 8. Setelah memastikan port USB AVR Programmer terhubung dengan port ADC mikrokontroler proses selanjutnya adalah menghapus chip. Proses ini bertujuan untuk membersihkan chip mikrokontroler sebelum dimasuki program baru. Tekan menu Program Erase Chip. 9. Proses selanjutnya adalah melakukan Load Flash. Pilih menu File Load Flash, pilih file dv.hex, klik Open. 10. Proses memasukkan file hexa siap dilakukan. Tekan menu Program Flash, tunggu hingga 100%. 11. Proses memasukkan file hexa selesai dilakukan.

BAB IV PENGUJIAN ALAT

4.1. Pengujian Alat Pengujian alat dimaksudkan untuk menguji kinerja tiap blok bagian alat secara keseluruhan. Pengujian dapat dilakukan dengan memberikan sinyal masukan pada rangkaian yang diuji, menganalisis sinyal keluaran, tinjauan rancangan dan perbaikan kinerja. Pemberian sinyal masukan diawali dengan pemberian sumber tegangan. Apabila sinyal keluaran telah sesuai maka pengujian tiap blok dihentikan dan pada bagian blok tersebut dinyatakan telah berfungsi dengan baik dan dilanjutkan pada pengujian blok berikutnya. Namun apabila sinyal keluaran belum mencapai kondisi yang dikehendaki, maka dilakukan perbaikan dengan mengganti nilai komponen-komponen yang lain .Tidak menutup kemungkinan penggantian komponen aktif (Transistor, IC) jika komponen tersebut ternyata rusak sehingga tidak dapat bekerja dengan baik .

4.2. Pengujian Rangkaian Power Supply Pengujian terhadap catu daya dilakukan dengan mengukur nilai tegangan pada beberapa titik ukur. Gambar 4.1. adalah rencana titik uji pada rangkaian power Supply.

Gambar 4.1 Pengujian rangkaian power Supply Sumber tegangan yang digunakan dalam sistem ini adalah sumber tegangan DC sebesar 12V dan 5V. Gambar rangkaian yang diuji tunjukkan pada Gambar 4.13. Power supply diuji pertama kali, karena digunakan untuk menjalankan sistem secara keseluruhan. Tegangan 5V digunakan untuk menjalankan mikrokontroler, dan driver. Setelah dilakukan percobaan dan pengujian seperti pada Gambar 4.1. Tabel 4.1 Hasil Pengukuran Catu Daya No Titik Uji Hasil ukur (V) 1 2 3 Titik A Titik B Titik C 11,97V 12,2V 4.98V

Berdasarkan data pengamatan pada Tabel 4.1. diketahui bahwa nilai output dari trafo step down adalah 11,97V. Nilai tegangan ini berasal dari trafo step down yang menurunkan tegangan dari AC 220V ke AC 12V. Nilai tegangan ini kemudian disearahkan dengan dua buah dioda dengan sistem penyearah gelombang penuh. Keluaran dioda ini setelah diberi kapasitor nilainya terukur sebesar 12,2V. Tegangan 12,2V ini terlalu besar untuk memberikan suplai

mikrokontroler sehingga digunakan regulator 7805 seperti pada Gambar 4.7. Regulator 7805 menghasilkan tegangan keluaran sebesar output terukur 4.98V. Nilai keluaran ini digunakan untuk memberikan suplai

mikrokontroler, yang membutuhkan tegangan kerja 5V.

4.3. Pengujian Rangkaian driver Pengujian rangkaian driver dilakukan dari keluaran mikrokontroler menuju percabangan resistor 10K dan resistor 1K (titik A). Selanjutnya pada titik A tersebut diukur tegangannya terhadap Ground, kemudian langkah berikutnya adalah mengukur tegangan basis (VB) dengan tujuan untuk mengetahu rangkaian driver sudah bekerja dengan baik yang ditunjukan pada saat relay On= pompa Off dan pada saat relay Off = pompa On. Adapun gambar pengukuran terlihat pada gambar 4.8. dibawah ini

AC 220 AC 220 ke Pompa

Gambar 4.2. Pengujian rangkaian driver

Dari hasil pengukuran didapatkan data sebagai berikut : Tabel 4.2 Hasil Pengukuran rangkaian Driver Titik B Out ke pompa (Tegangan Kondisi Relay (Volt ) Basis/VB) 4.7V Close (ON) 0VAC 0,5V Open (Off) 219VAC

Kondisi titik A 0,3V 4,9V

Kondisi Pompa Pompa off PompaOn

Dari hasil pengukuran diatas ketika kondisi titik A =0, 3 V, pada titik B=4,7 V maka pada kondisi relay = Close ( ON) tegangan pada keluaran pompa = 0 V artinya kondisi pompa air mati sehingga tidak mengisi air. Selanjutnya ketika kondisi titik A = 4,9 V, pada titik B= 0,5 V maka pada kondisi relay = Open ( Off) tegangan pada keluaran pompa = 219 V artinya kondisi pompa air menyala sehingga akan mengisi air.

4.4. Pengujian Alat Utuh Pengujian dilakukan menggunakan toples, kondisi ini menyerupai kondisi yang sebenarnya di dalam tandon air. Pada saat pengujian semua bagian berjalan sebagaimana mestinya. Pada sensor air telah bekerja mampu memberikan umpan ke bagian kontroller. Bagian kontroller juga mampu merespon umpan dari sensor air. Bagian kontroller melanjutkan ke bagian relay driver dan diteruskan untuk memberikan instruksi ke bagian LCD dan pompa air.

. Gambar 4.3 Rangkaian saat air penuh

Gambar 4.4 Rangkaian saat air berkurang

Gambar 4.5 Saat air tandon berkurang pompa air hidup

Gambar 4.6 Saat air tandon penuh pompa air mati

4.5. Cara Penggunaan Alat a. Pasang sensor kedalam bak mandi. Kemudian sensor tersebut ditempel di dinding tandon air. b. masukkan steker kedalam terminal jala listrik. c. Tandon air siap digunakan dan alat bekerja.

BAB V PENUTUP

5.1. Kesimpulan Dari penelitian yang telah dilakukan dapat diambil kesimpulan: 1. Dapat membantu dan mempermudah pekerjaan manusia dalam pengisian tandon air, karena pengguna tidak perlu mematikan dan menghidupkan pompa air ketika air penuh dan habis. 2. Sistem ini menggunakan sistem otomatis bila air penuh pompa mati sendiri dan ketika air habis pompa akan menyala dengan sendirinya. 3. Penggunaan LCD digunakan untuk mengetahui dan menampilkan keadaan level air sehingga mempermudah proses pembacaan hasil pengamatan.

5.2. Saran Alat ini dapat dikembangkan lebih lanjut sehingga bisa menjadi sempurna, beberapa pengembangan yang bisa dilakukan diantaranya adalah : 1. Dari segi desain bisa dirancang dengan ukuran yang lebih kecil sehingga akan mudah dibawa kemana-mana. 2. Alat ini menggunakan sumber tenaga arus dari listrik sehingga ketika tidak ada listrik alat ini tidak bisa digunakan. Pengembangan yang bisa dilakukan adalah mengganti sumber tenaganya dengan batu baterei sehingga meski tidak ada listrik sekalipun alat ini masih bisa digunakan dan lebih praktis untuk dibawa karena tidak memerlukan kabel.

DAFTAR PUSTAKA

Alwajiz, kode-warna-resistor, http://wajiz.wordpress.com/2007/02/19/kodewarna-resistor/.Diakses 19 juli 2011, 20:25:10 Bishop, Owen, Dasar-dasarElektronika, Terjemahan, Jakarta: Penerbit Erlangga. 2004 Petruzella, Frank D,Elektronik circuit, EdisiTerjemahan, Yogyakarta: Penerbit Andi. 2001 Frieyadie, Panduan Pemrograman C++, Yogyakarta: Penerbit Andi Yogyakarta. 2006 Heri Andrianto, Pemrograman Mikrokontroler Penerbit Informatika. 2008 AVR Atmega, Yogyakarta: Diakses 19 februari

http://electroniclab.com/index.php?action=html&fid=30. 2012, 20:20:15

http://library.um.ac.id/free-contents/index.php/pub/detail/aplikasi-mikrokontroler untuk-otomatisasi-kran-wudhu-riza-tri-prasetyo-39069.html. Diakses 6 maret 2012 15:05:30 http:// digilib.uns.ac.id/pengguna .php?mn=showview&id=15418. Diakses 6 maret 2012 15:30:00 http://www.pustakaskripsi.com/topics/sistem+pemantauan+ketinggian+air+secara +real+time+berbasis+mikrokontroler+at89c2051. Diakses 6 maret 2012, 15:45:00 M.Ary Heryanto, Wisnu Adi P, Pemrograman Bahasa C Untuk Mikrokontroler ATMEGA8535, Yogyakarta: Penerbit Andi. 2007 Widodo Budiharto, Panduan Praktikum Mikrokontroler AVR ATMega16, Yogyakarta: Penerbit ELEX MEDIA. 2008

Lampiran 1 Listing Program


#include <mega16.h> #include <delay.h> #include <stdio.h>

// Alphanumeric LCD Module functions #asm .equ __lcd_port=0x15 ;PORTC #endasm #include <lcd.h>

#define pompa PORTB.0 #define ADC_VREF_TYPE 0x20

// Read the 8 most significant bits // of the AD conversion result unsigned char read_adc(unsigned char adc_input) { ADMUX=adc_input|ADC_VREF_TYPE; // Start the AD conversion ADCSRA|=0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x10)==0); ADCSRA|=0x10;

return ADCH; }

// Declare your global variables here unsigned char layar_1[16],layar_2[16]; unsigned char up_level,down_level; void init_io(void) { // Declare your local variables here //inisialisasi input output

// Input/Output Ports initialization // Port A initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=InFunc0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTA=0x00; DDRA=0x00;

// Port B initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTB=0x01; DDRB=0x01;

// Port C initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTC=0x00; DDRC=0x00;

// Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T PORTD=0x00; DDRD=0x00; // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00;

// Timer/Counter 1 initialization // Clock source: System Clock // Clock value: Timer 1 Stopped // Mode: Normal top=FFFFh

// OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overflow Interrupt: Off // Input Capture Interrupt: Off // Compare A Match Interrupt: Off // Compare B Match Interrupt: Off TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;

// Timer/Counter 2 initialization // Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal top=FFh // OC2 output: Disconnected ASSR=0x00; TCCR2=0x00;

TCNT2=0x00; OCR2=0x00;

// External Interrupt(s) initialization // INT0: Off // INT1: Off // INT2: Off MCUCR=0x00; MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00;

// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00;

// ADC initialization // ADC Clock frequency: 172,800 kHz // ADC Voltage Reference: AREF pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE; ADCSRA=0x86;

// LCD module initialization lcd_init(16); } void title(void) { lcd_gotoxy(0,0); lcd_putsf("Sistem Detektor"); lcd_gotoxy(0,1); lcd_putsf(" Level Air"); delay_ms(2000); } //tampilan judul

void view() { lcd_clear();

//tampilan kondisi sensor dan pompa di lcd

if(up_level<175)sprintf(layar_1,"Up:ON"); else sprintf(layar_1,"Up:OFF"); lcd_gotoxy(0,0);lcd_puts(layar_1); if(pompa==1)sprintf(layar_2,"Pompa:OFF"); else sprintf(layar_2,"Pompa:ON"); lcd_gotoxy(0,1);lcd_puts(layar_2); if (down_level<175)sprintf(layar_1,"Down:ON"); else sprintf(layar_1,"Down:OFF"); lcd_gotoxy(7,0);lcd_puts(layar_1); delay_ms(3); }

void read_sensor() { up_level=read_adc(1); down_level=read_adc(0); } void main() { init_io(); title(); start: for(;;) { read_sensor(); view(); //baca ADC sensor //tampilkan kondisi sensor dan pompake lcd //jika sensor bawah off maka //inisialisasi input output //tampil judul di lcd //baca sensor atas //baca sensor bawah

if(down_level>175) {pompa=0; break;} pompa on -->keluar dr looping delay_ms(200); } for(;;) { read_sensor(); view(); //baca ADC sensor //tunda 200ms

//tampilkan kondisi sensor dan pompa ke lcd //jika sensor atas on maka pompa

if(up_level<175) {pompa=1; break;} mati ---> kelular dr looping delay_ms(200); } goto start; //kembali ke start //tunda 200ms

You might also like