KONTROL PAKAN KOLAM IKAN

 [Menuju Akhir]


KONTROL PAKAN KOLAM IKAN



1. Tujuan Perancangan [Kembali]

  • Memenuhi syarat untuk Modul 4 Praktikum Mikrokontroller & Mikroprosesor.
  • perancangan kontrol pakan ikan dan pengukur ketinggian air ini juga bertujuan agar mempermudah pemilik dalam pemberian makan ikan secara teratur dan mmepermudah pengisian air. 

2. Komponen [Kembali]

        Alat :

-. Jumper

-. Project Board

·       Bahan :

-. Resistor 

-. Potensiometer



·       Komponen Input :

-. Sensor RTC



-. Sensor Ultrasonik

 

-. Rain sensor




·       Komponen Output :

-. Motor Servo

-.motor stepper



- LCD


                  -. LED

·       Komponen Lainnya :

-. Arduino



    

3. Dasar Teori [Kembali]

    a.      PWM ( Pulse Width Modulation )

Pulse Width Modulation (PWM) secara umum adalah sebuah cara memanipulasi lebar sinyal yang dinyatakan dengan pulsa dalam suatu perioda, untuk mendapatkan tegangan ratarata yang berbeda. Modulasi lebar pulsa (PWM) dicapai/diperoleh dengan bantuan sebuah gelombang kotak yang mana siklus kerja (duty cycle) gelombang dapat diubah-ubah untuk mendapatkan sebuah tegangan keluaran yang bervariasi yang merupakan nilai rata-rata dari gelombang tersebut. Duty cycle merupakan prosentase periode sinyal high dan periode sinyal, prosentase duty cycle akan bebanding lurus dengan tegangan rata-rata yang dihasilkan. Beberapa Contoh aplikasi PWM adalah pemodulasian data untuk telekomunikasi, pengontrolan daya atau tegangan yang masuk ke beban, regulator tegangan, audio effect dan penguatan, serta aplikasi-aplikasi lainnya. Aplikasi PWM berbasis mikrokontroler biasanya berupa, pengendalian kecepatan motor DC, Pengendalian Motor Servo, Pengaturan nyala terang LED. Berikut ilustrasi sinyal PWM, misalkan kondisi high 5 V dan kondisi low 0 V.

Gambar 1. Bentuk gelombang kotak (pulsa) dengan kondisi high 5V dan low 0V

Ton adalah waktu dimana tegangan keluaran berada pada kondisi high dan, Toff adalah waktu dimana tegangan keluaran berada pada kondisi low. Anggap Ttotal adalah waktu satu siklus atau penjumlahan antara Ton denganToff , biasa dikenal dengan istilah “periode satu gelombang”.

 

Ttotal = Ton + Toff

Siklus kerja atau duty cycle sebuah gelombang di definisikan sebagai,

 


Tegangan keluaran dapat bervariasi denganduty-cycle dan dapat dirumusan sebagai berikut,



Sehingga,


Dari rumus diatas dapat ditarik kesimpulan bahwa tegangan keluaran dapat diubah ubah secara langsung dengan mengubah nilai Ton. Apabila Ton adalah 0, Vout juga akan 0. Apabila Ton adalah Ttotal maka Vout adalahVin atau katakanlah nilai maksimumnya.

PWM bekerja sebagai switching power suplai untuk mengontrol on dan off. Tegangan dc dikonvert menjadi sinyal kotak bolak balik, saat on mendekati tegangan puncak dan saat off mrnjadi nol (0) volt. Jika frekuensi switching cukup tinggi maka temperatur (suhu) air yang dikendalikan akan semakin sesuai dengan yang diharapkan. Dengan mengatur duty cycle dari sinyal (modulasi lebar pulsa dari sinyal disebabkan oleh PWM). Terlihat pada gambar di bawah sinyal ref adalah sinyal tegangan dc yang dikonversi oleh sinyal gergaji dan menghasilkan sinyal kotak

Gambar 2. Sinyal Referensi ( sinyal tegangan DC) .

Informasi analog dapat dikirimkan dengan menggunakan pulsa-pulsa tegangan atau pulsa-pulsa arus. Dengan modulasi pulsa, pembawa informasi terdiri dari pulsapulsa persegi yang berulang-ulang. Salah satu teknik modulasi yang sering digunakan adalah teknik modulasi durasi atu lebar dari waktu tunda positif ataupun waktu tunda negatif pulsa-pulsa persegi tersebut. Untuk membangkitkan sinyal PWM adalah dengan menggunakan fungsi timer/counter yang dibandingkan nilainya dengan sebuah register tertentu.

 

b.      ADC (Analog to Digital Converter)

 

ADC atau Analog to Digital Converter merupakan salah satu perangkat elektronika yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu kecepatan sampling dan resolusi.

Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam  sample  per second  (SPS)Sementara  Resolusi  menyatakan  tingkat  ketelitian  yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC  pada  Arduino  mampu  menangani sinyal  analog  dengategangan  0  - 5  volt.  Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analogRead(pin);

 

c.       Mikrokontroller

Mikrokontroler adalah salah satu dari bagian dasar dari suatu sistem komputer. Meskipun mempunyai bentuk yang jauh lebih kecil dari suatu komputer pribadi dan komputer mainframe, mikrokontroler dibangun dari elemen-elemen dasar yang sama. Secara sederhana, komputer akan menghasilkan output yang spesifik berdasarkan input yang diterima dan program yang dikerjakan. Seperti umumnya komputer, mikrokontroler sebagai alat yang mengerjakan perintah-perintah yang diberikan kepadanya. Artinya, bagian terpenting dan utama dari suatu sistem komputerisasi adalah program itu sendiri yang dibuat oleh seorang programmer. Program ini memerintahkan komputer untuk melakukan jalinan yang panjang dari aksi-aksi sederhana untuk melakukan tugas yang lebih kompleks yang diinginkan oleh programmer. Sistem dengan mikrokontroler umumnya menggunakan piranti input yang jauh lebih kecil seperti saklar atau keypad kecil. Hampir semua input mikrokontroler hanya dapat memproses sinyal input digital dengan tegangan yang sama dengan tegangan logika dari sumber. Tegangan positif sumber umumnya adalah 5 volt. Padahal dalam dunia nyata terdapat banyak sinyal analog atau sinyal dengan tegangan.

