BERBASIS MIKROKONTROLER
TUGAS AKHIR
Disusun Oleh :
RATNA DESTA WAHYU NINGTIAS NPM. 0634010057
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
BERBASIS MIKROKONTROLER
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagai Persyaratan Dalam Memperoleh Gelar Sarjana Komputer
Program Studi Teknik Informatika
Disusun Oleh :
RATNA DESTA WAHYU NINGTIAS
NPM : 0634010057
PROGRAM STUDI TEKNIK INFORMATIKA
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN”
JAWA TIMUR
SISTEM PENGENDALIAN AQUARIUM DAN
PEMBERIAN PAKAN IKAN SECARA OTOMATIS
BERBASIS MIKROKONTROLER
Disusun oleh :
RATNA DESTA WAHYU NINGTIAS
NPM : 0634010057
Telah disetujui mengikuti Ujian Negara Lisan Gelombang II Tahun Akademik 2010 / 2011
Pembimbing Utama
Basuki Rahmat, S.Si, MT NPT. 369 070 602 091
Pembimbing Pendamping
Delta Ardy Prima, S.ST NPT. 386 081 002 971
Mengetahui,
Ketua Jurusan Program Studi Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur
SISTEM PENGENDALIAN AQUARIUM DAN
PEMBERIAN PAKAN IKAN SECARA OTOMATIS
BERBASIS MIKROKONTROLER
Disusun Oleh :
RATNA DESTA WAHYU NINGTIAS
NPM : 0634010057
Telah dipertahankan dan diterima oleh Tim Penguji Skripsi Program Studi Teknik Informatika Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur Pada Tanggal 26 November 2010
Pembimbing : 1.
Basuki Rahmat, S.Si, MT NPT. 369 070 602 071
Tim Penguji : 1.
Ir. Kemal Wijaya, MT NIP. 1959 0925 198703 1001
2.
Delta Ardy Prima, S.ST NPT. 386 081 002 971
2.
Barry Nuqoba, S.Si, M.Kom
3.
Delta Ardy Prima, S.ST NPT. 386 081 002 971
Mengetahui,
Dekan Fakultas Teknologi Industri
Universitas Pembangunan Nasional ”Veteran” Jawa Timur
Dengan memanjatkan puji syukur atas kehadirat Allah SWT atas segala rahmat, taufik, hidayah dan inayah-Nya sehingga penulis dapat menyelesaikan laporan Tugas Akhir ini yang berjudul : Sistem Pengendalian Aquarium dan Pemberian Pakan Ikan secara Otomatis Berbasis Mikrokontroler.
Adapun Tugas Akhir ini disusun untuk memenuhi syarat memperoleh gelar Sarjana Teknik di jurusan Teknik Informatika, Fakultas Teknologi Industri, Universitas Pembangunan Nasional “Veteran” Jawa Timur.
Tugas Akhir ini dapat terselesaikan karena tidak lepas dari bimbingan pengarahan, petunjuk dan bantuan dari berbagai pihak yang membantu dalam penyusunannya. Oleh karena itu, penulis tidak lupa untuk menyampaikan terima kasih yang tak terhingga kepada :
1. Bapak Ir. Sutiyono, MT, selaku Dekan Fakultas Teknologi Industri UPN “Veteran” Jawa Timur.
2. Bapak Basuki Rahmat, S.Si, MT, selaku Ketua Jurusan Teknik Informatika UPN “Veteran” Jawa Timur dan dosen pembimbing Tugas Akhir.
3. Bapak Delta Ardy Prima, S.ST, selaku dosen pembimbing, dosen penguji Tugas Akhir dan dosen penguji Seminar TA.
8. Sahabatku (Rifi) atas dukungan dan kerjasamanya untuk menyelesaikan Tugas Akhir selama ini.
9. Teman terbaikku, Bobi, Fenty, Asrofi, Aziz, Sena, Hanif, Dapit, Yogi, Adit, Candra, Renda, Norman atas dukungan dan do’anya.
10. Teman-teman Kelas A angkatan 2006 atas dukungan, do’a dan kekompakkannya.
11. Serta semua pihak yang senantiasa mendukung.
Penulis menyadari bahwa penulisan laporan Tugas Akhir ini masih jauh dari kesempurnaan, baik isi maupun penyajiannya. Oleh karena itu, saran dan kritik yang membangun akan penulis terima dengan senang hati.
Akhir kata, semoga laporan ini dapat memberikan manfaat bagi semua pihak yang berkepentingan dan semoga Allah SWT memberikan balasan kepada semua pihak yang telah memberikan bantuan kepada penulis. Amin.
Surabaya, 2 Desember 2010
Halaman
LEMBAR PENGESAHAN ... i
KATA PENGANTAR ... ii
ABSTRAK ... iv
DAFTAR ISI ... v
DAFTAR GAMBAR ... ix
DAFTAR TABEL ... xi
BAB I PENDAHULUAN... 1
1.1...Latar Belakang ... 1
1.2...Rumus an Masalah ... 2
1.3...Batasa n Masalah ... 2
1.4...Tujuan ... 2
1.5...Manfa at ... 3
1.6...Metod ologi Penelitian ... 3
4.4...Imple engujian Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ... 68
5.3.1...Inisiali sasi Waktu dan Suhu ... 68
5.3.3...Penguj ian Pergantian Air ... 70 5.3.4...Penguj
ian Pengukuran Suhu ... 72 5.4...H
asil Pengujian Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ... 73 BAB VI KESIMPULAN DAN SARAN ... 75 6.1...Kesim
pulan ... 75 6.2...Saran
Halaman
Tabel 2.1. Assembly Directive ... 7
Tabel 2.2. Daftar Instruksi ... 7
Tabel 2.3. Fungsi Pin LCD ... 13
Tabel 2.4. Penunjuk Cursor ... 16
Tabel 2.5. Posisi Karakter Pada LCD Karakter 2x16 ... 17
Tabel 2.6. Fungsional Pin LM358 ... 22
Halaman
Gambar 2.1. Susunan Pin Mikrokontroler AT89S52 ... 9
Gambar 2.2. Simbol Relay ... 12
Gambar 2.3. Konfigurasi Pin LCD ... 13
Gambar 2.4. Penampakan Cursor pada LCD ketika C=1 ... 16
Gambar 2.5. Penampakan Cursor pada LCD ketika B=1 ... 16
Gambar 2.6. Karakteristik LM35 ... 18
Gambar 2.7. RTC DS1307 ... 19
Gambar 2.8. Diagram Pin DS1307 ... 19
Gammar 2.9. Simbol Diagram dan Fisik Op-amp 358 ... 21
Gambar 2.10. Motor DC Sederhana ... 23
Gambar 2.11. Medan Magnet Membawa Arus Mengelilingi Konduktor .... 23
Gambar 2.12. Prinsip Kerja Motor DC ... 24
Gambar 3.1. Alur Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ... 32
Gambar 3.2. Blok Diagram ... 36
Gambar 3.3. Rancangan Pemberian Pakan ... 41
Gambar 3.4. Rancangan Heater Bekerja ... 42
Gambar 3.5. Rancangan Heater Selesai Bekerja ... 42
Gambar 3.6. Rancangan Proses Pembuangan Air ... 43
Gambar 3.7. Rancangan Proses Pengisian Air ... 43
Gambar 4.1. Format Binary File ... 50
Gambar 4.2. Proses Pengubahan Binary File menjadi Intel-HEX File ... 51
Gambar 4.3. Proses Compile ... 51
Gambar 4.4. Proses Compiler Sukses ... 52
Gambar 4.5. Rangkaian Pada PCB ... 64
Gambar 4.6. Rancangan Keseluruhan ... 65
Gambar 5.1. Inisialisasi Waktu dan Suhu ... 68
Gambar 5.2. Proses Pemberian Pakan ... 70
Gambar 5.3. Proses Pergantian Air ... 71
Gambar 5.4. Kondisi Suhu Air Dibawah 260C ... 72
DOSEN PEMBIMBING I : BASUKI RAHMAT, S.Si, MT DOSEN PEMBIMBING II : DELTA ARDY PRIMA, S.ST
ABSTRAK
Pada perkembangannya kebutuhan akan teknologi komputer dirasa semakin penting, dan tidak hanya dalam satu bidang saja tapi semua bidang membutuhkan teknologi. Darisanalah muncul ide untuk mengoperasikan suatu sistem dengan menggunakan teknologi, khususnya teknologi komputer.
Sistem pengontrolan yang dilakukan oleh komputer akan menjadi lebih baik, cepat, tepat, aman, praktis, dan banyak lagi keuntungan lain yang didapatkan dari pada menggunakan cara manual. Dari beberapa keuntungan tersebut dapat dijadikan syarat untuk mewujudkan “Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan secara Otomatis Berbasis Mikrokontroler”.
Pemeliharaan ikan secara otomatis oleh sistem pengontrol akan memudahkan para penggemar ikan dalam pemeliharaan ikan, terutama pada saat ikan tersebut di tinggal oleh pemiliknya. Secara umum sistem ini telah dilengkapi oleh fasilitas pengontrol secara hardware maupun software sehingga dengan Tugas Akhir ini diharapkan dapat memberi ide untuk mengoptimalkan penggunaan fasilitas kontrol tersebut.
1.1.1. Latar Belakang
Akhir-akhir ini banyak orang yang gemar memelihara ikan hias. Dibalik kegemarannya tersebut, sebenarnya mereka menemukan kesulitan ketika sedang bepergian dengan waktu yang cukup lama. Sehingga mereka tidak dapat mengontrol secara langsung dalam hal pemberian pakan, suhu air, dan ketinggian air dalam akuarium. Padahal faktor yang sangat penting dalam pemeliharaan ikan hias adalah ketepatan waktu dalam pemberian pakan, suhu air dan ketinggian air dalam akuarium. Dalam hal ini, kebanyakan mereka mengkhawatirkan ketiga faktor tersebut. Ketiga faktor tersebut meliputi pemberian pakan yang harus dilakukan setiap hari, pergantian air yang harus dilakukan secara berkala karena semakin lama air dalam akuarium maka kejernihan air berkurang, suhu air yang cenderung turun ketika musim hujan sehingga diperlukan heater untuk menghangatkan air sedangkan mereka tidak berada di rumah.
1.2. Rumusan Masalah
Berdasarkan latar belakang diatas, maka dapat diambil rumusan masalah sebagai berikut :
“Bagaimana merancang dan membuat sistem pengendalian ruang budidaya dan pemberian pakan ikan secara otomatis berbasis mikrokontroler ?”
1.3. Batasan Masalah
Batasan-batasan masalah yang diberikan sesuai dengan permasalahan yang telah diterangkan diatas, antara lain :
1. Ruang budidaya menggunakan akuarium.
2. Alat ini menggunakan mikrokontroler AT89S52.
3. Suhu air diukur dengan menggunakan sensor suhu tipe LM35. 4. Sensor suhu bekerja ketika suhu minimum 260C.
5. Ketinggian air diukur dengan menggunakan 2 (dua) sensor ketinggian air, yaitu ketinggian air dalam keadaan minimum dan ketinggian air dalam keadaan maksimum.
6. Auto Feeder akan bekerja setiap 8 jam sekali dan akan berputar selama 5 detik untuk memberi pakan ikan.
7. Terdapat 2 pompa air, yaitu pump in (mengisi air) dan pump out (membuang air).
1.4. Tujuan
Tujuan dari Tugas Akhir adalah sebagai berikut :
1. Dapat mengendalikan dan mempelajari cara kerja Mikrokontroller AT89S52.
2. Dapat merancang alat yang mampu memberikan pakan ikan secara otomatis setiap 8 jam sekali.
3. Dapat merancang alat yang mampu mengukur suhu air.
4. Dapat merancang alat yang mampu mengganti air agar kejernihan air tetap terjaga.
1.5. Manfaat
Adapun manfaat yang dapat diambil dari pembuatan Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler adalah :
1. Dapat memberi pakan secara otomatis setiap 8 jam sekali.
2. Dapat menggantikan air yang berkala dikarenakan semakin lama air dalam akuarium maka kejernihan air akan berkurang setiap 3 hari sekali.
3. Dapat mengetahui suhu air yang cenderung turun ketika musim hujan. 4. Dan juga dapat mengisi air ketika terjadinya penguapan air yang
mengakibatkan berkurangnya air dalam akuarium.
1.6. Metodologi Penelitian
2. Merancang dan membuat perangkat keras Real Time Clock System.
3. Merancang dan membuat perangkat keras sistem pengontrol peralatan akuarium.
4. Merancang dan membuat perangkat lunak sistem pemeliharaan ikan hias air tawar berbasis mikrokontroler.
1.7. Sistematika Penulisan
Penulisan yang digunakan dalam laporan Tugas Akhir ini adalah sebagai berikut :
BAB I PENDAHULUAN
Bab ini berisi latar belakang permasalahan, perumusan masalah, batasan masalah, tujuan, manfaat, metodologi penelitian dan sistematika penulisan laporan Tugas Akhir.
BAB II TINJAUAN PUSTAKA
Pada bab ini akan dijelaskan tentang teori-teori serta penjelasan-penjelasan yang dibutuhkan dalam pembuatan Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler.
BAB III PERANCANGAN
BAB IV IMPLEMENTASI
Bab ini berisi penjelasan hasil Tugas Akhir serta pembahasan suorce code dari Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler. BAB V PENGUJIAN DAN ANALISA
Bab ini berisi pengujian dan analisa Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler.
BAB VI KESIMPULAN DAN SARAN
Bab ini berisi kesimpulan dan saran untuk proses pengembangan selanjutnya.
DAFTAR PUSTAKA
2.1. Bahasa Assembly
Bahasa assembly adalah bahasa pemrograman tingkat rendah. Dalam
pemrograman komputer dikenal dua jenis tingkatan bahasa, jenis yang pertama
adalah bahasa pemrograman tingkat tinggi (high level language) dan jenis yang
kedua adalah bahasa pemrograman tingkat rendah (low level language).
Bahasa pemrograman tingkat tinggi lebih berorientasi kepada manusia
yaitu bagaimana agar pernyataan-pernyataan yang ada dalam program mudah
ditulis dan dimengerti oleh manusia. Sedangkan bahasa tingkat rendah lebih
berorientasi ke mesin, yaitu bagaimana agar komputer dapat langsung
mengintepretasikan pernyataan-pernyataan program.
Kelebihan bahasa assembly adalah sebagai berikut :
1. Ketika di-compile, lebih kecil ukurannya.
2. Memori lebih hemat dan efisien.
3. Eksekusi lebih cepat.
Sedangkan kesulitan bahasa assembly adalah sebagai berikut :
1. Dalam melakukan suatu pekerjaan, baris program relatif lebih panjang
dibandingkan bahasa tingkat tinggi.
2. Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu
banyak.
Dalam program bahasa assembly terdapat dua jenis yang kita tulis dalam
program, yaitu :
1. Assembly Directive, yaitu merupakan kode yang menjadi arahan bagi
assembler/compiler untuk menata program.
Tabel 2.1. Daftar Assembly Directive
Assembly Directive Keterangan
EQU Pendefinisian konstanta
DB Pendefinisian data dengan ukuran satuan 1 byte DW Pendefinisian data dengan ukuran satuan 1 word DBIT Pendefinisian data dengan ukuran satuan 1 bit DS Pemesanan tempat penyimpanan data di RAM ORG Inisialisasi alamat mulai program
END Penanda akhir program
CSEG Penanda penempatan di code segment
XSEG Penanda penempatan di external data segment DSEG Penanda penempatan di internal direct data
segment
ISEG Penanda penempatan di internal indirect data segment
BSEG Penanda penempatan di bit data segment CODE Penanda mulai pendefinisian program XDATA Pendefinisian external data
DATA Pendefinisian internal direct data IDATA Pendefinisian internal indirect data
BIT Pendefinisian data bit
#INCLUDE Mengikutsertakan file program lain
2. Instruksi, yaitu kode yang harus dieksekusi oleh CPU mikrokontroler
dengan melakukan operasi tertentu sesuai dengan daftar yang sudah
tertanam dalam CPU.
Tabel 2.2. Daftar Instruksi
Instruksi Keterangan
ACALL Absolute Call
ADD Add
ADDC Add with Carry
Instruksi Keterangan
ANL AND Logic
CJNE Compare and Jump if Not Equal
CLR Clear
CPL Complement
DA Decimal Adjust
DEC Decrement DIV Divide
DJNZ Decrement and Jumo if Not Zero
INC Increment
JNZ Jump if Accumulator Not Zero
JZ Jump if Accumlator Zero
LCALL Long Call
LJMP Long Jump
MOV Move from Memory
MOVC Move from Code Memory
MOVX Move from Extended Memory
MUL Multiply
NOP No Operation
ORL OR Logic
POP Pop Value from Stack
PUSH Push Value Onto Stack
RET Return from Subroutine
RETI Return from Interrupt
RL Rotate Left
RLC Rotate Left Through Carry
RR Rotate Right
RRC Rotate Right Through Carry
SETB Set Bit
SJMP Short Jump
SUBB Subtract with Borrow
XCH Exchange Bytes
XCHD Exchange Digits
XRL Exclusive OR Logic
2.2. Mikrokontroler AT89S52
Mikrokontroler adalah mikroprosesor yang dirancang khusus untuk
aplikasi kontrol, dan dilengkapi denga ROM, RAM dan fasilitas I/O pada satu
chip. AT89S52 adalah salah satu anggota dari keluarga MCS-51/52 yang
dilengkapi dengan internal memori 8 Kbyte Flash PEROM (Programmable and
Erasable Read Only Memory), yang memungkinkan memori program untuk dapat
diprogram kembali. AT89S52 dirancang oleh ATMEL sesuai dengan instruksi
standar dan sesuai pin 80C5.
Mikrokontroler AT89S52 mempunyai 40 pin dengan catu daya tunggal 5
Volt. Ke-40 pin tersebut digambarkan sebagai berikut :
Gambar 2.1. Susunan Pin Mikrokontroler AT89S52
Fungsi dari masing-masing pin AT89S52 adalah :
1. Pin 1 – 8 (Port 1) merupakan port paralel 8 bit dua arah (bidirectional)
yang dapat digunakan untuk berbagai keperluan (general purpose).
2. Pin 9 merupakan pin reset. Reset aktif jika mendapat catuan daya.
3. Pin 10 – 17 (Port 3) adalah port paralel 8 bit dua arah yang memiliki
a. P3.0 (10) : RXD (port serial penerima data)
b. P3.1 (11) : TXD (port serial pengirim data)
c. P3.2 (12) : INT0 (input interupsi eksternal 0, aktif low)
d. P3.3 (13) : INT1 (input interupsi eksternak 1, aktif low)
e. P3.4 (14) : T0 (eksternal input timer/counter 0)
f. P3.5 (15) : T1 (eskternal input timer/counter 1)
g. P3.6 (16) WR (write, aktif low). Sinyal kontrol penulisan data dari
port 0 ke memori
4. Pin 18 sebagai XTAL 2, keluaran osilator yang terhubung pada kristal.
5. Pin 19 sebagai XTAL 1, masukan ke osilator berpenguatan tinggi,
terhubung pada kristal.
6. Pin 20 sebagai Vss, terhubung ke 0 atau ground pada rangkaian.
7. Pin 21 – 28 (Port 2) adalah port paralel 8 bit dua arah. Pot ini mengirim
byte alamat bila pengaksesan dilakukan pada memori eksternal.
8. Pin 29 sebagai PSEN (Program Store Enable) adalah sinyal yang
digunakan untuk membaca, memindahkan program memori eksternal
(ROM/EPROM) ke mikrokontroler (aktif low).
9. Pin 30 sebagai ALE (Address Latch Enable) untuk menahan alamat bawah
selama mengakses memori eksternal. Pin ini juga berfungsi sebagai PROG
(aktif low) yang diaktifkan saat memprogram internal flash memori pada
mikrokontroler (on chip).
10. Pin 31 sebagai EA (External Accesss) untuk memilih memori yang akan
digunakan, memori program internal (EA = Vcc) atau memori program
voltage) pada saat memprogram internal flash memori pada
mikrokontroler.
11. Pin 32 sampai 39 (Port 0) merupakan port pararel 8 bit dua arah. Berfungsi
sebagai alamat bawah yang dimultipleks dengan data untuk mengakses
program dan data memori eksternal.
12. Pin 40 sebagai Vcc, terhubung ke +5 V sebagai catuan untuk
mikrokontroler.
(Sumber : [4])
2.3. Relay
Relay merupakan bentuk hambatan terdiri atas titik-titik kontak bawah
dengan gulungan spoolnya tidak bergerak dan titik kontak bagian atas yang
bergerak. Prinsip kerja hambatan adalah menghubungkan titik-titik kontak bagian
bawah dengan titik bagian atas yaitu terletak gulungan spool dialiri arus listrik
yang timbul elektromagnet.
Bagian titik kontak dibagi menjadi dua bagian, yaitu :
1. Bagian kontak utama gunanya untuk menghubungkan dan memutuskan
arus listrik bagian yang menuju beban/pemakai.
2. Bagian kontak bantu gunanya untuk menghubungkan dan memutuskan
arus listrik ke bagian yang menuju bagian pengendali.
Kontak bantu mempunyai 2 kontak, yaitu kontak hubung (NC) dan kontak
Gambar 2.2. Simbol Relay
Relay merupakan sebuah saklar magnet yang dapat memutuskan dan
menutup sirkuit dari jarak jauh. Adapun jenisnya relay ada 2, yaitu :
1. Relay yang bekerja dari arus bolak-balik.
2. Relay yang bekerja dari arus rata-rata.
Pada prinsipnya proses kerja relay adalah jika gulungan kumparan dilalui
arus, maka inti menjadi magnet dan inti tersebut menarik jangkar. Sehingga
kontak A dan B putus, dan kontak antara B dan C menutup, maka jenis relay ini
kita namakan relay dengan kontak keluar.
2.4. LCD Dot Matrix
LCD adalah sebuah display Dot Matrix yang digunakan untuk
menmapilkan tulisan berupa angka atau huruf sesuai dengan yang diinginkan
(sesuai dengan program yang digunakan untuk mengontrolnya). LCD yang
digunakan adalah LCD Dot Matrix dengan karakter 16x2, sehingga kaki-kakinya
berjumlah 16 pin.
LCD sebagaimana output yang dapat menampilkan tulisan sehingga lebih
mudah dimengerti, dibandingkan jika menggunakan LED saja. Tampilan LCD
terdiri dari dua bagian, yakni bagian panel LCD yang terdiri dari banyak “titik”.
LCD dan sebuah mikrokontroler yang menempel dipanel dan berfungsi mengatur
Huruf atau angka yang akan ditampilkan dikirim ke LCD dalam bentuk
kode ASCII, kode ASCII ini diterima oleh mikrokontroler di dalam LCD menjadi
“titik-titik” LCD yang terbaca sebagai huruf satu angka. Dengan demikian tugas
mikrokontroler pemakai LCD hanyalah mengirimkan kode-kode ASCII untuk
ditampilkan.
Spesifikasi LCD secara umum yaitu :
1. Jumlah baris
2. Jumlah tegangan per baris
3. Tegangan kerja
Dibawah ini merupakan konfigurasi LCD :
Gambar 2.3. Konfigurasi Pin LCD
Fungsi dari pin pada LCD dapat dilihat pada tabel dibawah ini :
Tabel 2.3. Fungsi Pin LCD
Pin Simbol Fungsi
1 Vss / GND Tegangan 0 Volt / Ground
2 Vcc Tegangan Vcc (5+10% Volt)
3 Vee / Vcontrast Tegangan pengatur kontras pada LCD 4 RS (register select) 0 = memasukkan instruksi
1 = memasukkan data
5 R/W Signal yang digunakan untuk memilih mode membaca atau menulis
6 E (enable) Untuk mulai pengiriman datat atau instruksi 7 DB 0
13 DB 6 14 DB 7
Untuk mengirimkan data karakter
15 V+BL 16 V-BL
Untuk mengatur cahaya pada background LCD atau instruksi
Cara kerja menjalankan LCD adalah sebagai berikut :
1. Inisialisasi LCD
2. Arahkan pada alamat yang dihendaki
3. Tuliskan data ke LCD, maka karakter akan tampil pada alamat tersebut
Beberapa fungsi instruksi dari LCD, yaitu :
1. Display Clear
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 0 1
Display Clear membersihkan semua tampilan dan menggambarkan
cursor pada posisi semula(adress 0). Ruang kode 20 (heksadesimal) ditulis
ke semua alamat dari DD RAM, dan alamat 0 dari DD RAM ke AC
(Address Counter). Jika diubah, display akan kembali ke posisi semula
semua. Setelah perintah eksekusi pada Display Clear, mode entry akan
ditambahkan.
2. Cursor Home
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 0 1 * *: invalid bit
Cursor Home mengembalikan cursor ke posisi semula (address 0).
DD RAM jangan diubah. Jika cursor sedang ON, maka akan kembali ke
sebelah kiri.
3. Entry Mode Set
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 0 1 I/D S
Entry Mode Set diset untuk menunjukkan perpindahan cursor dan
apakah display akan diubah :
a. I/D
Ketika I/D = 1, alamat akan ditambah satu dan cursor
berpindah ke kanan.
Ketika I/D = 0, alamat akan berkurang satu dan cursor
berpindah ke kiri.
b. S
Ketika S = 1 dan I/D = 1, display berpindah ke kiri.
Ketika S = 1 dan I/D = 0, display berpindah ke kanan.
Ketika S = 0, display tak berpindah.
4. Display ON/OFF Control
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 0 1 D C B
Display ON/OFF Control mengembalikan total display dan cursor
ON dan OFF, dan membuat posisi cursor mulai berkedip.
a. D
Ketika D = 1, display ON
b. C
Ketika C = 1, cursor ditampilkan
Gambar 2.4. Penampakan Cursor Pada LCD Ketika C = 1
Ketika C = 0, cursor tidak ditampilkan
c. B
Ketika B = 1, karakter pada posisi cursor berkedip
Gambar 2.5. Penampakan Cursor Pada LCD Ketika B = 1
Ketika B = 0, karakter pada posisi cursor tidak berkedip
5. Cursor/Display Shift
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 0 1 S/C R/L * *
*: invalid bit
Cursor Display Shift memindah cursor dan mengubah display
tanpa mengubah isi dari DD RAM. Berikut ini tabel penunjukkan cursor,
yaitu :
Tabel 2.4. Penunjukkan Cursor
S/C R/L Operasi
S/C R/L Operasi
1 0 Semua display dipindah ke kiri dengan cursor 1 1 Semua display dipindah ke kanan dengan cursor
6. Function Set
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0 0 0 0 1 DL 1 * * * *: invalid bit
Function Set digunakan untuk mengeset pemisahan data length.
DL : ketika DL = 1, data length diset untuk 8 bit (DB7 sampai DB0).
Ketika DL = 0, data length diset untuk 4 bit (DB7 sampai DB4). Untuk bit
atas ditransfer lebih dulu, kemudian dilanjutkan bit bawah.
Tabel 2.5. Posisi Karakter Pada LCD Karakter 2x16
80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 Ca Cb Cc Cd Ce Cf
2.5. Sensor Suhu LM35
Sensor suhu LM35 berfungsi untuk mengkonversi besaran panas yang
ditangkap menjadi besaran tegangan. Jenis sensor suhu yang digunakan dalam
sistem ini adalah IC LM35, sensor ini memiliki presisi tinggi. Sensor ini sangat
sederhana dengan hanya memiliki 3 buah kaki. Kaki pertama, IC LM35
dihubungkan ke sumber daya. Kaki kedua sebagai output. Dan kaki ketiga
Gambar 2.6. Karakteristik LM35
Karakteristik dari IC LM35 adalah sebagai berikut :
1. Dapat dikalibrasi langsung ke dalam besaran Celcius.
2. Faktor skala linier +10mV/0C.
3. Tingkat akurasi 0,50C. Saat suhu kamar (250C).
4. Jangkauan suhu antara -550C sampai 1500C.
5. Bekerja pada tegangan 4 Volt hingga 30 Volt.
6. Arus kerja kurang dati 60µA.
7. Impedansi keluaran rendah 0,1Ω untuk beban 1 mA.
Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran
tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan
1000C setara dengan 1 Volt. Sensor ini mempunyai pemanasan diri (self heating)
kurang dari 0,10C, dapat dioperasikan dengan menggunakan power supply tunggal
dan dapat dihubungkan antar nuka (interface) rangkaian kontrol yang sangat
mudah. (Sumber [11])
2.6. RTC DS1307
Real Time Clock (RTC) merupakan suatu chip (IC) yang memiliki fungsi
sebagai penyimpan waktu dan tanggal. RTC DS1307 merupakan Real Time Clock
(RTC) menggunakan jalur paralel yang dapat menyimpan data-data detik, menit,
RTC DS1307 merupakan Real Time Clock (RTC) menggunakan jalur
paralel yang memiliki antarmuka serial Two-wire (I2C), sinyal luaran gelombang
kotak terprogram (Programmable Squarewave), deteksi otomatis kegagalannya
(power-fail) dan rangkaian switch, konsumsi daya kurang dari 500nA
menggunakan mode baterai cadangan dengan operasional osilator. Tersedia fitur
industri dengan ketahanan suhu -400C hingga +850C. Tersedia dalam kemasan 8
pin DIP atau SOIC.
Gambar 2.7. RTC DS1307
Sedangkan daftar pin DS1307 adalah sebagai berikut :
1. VCC : Primary Power Supply
2. X1, X2 : 32.768kHz Crystal Connection
3. VBAT : +3V baterai input
4. GND : Ground
5. SDA : Serial Data
6. SCL : Serial Clock
7. SQW/Out : Square Wave/Output Driver
Berikut adalah gambar diagram pin DS1307 :
Untuk masing-masing pin akan dijelaskan sebagai berikut :
1. X1 merupakan pin yang digunakan untuk dihubungkan dengan X2.
2. X2 berfungsi sebagai keluaran/output dari crystal yang digunakan dan
terhubung juga dengan X1.
3. VBAT merupakan backup supply serial RTC dalam menjalankan fungsi
waktu dan tanggal. Besarnya adalah 3V dengan menggunakan jenis
Lithium Cell atau sumber energi lain. Jika pin ini tidak digunakan maka
harus terhubung dengan Ground. Sumber tegangan dengan 48mAH atau
lebih besar dapat digunakan sebagai cadangan energi sampai lebih dari 10
tahun, namun dengan persyaratan untuk pengoperasian dalam suhu 250C.
4. GND berfungsi sebagai Ground.
5. SDA berfungsi sebagai masukan/keluaran (I/O) untuk I2C serial interface.
Pin ini bersifat open drain, oleh sebab ini membutuhkan external pull up
resistor.
6. SCL berfungsi sebagai clock untuk input ke I2C dan digunakan untuk
mensinkronisasi pergerakan data dalam serial interface. Bersifat open
drain, oleh sebab itu membutuhkan external pull up resistor.
7. SWQ/OUT sebagai squafe wave/output driver. Jika diaktifkan, maka akan
menjadi 4 frekuensi gelombang kotak yaitu 1kHz, 4kHz, 8kHz, 32kHz.
Sifat dari pin ini sama dengan sifat pin SDA dan SCL sehingga
membutuhkan external pull up resistor. Dapat dioperasikan dengan VCC
maupun dengan VBAT.
8. VCC merupakan sumber tegangan utama. Jika sumber tegangan terhubung
dengan baik. Namun jika backup supply terhubung juga dengan VCC,
namun besar VCC di bawah VTP, maka pengaksesan data tidak dapat
dilakukan.(Sumber : [3])
2.7. IC LM358
Penguat operasi (op-amp) merupakan kumpulan puluhan transistor dan
resistor dalam bentuk satu chip IC. Op-amp merupakan komponen aktif linear
yang merupakan penguat gandeng langsung (direct coupling), dengan penguatan
terbuka (open gain) yank sangat besar dan dapat dipakai untuk menjumlahkan,
mengalikan, membagi, mendiferensialkan, serta mengintegralkan tegangan listrik.
IC op-amp sering dipakai untuk perhitungan-perhitungan analog, instrumentasi,
maupun berbagai macam aplikasi kontrol.
IC LM358 didesain secara sempurna dalam hal penggunaan dua buah
op-amp secara bersamaan dalam satu chip, gambar 2.9. adalah IC LM358.
Gambar 2.9. Simbol diagram dan gambar fisik op-amp 358
IC Op-Amp LM358 memiliki keunggulam dalam pemakaian daya yang
lebih rendah, kemampuan penggunaan saluran input yang berkolerasi dengan
saluran pentanahan, dapat dicatu menggunakan mode catu daya tunggal maupun
Tabel 2.6. Fungsional Pin LM358
No. Pin Fungsi
1. Keluaran A (output A)
2. Masukan menjungkir (input inverting)
3. Masukan tak menjungkir (input non-inverting)
4. Dihubungkan dengan terminal negatif pencatu daya (V-) 5. Masukan tak menjungkir (input non-inverting)
6. Masukan menjungkir (input inverting) 7. Keluaran B (output B)
8. Dihubungkan dengan terminal positif pencatu daya (V+) (Sumber : [10])
2.8. Motor DC
Motor listrik merupakan perangkat elektromagnetis yang mengubah energi
listrik menjadi energi mekanik. Energi mekanik ini digunakan untuk, misalnya
memutar impeller pompa, fan atau blower, menggerakan kompresor, mengangkat
bahan, dll. Motor listrik digunakan juga di rumah (mixer, bor listrik, fan angin)
dan di industri. Motor listrik kadangkala disebut “kuda kerja”nya industri sebab
diperkirakan bahwa motor-motor menggunakan sekitar 70% beban listrik total di
industri.
Motor DC memerlukan suplai tegangan yang searah apda kumparan
medan untuk diubah menjadi energi mekanik. Kumparan medan pada motor DC
disebut stator (bagian yang tidak berputar) dan kumpran jangkar disebut rotor
(bagian yang berputar). Jika terjadi putaran pada kumparan jangkar dalam pada
medan magnet, maka akan timbul tegangan (GGL) yang berubah-ubah arah pada
setiap setengah putaran, sehingga merupakan tegangan bolak-balik. Prinsip kerja
dari arus searah adalah membalik phasa tegangan dari gelombang yang
mempunyai nilai positif dengan menggunakan komutator, dengan demikian arus
Bentuk motor paling sederhana memiliki kumparan satu lilitan yang bisa berputar
bebas di antara kutub-kutub magnet permanen.
Gambar 2.10. Motor DC Sederhana
Catu tegangan DC dari baterai menuju lilitan melalui sikat yang
menyentuh komutator, dua segmen yang terhubung dengan dua ujung lilitan.
Kumparan satu lilitan pada gambar di atas disebut angker dinamo. Angker dinamo
adalah sebutan untuk komponen yang berputar di antara medan magnet.
2.8.1. Prinsip Dasar Cara Kerja
Jika arus lewat pada suatu konduktor, timbul medan magnet di
sekitar konduktor. Arah medan magnet ditentukan oleh arah arus pada
konduktor.
Gambar 2.11. Medan magnet yang membawa arus mengelilingi konduktor
Aturan genggaman tangan kanan bisa dipakai untuk menentukan
arah garis fluks di sekitar konduktor. Genggam konduktor dengan tangan
kanan dengan jempol mengarah pada aliran arus, maka jari-jari anda akan
Mekanisme kerja untuk seluruh jenis motor secara umum, yaitu :
1. Arus listrik dalam medan akan memberikan gaya.
2. Jika kawat yang membawa arus dibengkokkan menjadi sebuah
lingkaran/loop, maka kedua sisi loop, yaitu pada sudut kanan
medan magnet, akan mendapatkan gaya pada arah yang
berlawanan.
3. Pasangan gaya menghasilkan tenaga putar/torque untuk memutar
kumparan.
4. Motor-motor memiliki beberapa loop pada dinamonya untuk
memberikan tenaga putaran yang lebih seragam dan medan
magnetnya dihasilkan oleh susunan elektromagnetik yang disebut
kumparan medan.
Pada motor DC, daerah kumparan medan yang dialiri arus listrik
akan menghasilkan medan magnet yang melingkupi kumparan jangkar
dengan arah tertentu. Konversi dari energi listrik menjadi energi mekanik
(motor) maupun sebaliknya berlangsung melalui medan magnet, dengan
demikian medan magnet disini selain berlangsungnya proses perubahan
energi, daerah tersebut dapat dilihat pada gambar di bawah ini :
Agar proses perubahan energi mekanik dapat berlangsung secara
sempurna, maka tegangan sumber harus lebih besar daripada tegangan gerak yang
disebabkan reaksi lawan. Dengan memberi arus pada kumparan jangkar yang
dilindungi oleh medan maka menimbulkan perputaran pada motor. (Sumber [12])
2.9. Heater
Secara umum ikan telah beradaptasi untuk hidup pada kisaran suhu
tertentu. Kisaran ini bervariasi dari satu spesies ke spesies lainnya. Meskipun
beberapa spesies dapat mentolelir perbedaan lintang tertentu. Sehingga, misalnya,
memungkinkan ikan-ikan daerah tropis yang memiliki persyaratan hidup berbeda
digabungkan dalam satu akuarium, akan tetapi pengawasan ekstra hati-hati tetap
diperlukan. Suhu rendah dibawah normal dapat menyebabkan ikan mengalami
lethargi, kehilangan nafsu makan, dan menjadi lebih rentan terhadap penyakit.
Ikan jangan dibiarkan berada dalam suhu yang terlalu dingin hanya karena alasan
untuk menghemat listrik. Sebaliknya pada suhu yang terlalu tinggi ikan dapat
mengalami stress pernapasan dan bahkan dapat menyebabkan kerusakan insang
permanen.
Peningkatan suhu kadang-kadang diperlukan untuk meningkatkan laju
metabolisma ikan sehingga perlakuan tersebut diharapkan dapat menolong
mempercepat proses penyembuhan suatu penyakit, dan atau mempercepat siklus
hidup suatu parasit sehingga parasit tersebut dapat segera dienyahkan. Meskipun
demikian, perlu diperhatikan bahwa semakin hangat air maka oksigen terlarut
Perubahan suhu mendadak dapat menyebabkan ikan mengalami “shock”.
Hal ini kerap terjadi terutama pada saat memasukan ikan baru kedalam suatu
akuarium dimana usaha penyesuaian suhu tidak dilakukan dengan baik, atau pada
saat menambahkan air baru yang memiliki temperatur tidak sama.
Penurunan suhu secara perlahan, seperti terjadi apabila heater tidak
berfungsi, jarang menimbulkan shock, meskipun demikian temperatur hendaknya
dikembalikan ke kondisi semula secara perlahan-lahan dalam waktu satu jam atau
lebih.
Dalam kasus temperatur terlalu panas, seperti akibat termostat yang tidak
berfungsi dengan baik, maka intensitas aerasi hendaknya ditingkatkan untuk
mengkompensasi kadar iksigen terlarut yang rendah, dan biarkan temperatur
akuarium dingin secara alami. Apabila suhu meningkat sampai melebihi 320C,
dan apabila ikan masih bertahan hidup, maka penggantian air sebanyak 20%
dengan air dingin bisa dilakukan. Pengembalian air hendkanya dilakukan secara
perlahan dengan cara disiphon plus peningkatan aerasi.
2.9.1. Penyesuaian Suhu
Suhu dapat diturunkan atau ditingkatkan sesuai dengan kebutuhan
dengan menggunakan perangkat tertentu. Untuk meningkatkan suhu dapat
digunakan heater yang telah dirancang secara khusus untuk akuarium.
Heater hendaknya selalu terendam air, heater yang ter-ekspos ke udara
terbuka secara tidak sengaja seperti pada saat penggantian air dapat
menyebabkan kerusakan fatal pada heater tersebut, dan bahkan bisa
penggantian air atau sebelum melakukan kegiatan apapun yang
menyebabkan terjadinya penurunan ketinggian air akuarium.
Untuk menurunkan suhu air dan mempertahankannya pada suhu
rendah, seperti untuk keperluan akuarium tanaman dan koral, dapat
digunakan chiller. Chiller merupakan alat yang akan menyerap panas dari
air dan membebaskannya ke udara. Prinsip kerjanya kurang lebih sama
dengan prinsip kerja alat pendingin ruangan atau lemari pendingin.
(Sumber [13])
2.10. Sensor Ketinggian
Pada akuarium diperlukan suatu mekanisme untuk mengetahui ketinggian
permukaan air. Seringkali mekanisme tersebut masih berupa cara-cara manual,
semisal dengan melihat dan melakukan pengukuran secara langsung pada air yang
ada pada akuarium tersebut. Mungkin cara tersebut merupakan cara yang paling
sederhana dan gampang, tetapi akan sedikit repot jika untuk mengetahui
ketinggian air harus di ukur terlebih dahulu.
Maka dari itu diperlukan suatu mekanisme pengukur ketinggian
permukaan air secara otomatis, salah satunya dengan membuat semacam sensor
pengukur ketinggian air. Sensor ini kemudian dipasangkan pada penampung air
teresebut. Tampilan untuk melihat hasil pengukuran sensor tersebut tidak perlu
dekat dengan sensor, dapat ditempatkan di tempat lain sesuai kebutuhan, sehingga
2.11. Auto Feeder
Auto Feeder merupakan alat pemberi makan pada ikan secara otomatis
untuk akuarium. Alat ini sangat cocok untuk seseorang yang tidak bisa memberi
makan secara tepat waktu. Selain itu alat ini juga tergolong murah harganya, alat
ini juga dapat membantu meringankan pekerjaan kita dalam pemberian pakan
pada ikan. Pada Auto Feeder ini juga terdapat palet yang cukup bagus dan
penggunaan interval waktu yang cukup baik. Banyak sedikit pemberian pakan
dapat kita tentukan sendiri dengan mengatur waktu pemberian pakan dan
menentukan banyak sedikitnya porsi pakan yang akan diberikan. Cara mengatur
Pada bab ini akan dibahas mengenai beberapa hal dasar tentang
bagaimana perancangan Sistem Pengendalian Ruang Budidaya dan Pemberian
Pakan Ikan Secara Otomatis Berbasis Mikrokontroler, komponen-komponen apa
saja yang dibutuhkan, bagaimana cara merancang Sistem Pengendalian Ruang
Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler,
flowchart, blok diagram dan analisis.
3.1. Perancangan
Dalam pembuatan Sistem Pengendalian Ruang Budidaya dan Pemberian
Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ini perlu diperhatikan
beberapa aspek yang dibutuhkan, yaitu :
3.1.1. Pemberian Pakan Ikan
Dalam hal pemberian pakan perlu diperhatikan aspek-aspek yang
dibutuhkan, yaitu :
1. Sistem ini dirancang agar dapat memberikan pakan ikan secara
otomatis disaat pemilik tidak berada dirumah.
2. Sistem ini dirancang agar jadwal pemberian pakan bisa diatur oleh
pemilik
3. Sistem ini dirancang dengan menggunakan auto feeder sebagai
telah ditentukan. Misalkan 5 detik, maka auto feeder akan berputar
selama 5 detik untuk memberikan pakan.
3.1.2. Pengukuran Suhu
Dalam hal pengukuran suhu perlu diperhatikan aspek-aspek yang
dibutuhkan, yaitu :
1. Sistem ini dirancang untuk mengukur suhu menggunakan sensor
suhu dengan tipe LM35, IC LM358 dan heater.
2. Sistem ini dirancang untuk mengetahui suhu air dalam akuarium.
3. Sistem ini dirancang dengan set temp sebesar 260C.
4. Sistem ini akan bekerja ketika suhu pada air dalam akuarium
menunjukkan suhu sebesar 250C ke bawah.
5. Sistem ini dikatakan bekerja dengan melihat lampu pada heater
menyala.
6. Sistem ini dikatakan tidak bekerja ketika lampu pada heater mati
dan suhu air dalam akuarium menunjukkan suhu 260C ke atas.
3.1.3. Ketinggian Air
Dalam hal ketinggian air perlu diperhatikan aspek-aspek yang
dibutuhkan, yaitu :
1. Sistem ini dirancang untuk proses pergantian air.
2. Sistem ini dirancang dengan menggunakan 2 sensor ketinggian,
yaitu sensor ketinggian batas atas dan sensor ketinggian batas
3. Sistem ini dirancang juga dengan menggunakan 2 pompa air, yaitu
pump in (pompa isi air) dan pump out (pompa kuras air).
4. Sistem ini dirancang dengan pump timer setiap 72 jam sekali.
5. Sistem ini dirancang ketika waktu telah menunjukkan 72 jam,
pompa kuras air akan bekerja sampai sebatas sensor ketinggian air
batas bawah.
6. Sistem ini dirancang ketika air telah sebatas sensor ketinggian air
batas bawah, pompa isi air akan bekerja sampai sebatas sensor
3.2. Flowchart
Gambar 3.1. Alur Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan
Pada Gambar 3.1. dapat dijelaskan alur flowchart sebagai berikut,
Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara
Otomatis Berbasis Mikrokontroler ini dimulai dengan inisialisasi timer,
LCD 16x2, dan RTC DS1307. Semua inisialisasi tersebut kemudian
dikirim ke mikrokontroler AT89S52. Setelah semua inisialisasi selesai,
maka didapat tampilan awal yang berupa inisialisasi-inisialisasi tersebut
yang kemudian dapat membaca suhu dari ADC.
Didalam ADC tersebut, set temp sebesar 260C. Jika suhu < set
temp, maka Relay heater ON. Relay heater ON dikarenakan suhu air dalam
akuarium dibawah 260C yang berarti suhu air dalam akuarium turun.
Sehingga suhu air dalam akuarium dinormalkan kembali menjadi 260C.
Tetapi jika suhu ≥ 260C, maka Relay heater OFF dikarenakan suhu air
dalam akuarium sudah normal. Proses tersebut berlangsung secara
terus-menerus setiap hari.
Setelah membaca suhu, dilanjutkan dengan membaca Feed Timer,
Pump Timer or RTC. Untuk Feed Time di-set 8 jam selama 24 jam setiap
hari. Jika Feed Timer = Feed Time, maka Relay Feed ON. Ketika Relay
Feed ON maka auto feeder berputar selama 5 detik (sesuai keinginan user)
untuk mengeluarkan pakan ikan. Proses tersebut akan bekerja selama Feed
Time = Ø. Jika Feed Timer ≠ Feed Time, maka akan lanjut ke proses berikutnya, yaitu mengganti air kolam.
Untuk Pump Timer di-set setiap 72 jam sekali, dikarenakan kondisi
air sudah terlihat keruh sehingga perlu pergantian air. Dalam akuarium
dan Pump In yang berfungsi sebagai pompa isi air. Selain terdapat 2
pompa, terdapat juga 2 sensor ketinggian yaitu LS UP sebagai sensor
ketinggian batas atas dan LS DN sebagai sensor ketinggian batas bawah.
Jika Pump Timer = Pump Time, maka Relay Pump Out ON. Jika
Pompa kuras air akan bekerja ketika waktu telah menunjukkan
waktu yang telah di-set oleh user yaitu 72 jam dan akan berhenti ketika air
telah sebatas sensor batas bawah. Setelah air sudah sebatas sensor bawah,
maka pompa isi air yang bekerja dan akan berhenti ketika air sebatas
sensor batas atas.
Pada Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan
Ikan Secara Otomatis Berbasis Mikrokontroler ini, terdapat 3 tombol yaitu
tombol 1, tombol 2, dan tombol 3. Jika user memilih tombol 1, maka pada
LCD akan muncul tampilan feed timer, pump timer, temp heater dan
setting time. Pada tampilan tersebut, dapat melihat waktu pemberian
pakan, waktu pergantian air, berapa lama auto feeder akan berputar, suhu,
dan setting time.
Jika tidak, maka user dapat memilih tombol 2. Jika user memilih
tombol 2, maka Relay Feed ON secara manual tanpa sesuai dengan feed
waktu yang telah di-set. Proses tersebut akan bekerja selama Feed Time =
Ø.
Jika tidak, maka user dapat memilih tombol 3. Jika user memilih
tombol 3, maka Relay Pump Out ON secara manual tanpa sesuai dengan
pump timer. Tetapi proses pump time sama seperti pump timer yang sesuai
dengan waktu yang telah di-set. Proses tersebut akan bekerja selama Pump
Time = Ø. Jika user tidak memilih tombol manapun, maka proses ini akan
3.3. Blok Diagram
LS DOWN
LCD 16x2 LS UP Air Pump
Gambar 3.2. Blok Diagram
ADC ADS7822
LM35 Sensor Suhu
IC LM358 Penguat 10x 3V Battery
CR2032
Mikrokontroler
AT89S52
Relay Relay Relay Relay
RTC DS1307
Penjelasan dari Gambar 3.2. ini adalah penjelasan blok diagram
dari perangkat keras dalam Sistem Pengendalian Ruang Budidaya dan
Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler yank
menggunakan satu buah mikrokontroler.
Tugas mikrokontroler adalah sebagai penerima input langsung dari
user, menyimpan data inputan dari user tersebut, sebagai pengkoordinasi
waktu dengan menggunakan RTC DS1307, sebagai pewaktu dan
pengontrol pemberian pakan ikan. Selain itu juga, RTC DS1307 digunakan
sebagai penyimpan data dikarenaka jumlah RAM Internal pada
mikrokontroler kurang mencukupi, selain itu juga memori yang ada pada
RTC DS1307 bersifat non-volatile, sehingga nilai yang telah ditentukan
untuk setiap parameter akan tetap tersimpan walaupun listrik padam.
Selain tugas tersebut, mikrokontroler juga memiliki tugas sebagai
penerima inputan dari peralatan luar sebagai pembaca keadaan akuarium
seperti sensor-sensor dan sekaligus sebagai pengontrol peralatan akuarium
seperti pompa air. Mikrokontroler tersebut menggunakan komunikasi
serial.
3.4. Kebutuhan Perancangan Hardware
Dalam pembuatan Sistem Pengendalian Ruang Budidaya dan Pemberian
Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ini komponen-komponen
yang dibutuhkan adalah sebagi berikut:
1. LCD Dot Matrix
3. Sensor Suhu LM35
12. Battery Lithium 3V CR 2032
13. Sensor Ketinggian Batas Atas
14. Sensor Ketinggian Batas Bawah
15. Relay
16. ADC ADS7822
17. Mikrokontroler AT89S52
3.5. Cara Merancang
Merancang Sistem Pengendalian Ruang Budidaya dan Pemberian Pakan
Ikan Secara Otomatis Berbasis Mikrokontroler bukanlah suatu hal yang mudah
dan tidak dapat dilakukan oleh banyak kalangan. Dalam menjalani Tugas Akhir
ini penulis ingin memaparkan bagaimana cara merancang sistem ini, yaitu sebagai
berikut :
1. Merancang dan menyusun akuarium dan pelengkap pendukungnya.
3. Merancang dan membuat perangkat keras sistem pengontrol peralatan
akuarium.
4. Merancang dan membuat perangkat lunak sistem pemeliharaan ikan hias
air tawar berbasis mikrokontroler.
3.6. Analisis Perancangan
Analisis perancangan pada Sistem Pengendalian Ruang Budidaya dan
Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler ini dibagi
menjadi 3 bagian, yaitu :
3.6.1. Analisis Perancangan Pemberian Pakan Ikan
Untuk pemberian pakan diperlukan auto feeder untuk menyimpan
pakan ikan. Untuk mengeluarkan pakan tersebut dengan cara membuka
sebagian penutup katup sesuai dengan keinginan pemilik dan banyaknya
ikan dalam akuarium.
Perancangan untuk pemberian pakan ikan dilakukan setiap 8 jam
sekali. Proses pemberian pakan ini menggunakan auto feeder. Setiap 8 jam
sekali tersebut, auto feeder berputar selama 5 detik karena terdapat Motor
DC pada auto feeder yang berfungsi agar auto feeder dapat berputar untuk
mengeluarkan pakan ikan.
3.6.2. Analisis Perancangan Pergantian Air
Pergantian air dilakukan setiap 72 jam sekali. Proses pergantian air
Dan juga menggunakan 2 sensor ketinggian, yaitu sensor ketinggian batas
atas dan sensor ketinggian batas bawah.
Ketika pump time = 72 jam, maka pompa kuras air bekerja untuk
membuang air sebatas sensor batas bawah. Setelah air telah mencapai
sensor ketinggian batas bawah, maka pompa kuras air akan berhenti untuk
membuang air. Kemudian digantikan dengan pompa isi air yang bekerja
untuk mengisi air ke dalam akuarium sebatas sensor ketinggian batas atas.
Setelah air mencapai sensor ketinggian batas atas, maka pompa isi air akan
berhenti untuk mengisi air ke dalam akuarium. Proses tersebut bekerja
setiap 72 jam sekali.
3.6.3. Analisis Perancangan Pengukuran Suhu
Suhu air dalam akuarium di-set sebesar 260C. Untuk mengukur
suhu diperlukan sensor suhu LM35 untuk mengetahui suhu air dalam
akuarium, IC LM358 sebagai penguat sensor suhu dan heater.
Proses ini akan bekerja ketika suhu air dalam akuarium
menunjukkan dibawah 260C, maka heater akan bekerja untuk
menormalkan suhu air dalam akuarium menjadi 260C. Heater dikatakan
bekerja dengan adanya tanda lampu pada heater berwarna merah menyala.
Ketika lampu pada heater telah padam, maka suhu air dalam akuarium
telah normal dan berhenti bekerja. Biasanya suhu air dalam akaurium akan
3.7. Rancangan dan Analisis Sistem
Berikut ini cara kerja Sistem Pengendalian Ruang Budidaya dan
Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler saat dijalankan.
3.7.1. Rancangan Pemberian Pakan
Proses pemberian pakan, auto feeder akan berputar dengan bantuan
motor DC selama 5 detik untuk mengeluarkan pakan ikan. Agar pakan
ikan tersebut dapat keluar, maka katup pada auto feeder dibuka sebagian
dengan menyesuaikan banyak ikan yang ada dalam akuarium. Proses ini,
akan bekerja setiap 8 jam sekali setiap harinya.
Gambar 3.3. Pemberian Pakan
Rancangan pemberian pakan ini diperlukan auto feeder sebagai
tempat menyimpan pakan ikan. Pada auto feeder terdapat katup pembuka
dan penutup untuk menyesuaikan banyaknya pakan ikan yang akan
dikeluarkan. Selain auto feeder, rancangan diperlukan feeding timer dan
setiap 8 jam sekali. Sedangkan valve timer, berfungsi sebagai perputaran
auto feeder selama 5 detik. Sehingga rancangan pemberian pakan ikan
akan bekerja setiap 8 jam sekali dan berputar selama 5 detik.
3.7.2. Rancangan Pengukuran Suhu
Dalam perancangan pengukuran suhu, digunakan sensor suhu
LM35. Sensor ini memiliki respon yang linier terhadap perubahan suhu,
yaitu +10 mV/0C, dengan output -550 mV pada suhu -550C dan 1500 mV
pada suhu 1500C. Sensor suhu LM35 ini berfungsi untuk mengetahui suhu
air. Untuk perancangan pengukuran suhu, telah ditetapkan suhu normal
sebesar 260C.
Gambar 3.5. Heater Selesai Bekerja
Pada Gambar 3.4., suhu dibawah 260C, maka akan menyalakan
pemanas (heater), namun apabila suhu telah mencapai 260C atau lebih,
maka pemanas (heater) akan mati, seperti pada Gambar 3.5..
3.7.3. Rancangan Pergantian Air
Proses pergantian air dengan menggunakan 2 pompa air, yaitu
pompa isi air dan pompa kuras air. Proses ini bekerja ketika pump timer
menunjukkan waktunya yaitu 72 jam. Pompa kuras air akan membuang air
dalam akuarium sebatas sensor ketinggian air batas bawah. Ketika air
sudah sebatas sensor ketinggian batas bawah, maka pompa isi air yang
bekerja untuk mengisi air ke dalam akuarium. Proses ini akan bekerja
Gambar 3.6. Proses Pembuangan air
Gambar 3.7. Proses Pengisian air
Keadaan awal saat pergantian air, air dalam ketinggian sebatas
sensor ketinggian batas atas, yang kemudian pompa kuras bekerja untuk
membuang air sebanyak sepertiga dari volume air awal atau sebatas sensor
batas bawah (seperti Gambar 3.6.). Setelah air dibuang sampai sensor
ketinggian batas bawah, maka pompa isi mulai bekerja untuk mengisi air
3.8. Rancangan Komponen
Perencanaan perangkat keras pada tugas akhir ini menggunakan
Mikrokontroler AT89S52 sebagai sistem kontrol utama pada Sistem Pengendalian
Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis Berbasis
Mikrokontroler. Dan dihubungkan dengan perangkat luar antara lain rangkaian
sensor suhu LM35 dengan menggunakan IC LM358 untuk mengetahui suhu air
dalam akuarium, rangkaian sensor ketinggian dengan menggunakan 2 sensor
ketinggian yaitu sensor ketinggian batas atas dan sensor ketinggian batas bawah,
dan rangkaian auto feeder dengan menggunakan motor DC dan relay. Gambar
3.8. merupakan rancangan komponen yang dibutuhkan untuk pembuatan Sistem
Pengendalian Ruang Budidaya dan Pemberian Pakan Ikan Secara Otomatis
Gambar 3.8. Rancangan Komponen PCB
pada Gambar 3.8. adalah :
3.8.1. LCD Dot Matrix
LCD Dot Matrix merupakan perangkat yang berfungsi untuk
menampilkan setting timer, pumping time (PT), set temperature (ST),
feeding time (FT), dan valve time (VT) yang ada pada program.
3.8.2. ADC ADS7822
ADC ADS7822 merupakan perangkat yang berfungsi untuk
menghubungkan sensor suhu LM35 yang diperkuat dengan IC LM358 ke
Mikrokontroler AT89S52 yang digunakan untuk membaca suhu air dalam
akuarium.
3.8.3. Sensor Suhu LM35
Sensor suhu LM35 merupakan perangkat yang berfungsi untuk
mengukur suhu dalam akuarium.
3.8.4. IC LM358
IC LM 358 merupakan perangkat tambahan untuk sensor suhu,
dimana IC LM358 tersebut berfungsi sebagai penguat (Gain) setelah
menerima masukan dari sensor suhu.
3.8.5. Battery Lithium 3V CR2032
Pada rangkaian ini, diperlukan Battery Lithium 3V CR2032 yang
digunakan sebagai pendukung ADC ADS7822 untuk membantu membaca
3.8.6. Mikrokontroler AT89S52
Mikrokontroler itu sendiri merupakan chip yang berfungsi sebagai
control utama pada Sistem Pengendalian Ruang Budidaya dan Pemberian
Pakan Ikan Secara Otomatis Berbasis Mikrokontroler.
3.8.7. Heater
Heater ini merupakan perangkat tambahan yang berfungsi sebagai
penghangat air dalam akuarium. Jika suhu air dalam akuarium dibawah
260C, maka heater mulai bekerja.
3.8.8. Auto Feeder
Food feeder ini merupakan perangkat tambahan yang berfungsi
sebagai tempat penyimpan pakan. Selain itu juga dapat berfungsi untuk
mengeluarkan pakan secara otomatis ketika set feed tepat pada waktu
default-nya yaitu 8 jam sekali.
3.8.9. Pompa Kuras Air
Pompa kuras air merupakan perangkat tambahan yang berfungsi
sebagai pompa pembuangan air. Ketika pump timer (72 jam) maka pompa
kuras air ini mulai bekerja untuk membuang air yang ada dalam akuarium
sebatas sensor batas bawah. Ketika air sudah mencapai sensor batas
bawah, maka pompa kuras air ini berhenti.
3.8.10.Pompa Isi Air
Pompa isi air merupakan perangkat tambahan yang berfungsi
sebagai pompa pengisian air. Pompa ini mulai bekerja, ketika air yang
dibuang telah mencapai sensor batas bawah yang kemudian pompa ini
3.8.11.Air Pump
Air pump merupakan perangkat tambahan yang berfungsi sebagai
4.1. Kebutuhan Sistem
Dalam pengerjaan sistem pengendalian ruang budidaya dan pemberian
pakan ikan secara otomatis berbasis mikrokontroler ini ada dua hal penting yang
perlu disiapkan yaitu kebutuhan software dan kebutuhan hardware yang
digunakan untuk membuat dan menjalankan program ini.
4.1.1. Perangkat Sistem
Perangkat yang dibutuhkan dalam pembuatan sistem pengendalian
ruang budidaya dan pemberian pakan ikan secara otomatis berbasis
mikrokontroler dengan menggunakan mikrokontroler AT89S52 ini
termasuk dalam pembuatan laporan adalah perangkat keras (hardware)
dan perangkat lunak (software). Penggunaan hardware yang baik akan
lebih memudahkan dalam menjalankan dan pembuatan program, untuk itu
diperlukan seperangkat komputer dengan spesifikasi sebagai berikut :
1. Prosessor Intel Core 2
2. Hard disk 1.5 GB
Untuk membuat dan menjalankan program ini maka diperlukan
software pendukung, yaitu :
1. Sistem operasi Microsoft Windows 7 Professional.
3. Easy Assembler
4.2. Prosedur Pemasangan
Ada beberapa cara yang harus dilakukan sebelum program dibuat dan
dimasukkan ke dalam chip, yaitu :
1. Buka software Easy Assembler, setelah itu buka file yang disimpan dengan
format .txt.
2. File tersebut masih dalam bentuk Binary File.
Gambar 4.1. Format Binary File
3. File tersebut harus diubah menjadi Intel-HEX File, dengan cara mengubah
output format.
4. Pilih output format kemudian pilih Intel-HEX File, seperti pada gambar
Gambar 4.2. Proses Pengubahan dari Binary File menjadi Intel-HEX File
5. Setelah format output diubah menjadi Intel-HEX File, kemudian di-compile
dengan menekan tombol F9 pada keyboard atau dengan cara seperti pada
gambar dibawah ini.
Gambar 4.3. Proses compile
6. Setelah proses compile dan tidak terdapat error, maka proses tersebut
Gambar 4.4. Proses compiler sukses
4.3. Penjelasan Program
Pada penjelasan program kali ini akan dibahas tentang implementasi
program yang merupakan hasil dari analisa dan perancangan sistem pada bab
sebelumnya. Implementasi program ini ditujukan untuk penggemar ikan hias yang
memelihara akan dalam berinteraksi dengan sistem yang dihasilkan.
Sebelum memulai penjelasan harus melewati beberapa tahap untuk dapat
menyelesaikan sistem ini. Adapun tahap yang harus dilalui adalah mengisi data
Mikrokontroler AT89S52.
Mikrokontroler sebagai IC atau pengendali dari alat-alat yang lain
sehingaa IC didalam mkrokontroler membtutuhkan perintah-perintah yang akan
digunakan untuk menjalankan perangkat tambahan. Untuk mengisi data ke
Penggunaan mikrokontroler harus memenuhi semua alat yang dibutuhkan,
apabila terdapat salah satu alat yank tidak berfungsi maka sistem ini tidak dapat
bekerja dengan sempurna.
4.4. Implementasi
Pada tahapan ini akan dibahas mengenai implementasi program dan
perangkat dari perancangan sistem yang telah dibahas sebelumnya.
4.4.1. Implementasi Program
Dalam implementasi program ini akan ditampilkan sebagian dari
coding untuk membuat Sistem Pengendalian Ruang Budidaya dan
Pemberian Pakan Ikan Secara Otomatis Berbasis Mikrokontroler. Setelah
coding tersebut dibuat, kemudian coding tersebut dimasukkan ke dalam
chip agar dapat menjalankan perintah-perintah untuk sistem ini. Berikut
merupakan cuplikan dari sebagian coding :
1. Deklarasi Konstanta
a. Deklarasi waktu untuk jadwal pemberian pakan.
TFeedDef_C EQU 8 ; dalam jam
b. Deklarasi waktu untuk jadwal pergantian air.
TPumpDef_C EQU 72 ; dalam jam
c. Deklarasi waktu untuk perputaran auto feeder.
d. Deklarasi suhu.
SPTempDef_C EQU 26 ; dalam derajat celcius
2. Pendefinisian data bit pada port Mikrokontroler AT89S52
Pump1_P BIT p2.0 ; act HI, pump out
button1_P BIT p1.5 ; tombol inisialisasi timer
3. Pendefinisian konstanta pada memori
FeedSec_M EQU 2Dh ; waktu feeding dalam detik
FeedMin_M EQU 2Eh ; waktu feeding dalam menit
FeedHour_M EQU 2Fh ; waktu feeding dalam jam
PumpSec_M EQU 45h ; waktu pumping dalam detik
PumpMin_M EQU 46h ; waktu pumping dalam menit
PumpHour_M EQU 47h ; waktu pumping dalam jam
TFeeding_M EQU 4Bh ; time feeding
TPumping_M EQU 4Ch ; time pumping
TValve_M EQU 4Dh ; time valve
4. Pendefinisian data bit pada bit memori
LSUp_F BIT 00h ; level sensor atas
LSDn_F BIT 01h ; level sensor bawah
Button1_F BIT 02h ; tombol inisialisasi timer
Button2_F BIT 03h ; tombol feeding
Button3_F BIT 04h ; tombol pumping
HEater_F BIT 06h ; heater
Feeding_F BIT 07h ; feeding
Pumping_F BIT 08h ; pumping
FeedOK_F BIT 0Bh ; hasil feeding
5. Cek default byte
a. Load Setting
Load_Setting
MOV b,#TFeedingAddr_C ; #TFeedingAddr_C = 10h
MOV r0,#0
MOV r1,#1101b
LCALL Read_I2C ; panggil prosedur Read_I2C
MOV b,#TPumpingAddr_C ; #TPumpingAddr_C = 11h
LCALL Read_I2C ; panggil prosedur Read_I2C
MOV TPumping_M,a
MOV b,#TValveAddr_C ; #TValveAddr_C = 12h
LCALL Read_I2C ; panggil prosedur Read_I2C
MOV TValve_M,a
MOV b,#SPTempAddr_C ; #SPTempAddr_C = 0Fh
LCALL Read_I2C ; panggil prosedur Read_I2C
MOV SPTemp_M,a
RET ; kembali
b. Load Feed Time
Load_Feed_Time
MOV b,#FeedTimeAddr_C ; # FeedTimeAddr_C = 09h
MOV r0,#0
MOV r1,#1101b
ACALL Read_I2C ; panggil prosedur Read_I2C
MOV FeedHour_M,a
INC b
ACALL Read_I2C ; panggil prosedur Read_I2C
MOV FeedMin_M,a
INC b
ACALL Read_I2C ; panggil prosedur Read_I2C
MOV FeedSec_M,a
RET ; kembali
c. Load Pump Time
Load_Pump_Time
MOV b,#PumpTimeAddr_C ; #PumpTimeAddr_C = 0Ch
MOV r0,#0
MOV r1,#1101b
ACALL Read_I2C ; panggil prosedur Read_I2C
MOV PumpHour_M,a
INC b
MOV PumpMin_M,a
INC b
ACALL Read_I2C ; panggil prosedur Read_I2C
MOV PumpSec_M,a
RET ; kembali
d. Save Setting
Save_Setting
MOV b,#TFeedingAddr_C ; #TFeedingAddr_C = 10h
MOV r0,#0
MOV r1,#1101b
MOV a,TFeeding_M
LCALL write_I2C ; panggil prosedur Write_I2C
MOV b,#TPumpingAddr_C ; #TPumpingAddr_C = 11h
MOV a,TPumping_M
LCALL Write_I2C ; panggil prosedur Write_I2C
MOV b,#TValveAddr_C ; #TValveAddr_C = 12h
MOV a,TValve_M
LCALL Write_I2C ; panggil prosedur Write_I2C
MOV b,#SPTempAddr_C ; #SPTempAddr_C = 0Fh
MOV a,SPTemp_M
LCALL Write_I2C ; panggil prosedur Write_I2C
RET ; kembali
e. Save Feed Time
Save_Feed_Time
MOV b,#FeedTimeAddr_C ; # FeedTimeAddr_C = 09h
MOV r0,#0
MOV r1,#1101b
MOV a,FeedHour_M
ACALL Write_I2C ; panggil prosedur Write_I2C
MOV a,FeedMin_M
INC b
ACALL Write_I2C ; panggil prosedur Write_I2C
INC b
ACALL Write_I2C ; panggil prosedur Write_I2C
RET ; kembali
f. Save Pump Time
Save_Pump_Time
MOV b,#PumpTimeAddr_C ; #PumpTimeAddr_C = 0Ch
MOV r0,#0
MOV r1,#1101b
MOV a,PumpHour_M
ACALL Write_I2C ; panggil prosedur Write_I2C
MOV a,PumpMin_M
INC b
ACALL Write_I2C ; panggil prosedur Write_I2C
MOV a,PumpSec_M
INC b
ACALL Write_I2C ; panggil prosedur Write_I2C
RET ; kembali
g. Cek level sensor ketinggian batas atas
Check_LS ; cek sensor ketinggian
JB Pumping_F,CLSJ1
RET ; kembali
CL1J1 JB LSUp_P,CLJ1
DJNZ r7,CL1J1 ; kurangi R7 dgn 1, jika blm = 0
; loncat ke prosedur CL1J1
DJNZ r6,CL1J2 ; kurangi R6 dgn 1, jika blm = 0
; loncat ke prosedur CL1J2
; LS UP ON -> ada air
MOV a,PumpState_M
CJNE a,#1,LS1J1 ; jika ≠ 1, lompat ke LS1J1
CLR Pump2_P
CLR Pumping_F
MOV dptr,#PumpingOK_SMS
CLR a
MOVC a,@a+dptr
MOV SMSLength_M,a
INC dptr
MOV r0,#SMSBuff_M
LCALL Put_Text_Buff
MOV a,Temp_M
MOV r0,#SMSBuff_M+14
LCALL Put_2_Digit_Buff
LCALL Send_SMS
RET ; kembali
LS1J1
RET ; kembali
CLJ1 JNB LSUp_F,CLJ1a
MOV r6,#250
CL1J4 MOV r7,#250
CL1J3 JNB LSUp_P,CLJ1a
DJNZ r7,CL1J3 ; kurangi R7 dgn 1, jika blm = 0
h. Cek level sensor ketinggian batas bawah
; --- Limit switch down
JB LSDn_P,CLJ2
JB LSDn_F,CLJ2a
MOV r6,#250