Gambar 3. Struktur dan Diagram Blok Mikrokontroler

Berikut ini merupakan struktur dan diagram blok mikrokontroler beserta penjelasan tentang bagian-bagian utamanya.

·         CPU

CPU merupakan otak dari mikrokontroler. CPU bertanggung jawab untuk mengambil instruksi (fetch), menerjemahkannya (decode), kemudian akhirnya dieksekusi (execute). CPU menghubungkan setiap bagian dari mikrokontroler ke dalam satu sistem. Fungsi utamanya yaitu mengambil dan mendekode instruksi. Instruksi yang diambil dari memori program harus diterjemahkan atau melakukan decode oleh CPU tersebut.

·         Serial Port (Port Serial)

Serial port menyediakan berbagai antarmuka serial antara mikrokontroler dan periferal lain seperti port paralel.

·         Memori (Penyimpanan)

Memori ini bertugas untuk menyimpan data. Data tersebut merupakan data yang sudah diolah (output) atau data yang belum diolah (input). Penyimpanan ini berupa RAM dan ROM. ROM digunakan untuk menyimpan data dalam jangka waktu yang lama. Sedangkan RAM digunakan untuk menyimpan data sementara selama program berjalan sampai akhirnya dipindahkan ke ROM.

·         Port Input/Output Paralel

Port input/output paralel digunakan untuk mendorong atau menghubungkan berbagai perangkat seperti LEDLCD, printer, memori dan perangkat input/output lainnya ke mikrokontroler.

·         ADC (Analog to Digital Converter)

Konverter ADC (Analog to Digital Converter) digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input dalam konverter ini harus dalam bentuk analog (misalnya output dari sensor) sedangkan outputnya dalam bentuk digital.

·         DAC (Digital to Analog Converter)

DAC (Digital to Analog Converter) melakukan operasi pembalikan konversi ADC (Analog to Digital Converter). DAC mengubah sinyal digital menjadi format analog. DAC ini biasanya digunakan untuk mengendalikan perangkat analog seperti motor DC dan lain sebagainya.

·         Interrupt Control (Kontrol Interupsi)

Interrupt Control (Kontrol Interupsi) bertugas untuk mengendalikan penundaan terhadap pemrograman mikrokontroler. Bagian interrupt control (kontrol interupsi) ini dapat dioperasikan secara internal ataupun eksternal.

·         Special Functioning Block (Blok Fungsi Khusus)

Special functioning block merupakan bagian tambahan yang dibuat mempunyai fungsi khusus. Biasanya blok ini ditemukan pada arsitektur mikrokontroler di mesin robotika. Tidak semua perangkat menggunakan bagian ini.

·         Timer and Counter (Pengatur Waktu dan Penghitung)

Timer/counter ini digunakan untuk mengukur waktu dan alat penghitungan. Keberadaan komponen ini sangatlah penting. Karena informasi waktu seringkali digunakan pengaturan sistem supaya lebih akurat dan efektif.

d.      Komunikasi

·         Universal Asynchronous Receiver Transmitter (UART)

UART (Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi serial pada komputer atau port serial perangkat periperal.

Cara Kerja Komunikasi UART

 


Gambar 4. Cara Kerja Komunikasi UART

Data dikirimkan secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data bus penerima.

·      

·         Inter Integrated Circuit (I2C)

Inter Integrated Circuit atau sering disebut I2C adalah standar komunikasi serial dua arah menggunakan dua saluran yang didisain khusus untuk mengirim maupun menerima data. Sistem I2C terdiri dari saluran SCL (Serial Clock) dan SDA (Serial Data) yang membawa               informasi        data       antara        I2C        dengan        pengontrolnya.

Cara Kerja Komunikasi I2C

 


Gambar 6. Cara Kerja Komunikasi I2C

Pada I2C, data ditransfer dalam bentuk message yang terdiri dari kondisi startAddress Frame, R/W bit, ACK/NACK bit, Data Frame 1, Data Frame 2,  dan kondisi Stop. Kondisi start dimana saat pada SDA beralih dari logika high ke low sebelum SCL.Kondisi stop dimana saat pada SDA beralih dari logika low ke high sebelum SCL.

R/W  bit  berfungsi  untuk  menentukan  apakamastemengirim  data  ke  slave  atau meminta data dari slave. (logika 0 = mengirim data ke slave, logika 1 = meminta data dari slave) ACK/NACK bit berfungsi sebagai pemberi kabar jika data frame ataupun address frame telahditerima receiver.


e.     RTC




Gambar 7.RTC

- Tegangan operasi MODUL DS3231: 2.3V – 5.5V

- Mengkonsumsi 500nA pada cadangan baterai

- Tegangan maksimum pada SDA , SCL : VCC + 0.3V

- Suhu operasi: -45ºC hingga +80ºC

 

f.       Sensor Ultrasonik (HC-SR04)

Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis (bunyi) menjadi besaran listrik dan sebaliknya. Cara kerja sensor ini didasarkan pada prinsip dari pantulan suatu gelombang suara sehingga dapat dipakai untuk menafsirkan eksistensi (jarak) suatu benda dengan frekuensi tertentu. Disebut sebagai sensor ultrasonik karena sensor ini menggunakan gelombang ultrasonik (bunyi ultrasonik).
Cara Kerja Sensor Ultrasonik:

Pada sensor ultrasonik, gelombang ultrasonik dibangkitkan melalui sebuah alat yang disebut dengan piezoelektrik dengan frekuensi tertentu. Piezoelektrik ini akan menghasilkan gelombang ultrasonik (umumnya berfrekuensi 40kHz) ketika sebuah osilator diterapkan pada benda tersebut. Secara umum, alat ini akan menembakkan gelombang ultrasonik menuju suatu area atau suatu target. Setelah gelombang menyentuh permukaan target, maka target akan memantulkan kembali gelombang tersebut. Gelombang pantulan dari target akan ditangkap oleh sensor, kemudian sensor menghitung selisih antara waktu pengiriman gelombang dan waktu gelombang pantul diterima.

Gambar 12. Cara Kerja Sensor Ultrasonik


Gambar 13. Grafik Respon Sensor Ultrasonik

Berdasarkan grafik di atas dapat disimpulkan bahwa bahwa sensor ultrasonik memiliki kinerja rendah dalam pengukuranpada jarak yang rendah. Kinerja sensor memiliki hasil yang akurat untuk pengukuran jarak jauh. Secara detail, cara kerja sensor ultrasonik adalah sebagai berikut:

l  Sinyal dipancarkan oleh pemancar ultrasonik dengan frekuensi tertentu dan dengan durasi waktu tertentu. Sinyal tersebut berfrekuensi diatas 20kHz. Untuk mengukur jarak benda (sensor jarak), frekuensi yang umum digunakan adalah 40kHz.

l  Sinyal yang dipancarkan akan merambat sebagai gelombang bunyi dengan kecepatan sekitar 340 m/s. Ketika menumbuk suatu benda, maka sinyal tersebut akan dipantulkan oleh benda tersebut.

l  Setelah gelombang pantulan sampai di alat penerima, maka sinyal tersebut akan diproses untuk menghitung jarak benda tersebut. Jarak benda dihitung berdasarkan rumus :

S = 340.t/2

dimana S merupakan jarak antara sensor ultrasonik dengan benda (bidang pantul), dan t adalah selisih antara waktu pemancaran gelombang oleh transmitter dan waktu ketika gelombang pantul diterima receiver.

 

g.      Rain sensor


Spesifikasi:

·         Vin : DC 5V 9V.

·         Radius : 180 derajat.

·         Jarak deteksi : 5 7 meter.

·         Output : Digital TTL.

·         Memiliki setting sensitivitas.

·         Memiliki setting time delay.

·         Dimensi : 3,2 cm x 2,4 cm x 2,3 cm.        

·         Berat : 10 gr.

h.      Jumper

Jumper adalah suatu istilah kabel yang ber-diameter kecil yang di dalam dunia elektronika digunakan untuk menghubungkan dua titik atau lebih dan dapat juga untuk menghubungkan 2 komponen elektronika.

Jenis-jenis jumper :

l   Male-Male


Gambar 17. Jumper Male-Male

Kabel jumper jenis ini digunakan untuk koneksi male to male pada kedua ujung kabelnya.

l   Male-Female


Gambar 18. Jumper Male-Female

Kabel jumper jenis ini digunakan untuk koneksi male to female dengan salah satu ujung kabel dikoneksi male dan satu ujungnya lagi dengan koneksi female.

 

l   Female-Female

Gambar 19. Jumper Female-Female

Kabel jumper jenis ini digunakan untuk koneksi female to female pada kedua ujung kabelnya.

 

i.        Resistor

Resistor merupakan komponen penting dan sering dijumpai dalam sirkuit Elektronik. Boleh dikatakan hampir setiap sirkuit Elektronik pasti ada Resistor. Tetapi banyak diantara kita yang bekerja di perusahaan perakitan Elektronik maupun yang menggunakan peralatan Elektronik tersebut tidak mengetahui cara membaca kode warna ataupun kode angka yang ada ditubuh Resistor itu sendiri. Seperti yang dikatakan sebelumnya, nilai Resistor yang berbentuk Axial adalah diwakili oleh Warna-warna yang terdapat di tubuh (body) Resistor itu sendiri dalam bentuk Gelang. Umumnya terdapat 4 Gelang di tubuh Resistor, tetapi ada juga yang 5 Gelang. Gelang warna Emas dan Perak biasanya terletak agak jauh dari gelang warna lainnya sebagai tanda gelang terakhir. Gelang Terakhirnya ini juga merupakan nilai toleransi pada nilai Resistor yang bersangkutan. Tabel dibawah ini adalah warna-warna yang terdapat di Tubuh Resistor:

Tabel 2. Kode Warna Resistor Perhitungan untuk Resistor dengan 4 Gelang Warna


Gambar 20. Cara Menghitung Nilai Resistor

Masukkan angka langsung dari kode warna Gelang ke-1 (pertama) Masukkan angka langsung dari kode warna Gelang ke-2 Masukkan Jumlah nol dari kode warna Gelang ke-3 atau pangkatkan angka tersebut dengan 10 (10n) Merupakan Toleransi dari nilai Resistor tersebut

Contoh:

Gelang ke 1: Coklat = 1

Gelang ke 2: Hitam = 0

Gelang ke 3: Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105

Gelang ke 4: Perak = Toleransi 10%

Maka nilai Resistor tersebut adalah 10 * 105 = 1.000.000 Ohm atau 1 MOhm dengan toleransi 10%. Perhitungan untuk Resistor dengan 5 Gelang warna :


Gambar 21. Cara Menghitung Nilai Resistor 5 Gelang Warna

Masukkan angka langsung dari kode warna Gelang ke-1 (pertama)

Masukkan angka langsung dari kode warna Gelang ke-2

Masukkan angka langsung dari kode warna Gelang ke-3

Masukkan Jumlah nol dari kode warna Gelang ke-4 atau pangkatkan angka tersebut dengan 10 (10n)

Merupakan Toleransi dari nilai Resistor tersebut

Contoh:

Gelang ke 1: Coklat = 1

Gelang ke 2: Hitam = 0

Gelang ke 3: Hijau = 5

Gelang ke 4: Hijau = 5 nol dibelakang angka gelang ke-2; atau kalikan 105

Gelang ke 5: Perak = Toleransi 10%

Maka nilai Resistor tersebut adalah 105 * 105 = 10.500.000 Ohm atau 10,5 MOhm dengan toleransi 10%.

Contoh-contoh perhitungan lainnya:

Merah, Merah, Merah, Emas → 22 * 10² = 2.200 Ohm atau 2,2 Kilo Ohm dengan 5% toleransi

Kuning, Ungu, Orange, Perak → 47 * 10³ = 47.000 Ohm atau 47 Kilo Ohm dengan 10% toleransi

Cara menghitung Toleransi:

2.200 Ohm dengan Toleransi 5% =

2200 – 5% = 2.090

2200 + 5% = 2.310

ini artinya nilai Resistor tersebut akan berkisar antara 2.090 Ohm ~ 2.310 Ohm

 

j.        Motor Servo (SG90)


Gambar 22. Motor Servo

Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer. Serangkaian gear yang melekat pada poros motor DC akan memperlambat putaran poros dan meningkatkan torsi motor servo, sedangkan potensiometer dengan perubahan resistansinya saat motor berputar berfungsi sebagai penentu batas posisi putaran poros motor servo.

        

Prinsip kerja motor servo:

Motor servo dikendalikan dengan memberikan sinyal modulasi lebar pulsa (Pulse Wide Modulation / PWM) melalui kabel kontrol. Lebar pulsa sinyal kontrol yang diberikan akan menentukan posisi sudut putaran dari poros motor servo. Sebagai contoh, lebar pulsa dengan waktu 1,5 ms (mili detik) akan memutar poros motor servo ke posisi sudut 90⁰. Bila pulsa lebih pendek dari 1,5 ms maka akan berputar ke arah posisi 0⁰ atau ke kiri (berlawanan dengan arah jarum jam), sedangkan bila pulsa yang diberikan lebih lama dari 1,5 ms maka poros motor servo akan berputar ke arah posisi 180⁰ atau ke kanan (searah jarum jam). Lebih jelasnya perhatikan gambar dibawah ini.

Gambar 23. PWM

Lebar pulsa kendali telah diberikan, maka poros motor servo akan bergerak atau berputar ke posisi yang telah diperintahkan, dan berhenti pada posisi tersebut dan akan tetap bertahan pada posisi tersebut. Jika ada kekuatan eksternal yang mencoba memutar atau mengubah posisi tersebut, maka motor servo akan mencoba menahan atau melawan dengan besarnya kekuatan torsi yang dimilikinya (rating torsi servo). Namun motor servo tidak akan mempertahankan posisinya untuk selamanya, sinyal lebar pulsa kendali harus diulang setiap 20 ms (mili detik) untuk menginstruksikan agar posisi poros motor servo tetap bertahan pada posisinya.

 

k.      LCD (1602)

Gambar 24. LCD

LCD atau Liquid Crystal Display adalah suatu jenis media display (tampilan) yang menggunakan kristal cair (liquid crystal) untuk menghasilkan gambar yang terlihat. Teknologi Liquid Crystal Display (LCD) atau Penampil Kristal Cair sudah banyak digunakan pada produk-produk seperti layar Laptop, layar Ponsel, layar Kalkulator, layar Jam Digital, layar Multimeter, Monitor Komputer, Televisi, layar Game portabel, layar Thermometer Digital dan produk-produk elektronik lainnya.

Teknologi Display LCD ini memungkinkan produk-produk elektronik dibuat menjadi jauh lebih tipis jika dibanding dengan teknologi Tabung Sinar Katoda (Cathode Ray Tube atau CRT). Jika dibandingkan dengan teknologi CRT, LCD juga jauh lebih hemat dalam mengkonsumsi daya karena LCD bekerja berdasarkan prinsip pemblokiran cahaya sedangkan CRT berdasarkan prinsip pemancaran cahaya. Namun LCD membutuhkan lampu backlight (cahaya latar belakang) sebagai cahaya pendukung karena LCD sendiri tidak memancarkan cahaya. Beberapa jenis backlight yang umum digunakan untuk LCD diantaranya adalah backlight CCFL (Cold cathode fluorescent lamps) dan backlight LED (Light-emitting diodes).
            LCD atau Liquid Crystal Display pada dasarnya terdiri dari dua bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid Crystal (Kristal Cair). Seperti yang disebutkan sebelumnya, LCD tidak memancarkan pencahayaan apapun, LCD hanya merefleksikan dan mentransmisikan cahaya yang melewatinya. Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih. Sedangkan Kristal Cair (Liquid Crystal) sendiri adalah cairan organik yang berada diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.
Bagian-bagian LCD atau Liquid Crystal Display diantaranya adalah:

·         Lapisan Terpolarisasi 1 (Polarizing Film 1)

·         Elektroda Positif (Positive Electrode)

·         Lapisan Kristal Cair (Liquid Cristal Layer)

·         Elektroda Negatif (Negative Electrode)

·         Lapisan Terpolarisasi 2 (Polarizing film 2)

·         Backlight atau Cermin (Backlight or Mirror)

Dibawah ini adalah gambar struktur dasar sebuah LCD:

Gambar 25. Struktur LCD

LCD yang digunakan pada Kalkulator dan Jam Tangan digital pada umumnya menggunakan Cermin untuk memantulkan cahaya alami agar dapat menghasilkan digit yang terlihat di layar. Sedangkan LCD yang lebih modern dan berkekuatan tinggi seperti TV, Laptop dan Ponsel Pintar menggunakan lampu Backlight (Lampu Latar Belakang) untuk menerangi piksel kristal cair. Lampu Backlight tersebut pada umumnya berbentuk persegi panjang atau strip lampu Flourescent atau Light Emitting Diode (LED). Cahaya putih adalah cahaya terdiri dari ratusan cahaya warna yang berbeda. Ratusan warna cahaya tersebut akan terlihat apabila cahaya putih mengalami refleksi atau perubahan arah sinar. Artinya, jika beda sudut refleksi maka berbeda pula warna cahaya yang dihasilkan.

Backlight LCD yang berwarna putih akan memberikan pencahayaan pada Kristal Cair atau Liquid Crystal. Kristal cair tersebut akan menyaring backlight yang diterimanya dan merefleksikannya sesuai dengan sudut yang diinginkan sehingga menghasilkan warna yang dibutuhkan. Sudut Kristal Cair akan berubah apabila diberikan tegangan dengan nilai tertentu. Karena dengan perubahan sudut dan penyaringan cahaya backlight pada kristal cair tersebut, cahaya backlight yang sebelumnya adalah berwarna putih dapat berubah menjadi berbagai warna.

Jika ingin menghasilkan warna putih, maka kristal cair akan dibuka selebar-lebarnya sehingga cahaya backlight yang berwarna putih dapat ditampilkan sepenuhnya. Sebaliknya, apabila ingin menampilkan warna hitam, maka kristal cair harus ditutup serapat-rapatnya sehingga tidak adalah cahaya backlight yang dapat menembus. Dan apabila menginginkan warna lainnya, maka diperlukan pengaturan sudut refleksi kristal cair yang bersangkutan.

 

l.        Buzzer

Gambar 26. Buzzer

Buzzer Listrik adalah sebuah komponen elektronika yang dapat mengubah sinyal listrik menjadi getaran suara. Pada umumnya, Buzzer yang merupakan sebuah perangkat audio ini sering digunakan pada rangkaian anti-maling, Alarm pada Jam Tangan, Bel Rumah, peringatan mundur pada Truk dan perangkat peringatan bahaya lainnya. Jenis Buzzer yang sering ditemukan dan digunakan adalah Buzzer yang berjenis Piezoelectric, hal ini dikarenakan Buzzer Piezoelectric memiliki berbagai kelebihan seperti lebih murah, relatif lebih ringan dan lebih mudah dalam menggabungkannya ke Rangkaian Elektronika lainnya. Buzzer yang termasuk dalam keluarga Transduser ini juga sering disebut dengan Beeper.

 

m.    LED

Gambar 27. LED

Light Emitting Diode atau yang sering disingkat LED merupakan sebuah komponen elektromagnetik yang dapat memancarkan cahaya monokromatik melalui tegangan maju. LED terbuat dari bahan semi konduktor yang merupakan keluarga dioda. LED dapat memancarkan berbagai warna, tergantung dari bahan semikonduktor yang digunakan. LED juga dapat memancarkan cahaya inframerah yang tak tampat, seperti pada remote TV. Cara kerja dari LED hampir sama dengan keluarga dioda yang memiliki dua kutub, yaitu Kutub Positif (P) dan Kutub Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju (bias foward) dari Anoda ke Katoda. LED sendiri terdiri atas sebuah chip semikonduktor yang didopping, sehingga menciptakan junction antara kutub P dan kutub N. Proses dopping dalam semikonduktor adalah proses untuk menambahkan impurity / ketidakmampuan pada semikonduktr yang murni, sehingga dapat emnghasilkan karakteristik kelistrikan yang diinginkan.

 

n.      Arduino Uno

Gambar 28. Arduino Uno

 

Arduino Uno adalah board mikrokontroler berbasis ATmega328 (datasheet). Memiliki 14 pin input dari output digital dimana 6 pin input tersebut dapat digunakan sebagai output PWM dan 6 pin input analog, 16 MHz osilator kristal, koneksi USB, jack power, ICSP header, dan tombol reset. Untuk mendukung mikrokontroler agar dapat digunakan, cukup hanya menghubungkan Board Arduino Uno ke komputer dengan menggunakan kabel USB atau listrik dengan AC yang-ke adaptor-DC atau baterai untuk menjalankannya. Uno berbeda dengan semua board sebelumnya dalam hal koneksi USB-to-serial yaitu menggunakan fitur Atmega8U2 yang diprogram sebagai konverter USB-to-serial berbeda dengan board sebelumnya yang menggunakan chip FTDI driver USB-to-serial.

Nama “Uno” berarti satu dalam bahasa Italia, untuk menandai peluncuran Arduino 1.0. Uno dan versi 1.0 akan menjadi versi referensi dari Arduino. Uno adalah yang terbaru dalam serangkaian board USB Arduino, dan sebagai model referensi untuk platform Arduino, untuk perbandingan dengan versi sebelumnya, lihat indeks board Arduino.

SPESIFIKASI

Arduino Uno

Microcontroller

ATmega328P

Operating Voltage

5V

Input Voltage (recommended)

7-12V

Input Voltage (limit)

6-20V

Digital I/O Pins

14 (of which 6 provide PWM output)

PWM Digital I/O Pins

6

Analog Input Pins

6

DC Current per I/O Pin

20 mA

DC Current for 3.3V Pin

50 mA

Flash Memory 32 KB

(ATmega328P)

SRAM

2 KB (ATmega328P)

EEPROM

1 KB (ATmega328P)

Clock Speed

16 MHz

LED_BUILTIN

13

Length

68.6 mm

Width

53.4 mm

Weight

 

 

Arduino Uno dapat diaktifkan melalui koneksi USB atau dengan catu daya eksternal (otomatis). Daya Eksternal (non-USB) dapat berasal baik dari AC-ke adaptor-DC atau baterai. Adaptor ini dapat dihubungkan dengan menancapkan plug jack pusat-positif ukuran 2.1mm konektor POWER. Ujung kepala dari baterai dapat dimasukkan kedalam Gnd dan Vin pin header dari konektor POWER. Kisaran kebutuhan daya yang disarankan untuk board Uno adalah7 sampai dengan 12 V, jika diberi daya kurang dari 7 V kemungkinan pin 5 V Uno dapat beroperasi tetapi tidak stabil kemudian jika diberi daya lebih dari 12V, regulator tegangan bisa panas dan dapat merusak board Uno.
Pin listrik adalah sebagai berikut:

a)      VIN. Tegangan masukan kepada board Arduino ketika itu menggunakan sumber daya eksternal (sebagai pengganti dari 5volt koneksi USB atau sumber daya lainnya).

b)      5V. Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.

c)      3v3. Sebuah pasokan 3,3volt dihasilkan oleh regulator on-board.

d)     GND. Ground pin Input dan Output

Masing-masing dari 14 pin digital di Uno dapat digunakan sebagai input atau output, dengan menggunakan fungsi pinMode ()digitalWrite (), dan digitalRead (), beroperasi dengan daya 5 volt. Setiap pin dapat memberikan atau menerima maksimum 40 mA dan memiliki internal pull-up resistor (secara default terputus) dari 20-50 kOhms. Selain itu, beberapa pin memiliki fungsi khusus:

e)      Serial: 0 (RX) dan 1 (TX). Digunakan untuk menerima (RX) dan mengirimkan (TX) TTL data serial. Pin ini dihubungkan ke pin yang berkaitan dengan chip Serial ATmega8U2 USB-to-TTL.

f)       Eksternal menyela: 2 dan 3. Pin ini dapat dikonfigurasi untuk memicu interrupt pada nilai yang rendah, dengan batasan tepi naik atau turun, atau perubahan nilai. Lihat (attachInterrupt) fungsi untuk rincian lebih lanjut.

g)      PWM: 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsi analogWrite ().

h)      SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library.

i)        LED: 13. Ada built-in LED terhubung ke pin digital 13. Ketika pin bernilai nilai HIGH, LED on, ketika pin bernilai LOW, LED off. Arduino Uno memiliki 6 masukan analog, berlabel A0 sampai dengan A5, yang masing-masing menyediakan 10 bit dengan resolusi (yaitu 1024 nilai yang berbeda). Selain itu, beberapa pin memiliki fungsi khusus:

j)        I2C: A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire.

k)      Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan fungsi analogReference ().

l)        Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.

 

Arduino Uno memiliki sejumlah fasilitas untuk berkomunikasi dengan komputer, Arduino lain, atau mikrokontroler lainnya. Atmega328 menyediakan UART TTL (5V) untuk komunikasi serial, yang tersedia di pin digital 0 (RX) dan 1 (TX). Sebuah Atmega8U2 sebagai saluran komunikasi serial melalui USB dan sebagai port virtual com untuk perangkat lunak pada komputer. Firmware ’8 U2 menggunakan driver USB standar COM, dan tidak ada driver eksternal yang diperlukan. Namun, pada Windows diperlukan, sebuah file inf.

Perangkat lunak Arduino terdapat monitor serial yang memungkinkan digunakan memonitor data tekstual sederhana yang akan dikirim komputer dari board Arduino. LED RX dan TX di papan tulis akan berkedip ketika data sedang dikirim melalui chip USB-to-serial dengan koneksi USB ke komputer (tetapi tidak untuk komunikasi serial pada pin 0 dan 1). Sebuah Software Serial library memungkinkan untuk berkomunikasi secara serial pada salah satu pin digital pada board Uno. Atmega328 juga mendukung I2C (TWI) dan komunikasi SPI. Perangkat lunak Arduino termasuk perpustakaan Kawat untuk menyederhanakan penggunaan bus I2C, lihat dokumentasi untuk rincian. Untuk komunikasi SPI, menggunakan perpustakaan SPI.

 

 

o.      Potensiometer

Gambar 29. Potensiometer

Potensiometer adalah salah satu jenis Resistor yang Nilai Resistansinya dapat diatur sesuai dengan kebutuhan Rangkaian Elektronika ataupun kebutuhan pemakainya. Potensiometer merupakan Keluarga Resistor yang tergolong dalam Kategori Variable Resistor. Secara struktur, Potensiometer terdiri dari 3 kaki Terminal dengan sebuah shaft atau tuas yang berfungsi sebagai pengaturnya. Gambar dibawah ini menunjukan Struktur Internal Potensiometer beserta bentuk dan Simbolnya.
Pada dasarnya bagian-bagian penting dalam Komponen Potensiometer adalah:

·         Penyapu atau disebut juga dengan Wiper

·         Element Resistif

·         Terminal

Berdasarkan bentuknya, Potensiometer dapat dibagi menjadi 3 macam, yaitu:

·         Potensiometer Slider, yaitu Potensiometer yang nilai resistansinya dapat diatur dengan cara menggeserkan Wiper-nya dari kiri ke kanan atau dari bawah ke atas sesuai dengan pemasangannya. Biasanya menggunakan Ibu Jari untuk menggeser wiper-nya.

·         Potensiometer Rotary, yaitu Potensiometer yang nilai resistansinya dapat diatur dengan cara memutarkan Wiper-nya sepanjang lintasan yang melingkar. Biasanya menggunakan Ibu Jari untuk memutar wiper tersebut. Oleh karena itu, Potensiometer Rotary sering disebut juga dengan Thumbwheel Potentiometer.

·         Potensiometer Trimmer, yaitu Potensiometer yang bentuknya kecil dan harus menggunakan alat khusus seperti Obeng (screwdriver) untuk memutarnya. Potensiometer Trimmer ini biasanya dipasangkan di PCB dan jarang dilakukan pengaturannya.


Gambar 30. Jenis-Jenis Potensiometer

Gambar Jenis-Jenis Potensometer

Sebuah Potensiometer (POT) terdiri dari sebuah elemen resistif yang membentuk jalur (track) dengan terminal di kedua ujungnya. Sedangkan terminal lainnya (biasanya berada di tengah) adalah Penyapu (Wiper) yang dipergunakan untuk menentukan pergerakan pada jalur elemen resistif (Resistive). Pergerakan Penyapu (Wiper) pada Jalur Elemen Resistif inilah yang mengatur naik-turunnya Nilai Resistansi sebuah Potensiometer.

Elemen Resistif pada Potensiometer umumnya terbuat dari bahan campuran Metal (logam) dan Keramik ataupun Bahan Karbon (Carbon). Berdasarkan Track (jalur) elemen resistif-nya, Potensiometer dapat digolongkan menjadi 2 jenis yaitu Potensiometer Linear (Linear Potentiometer) dan Potensiometer Logaritmik (Logarithmic Potentiometer).

Dengan kemampuan yang dapat mengubah resistansi atau hambatan, Potensiometer sering digunakan dalam rangkaian atau peralatan Elektronika dengan fungsi-fungsi sebagai berikut:

·         Sebagai pengatur Volume pada berbagai peralatan Audio/Video seperti Amplifier, Tape Mobil, DVD Player.

·         Sebagai Pengatur Tegangan pada Rangkaian Power Supply

·         Sebagai Pembagi Tegangan

·         Aplikasi Switch TRIAC

·         Digunakan sebagai Joystick pada Tranduser

·         Sebagai Pengendali Level Sinyal

 

p.      Bread Board

Gambar 31. Project Board

Project Board atau yang sering disebut sebagai BreadBoard adalah dasar konstruksi sebuah sirkuit elektronik dan merupakan prototipe dari suatu rangkaian elektronik. Di zaman modern istilah ini sering digunakan untuk merujuk pada jenis tertentu dari papan tempat merangkai komponen, dimana papan ini tidak memerlukan proses menyolder (langsung tancap). Karena papan ini solderless atau tidak memerlukan solder sehingga dapat digunakan kembali, dan dengan demikian dapat digunakan untuk prototipe sementara serta membantu dalam bereksperimen desain sirkuit elektronika. Berbagai sistem elektronik dapat di prototipekan dengan menggunakan breadboard, mulai dari sirkuit analog dan digital kecil sampai membuat unit pengolahan terpusat (CPU).

    
4. Listing Program[Kembali]

·         Master

#include <Wire.h>

#include <TimeLib.h>

#include <DS1307RTC.h>

#include <LiquidCrystal.h>

 

#define RAIN A3

#define TRIG 10

#define ECHO 11

 

// ===== STATE ======

int rain_state = 0, ultrasonic_state = 0; // rain -> 0 tidak hujan, 1 hujan, ultrasonic 0 -> 0 supply water, 1 optimal water, 2 exceed water

 

// LCD INIT

const int rs = 2, en = 3, d4 = 4, d5 = 6, d6 = 7, d7 = 8;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

const int numRows = 2, numCols = 16;;

 

 

// set time

int set_hour = 5, set_minute = 11, set_second = 5;

int pakan_time_start[3] = {set_hour,set_minute, set_second};

int pakan_time_stop[3] = {set_hour, set_minute, set_second + 10};

 

// ultrasonic

long duration;

int distance;

 

void setup() {

//  pinMode(RAIN, INPUT);

  ultrasonic_init();

  lcd.begin(numCols, numRows);

//  rtc_init();

  Serial.begin(9600);

}

 

void loop() {

  tmElements_t tm;

 

  if (RTC.read(tm)) {

    lcd.setCursor(0,0);

    int rtc_hour = print2digits(tm.Hour);

    int rtc_minute = print2digits(tm.Minute);

    int rtc_second = print2digits(tm.Second);

    lcd.print(rtc_hour);

    lcd.print(':');

    lcd.print(rtc_minute);

    lcd.print(':');

    lcd.print(rtc_second);

 

    // ====== PAKAN =========

  if (rtc_hour == pakan_time_start[0] && rtc_minute == pakan_time_start[1] && rtc_second == pakan_time_start[2]) {

    Serial.print('1');

  } else if (rtc_hour == pakan_time_stop[0] && rtc_minute == pakan_time_stop[1] && rtc_second == pakan_time_stop[2]) {

    Serial.print('2');

  }

  } else {

    if (RTC.chipPresent()) {

      Serial.println("The DS1307 is stopped.  Please run the SetTime");

      Serial.println("example to initialize the time and begin running.");

      Serial.println();

    } else {

      Serial.println("DS1307 read error!  Please check the circuitry.");

      Serial.println();

    }

    delay(9000);

  }

 

  digitalWrite(TRIG,LOW);

  delayMicroseconds(2);

  digitalWrite(TRIG,HIGH);

  delayMicroseconds(10);

  digitalWrite(TRIG,LOW);

  duration = pulseIn(ECHO, HIGH);

  distance = duration*0.034/2; // speed of sound 340 km/s

  lcd.setCursor(0,1);

  lcd.print("Jarak : ");

  lcd.print(distance);

  lcd.print("  CM ");

 

 

 if (distance > 10) {

    if (ultrasonic_state != 0) {

      Serial.write('3');

      ultrasonic_state = 0;

    }

  }else if (distance <= 10 && distance >= 5) {

    if (ultrasonic_state != 1) {

      Serial.write('5');

      ultrasonic_state = 1;

    }

  }else {

    if (ultrasonic_state != 2) {

      Serial.write('4');

      ultrasonic_state = 2;

    }

  }

 

  // RAIN SENSOR

  if (analogRead(RAIN) < 400) {

    if (rain_state != 1) {

      Serial.write('6');

      rain_state = 1;

    }

  }else {

    if (rain_state != 0) {

      Serial.write('7');

      rain_state = 0;

    }

  }

 

  Serial.println();

  delay(500);

}

 

void ultrasonic_init() {

  pinMode(TRIG, OUTPUT);

  pinMode(ECHO,INPUT);

}

 

int print2digits(int number) {

  if (number >= 0 && number < 10) {

    lcd.print('0');

  }

  return number;

}

 

·         Slave

// ===== SLAVE =======

#include <Servo.h>

 

#define STEPPER_PIN_1 2

#define STEPPER_PIN_2 3

#define STEPPER_PIN_3 4

#define STEPPER_PIN_4 5

#define SERVO_PIN 6

#define RELAY 7

#define LED_RED 10

#define LED_YELLOW 11

#define LED_GREEN 12

 

int step_number = 0, one_revolution = 2048, roof_state = 1; // 0 -> roof open | 1 -> roof close

bool is_read_serial = true;

 

// SERVO

Servo servo;

 

void setup() {

//  stepper_init();

  pinMode(RELAY, OUTPUT);

  led_init();

  servo.attach(SERVO_PIN);

  Serial.begin(9600);

}

 

void loop() {

    if (Serial.available() && is_read_serial) {

      char data_rcv = Serial.read();

 

      switch (data_rcv) {

        case '1':

          control_pakan_start();

          break;

        case '2':

          control_pakan_stop();

          break;

        case '3':

          supply_water();

          break;

        case '4':

          exceeded_water();

          break;

        case '5':

          optimal_water();

        case '6':

          is_read_serial = false;

          roof_close();

          is_read_serial = true;

          break;

        case '7':

          is_read_serial = false;

          roof_open();

          is_read_serial = true;

          break;

        default:

          break;

      }

    }

}

 

// ROOF SENSE BY RAIN SENSOR

void stepper_init() {

  pinMode(STEPPER_PIN_1, OUTPUT);

  pinMode(STEPPER_PIN_2, OUTPUT);

  pinMode(STEPPER_PIN_3, OUTPUT);

  pinMode(STEPPER_PIN_4, OUTPUT);

}

 

void oneStep(bool dir) {

  if (dir) {

    switch(step_number) {

      case 0:

        digitalWrite(STEPPER_PIN_1, HIGH);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

      case 1:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, HIGH);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

      case 2:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, HIGH);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

      case 3:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, HIGH);

      break;

    }

  }else {

    switch(step_number) {

      case 0:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, HIGH);

      break;

      case 1:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, HIGH);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

      case 2:

        digitalWrite(STEPPER_PIN_1, LOW);

        digitalWrite(STEPPER_PIN_2, HIGH);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

      case 3:

        digitalWrite(STEPPER_PIN_1, HIGH);

        digitalWrite(STEPPER_PIN_2, LOW);

        digitalWrite(STEPPER_PIN_3, LOW);

        digitalWrite(STEPPER_PIN_4, LOW);

      break;

  }

}

  step_number++;

  if (step_number > 3) {

    step_number = 0;

  }

}

 

void roof_open() {

  if (roof_state == 0) {

    return;

  }

 

   for (int i = 0; i < 2 * one_revolution; i++) {

     oneStep(false);

     delay(2);

  }

  step_number = 0;

  roof_state = 0;

}

 

void roof_close() {

  if (roof_state == 1) {

    return; 

  }

 

   for (int i = 0; i < 2 * one_revolution; i++) {

     oneStep(true);

     delay(2);

  }

  step_number = 0;

  roof_state = 1; // set state to close

}

 

// PAKAN CONTROL SENSE BY RTC

void control_pakan_start() {

  // open the caps

  servo.write(180);

}

 

void control_pakan_stop() {

  // close the caps

  servo.write(0);

}

 

// WATER CONTROL SENSE BY ULTRASONIC

void supply_water() {

  digitalWrite(RELAY,LOW);

  digitalWrite(LED_RED, HIGH);

  digitalWrite(LED_YELLOW, LOW);

  digitalWrite(LED_GREEN, LOW);

}

 

void exceeded_water() {

  digitalWrite(RELAY,HIGH);

  digitalWrite(LED_RED, LOW);

  digitalWrite(LED_YELLOW, HIGH);

  digitalWrite(LED_GREEN, LOW);

}

 

void optimal_water() {

  digitalWrite(RELAY, HIGH);

  digitalWrite(LED_RED, LOW);

  digitalWrite(LED_YELLOW, LOW);

  digitalWrite(LED_GREEN, HIGH);

}

 

void led_init() {

  pinMode(LED_RED, OUTPUT);

  pinMode(LED_GREEN, OUTPUT);

  pinMode(LED_YELLOW, OUTPUT);

}


5. Flowchart [Kembali]

master






6. Rangkaian Simulasi [Kembali]


7. Hardware dan Video [Kembali]





8. Analisis [Kembali]

Input :

Pada Rangkaian kontrol pakan kolam ikan diberikan input berupa sensor  hujan, sensor RTC, dan sensor ultrasonik. Masing-masing sensor diberikan tegangan masukan 5 volt, lalu setiap pin-pin pada sensor dihubungkan sesuai dengan kofigurasi yang telah disediakan. Untuk sensor RTC digunakan untuk pengatur waktu saat pemberian makan ikan, sensor ultrasonik digunakan untuk menghitung ketinggian air kolam, dan rain sensor  digunakan sebagai pendeteksi hujan yang bertujuan untuk buka tutup atap kolam ikan

Proses:

Cara kerja alat ini yaitu sensor untrasonic yang dipasang menghadap air kolam digunakan untuk menghitung ketinggian air kolam. Sensor ultrasonic digunakan sebagai input pada Arduino master. Selain itu digunakan RTC yang menggunakan komunikasi I2C untuk pengiriman data waktu ke arduino master yang digunakan sebagai pengatur waktu saat pemberian makan ikan. Kemudian sensor hujan digunakan sebagai pendeteksi hujan pada area kolam. Hasil pembacaan ketinggian kolam ikan dan waktu ditampilkan di LCD yang dihubungkan dengan Arduino master.

Pada Arduino Slave dihubungkan dengan LED, relay untuk mengatur pompa air, servo, dan motor stepper. LED digunakan sebagai indikator. Apabila air pada kolam kurang dari 10 cm maka akan LED berwarna merah menyala dan relay menyala. Apabila air sudah mencukupi ketinggian  yang ditetapkan yaitu 10 – 15 cm maka LED hijau menyala dan jika ketinggian air di atas 15 cm maka LED kuning menyala serta mematikan relay.

Arduino master dan slave dihubungkan menggunakan komunikasi UART. Apabila ketinggian air belum cukup sesuai kapasitas kolam (dideteksi oleh ultrasonic) maka Arduino master mengirimkan data ke slave sehingga LED merah dan pompa air yang terhubung pada slave menyala. Apabila ketinggian air sudah sesuai dengan yang di programkan maka Arduino master mengirimkan data ke Arduino slave sehingga LED kuning menyala dan pompa air tidak menyala. Selanjutnya Ketika RTC menampilkan waktu yang sesuai dengan waktu pemberian makan ikan, maka Arduino master memberikan data ke Arduino slave sehingga servo berputar 180 derajat untuk membuka tutup kotak makanan ikan sehingga pemberian makan ikan dilakukan otomatis. Kemudian saat sensor hujan mendeteksi air hujan maka akan menyalakan motor stepper yang berputar sebanyak 512 langkah/step yang membuat atap tertutup dan sebaliknya jika sudah tidak terdeteksi air hujan maka motor stepper akan berputar berlawanan arah sebanyak 512 langkah/step untuk membuka atap kolam,


    

9. Kesimpulan [Kembali]

Berdasarkan percobaan yang telah dilakukan maka didapatkan kesimpulan bahwa dengan menggunakan Sensor RTC, Sensor Ultrasonik dan Rain Sensor serta arduino dan komponen pendukung lainnya melalui komunikasi I2C dan UART  yang merupakan komunikasi serial dimana sudah dapat didesain untuk kontrol pakan kolam ikan yang sangat berguna dan mempermudah bagi pemilik kolam ikan untuk merawat ikan dan mengontrol kebersihan kolam ikan.


10. Link Download [Kembali]


[Menuju Awal]


Tidak ada komentar:

Posting Komentar