Modul 2 : Aplikasi I/O Sederhana (melibatkan Timer/Interrupt/ADC) untuk Kontrol Air Kolam Ikan




KONTROL KOLAM LELE OTOMATIS


1. Pendahuluan
[Kembali]

Mikrokontroler adalah sebuah komponen elektronik yang terdiri dari unit pemrosesan pusat (CPU), memori, dan perangkat I/O (Input/Output) yang terintegrasi dalam satu chip kecil. Fungsi utama mikrokontroler adalah untuk mengontrol suatu sistem atau perangkat elektronik. Keunggulan utama mikrokontroler terletak pada kemampuannya untuk menjalankan program yang telah diprogram sebelumnya, sehingga memungkinkan otomatisasi dan kontrol yang presisi dalam berbagai aplikasi. Dalam proyek ini, mikrokontroler berperan sebagai otak sistem yang memproses informasi dari sensor suhu, temperatur, dan pH, serta mengambil keputusan untuk mengatur perangkat-perangkat kontrol air pada kolam ikan. Dengan fleksibilitas dan kemampuan pemrosesan yang dimilikinya, mikrokontroler menjadi elemen kunci dalam menciptakan solusi cerdas untuk mengoptimalkan kondisi lingkungan kolam ikan secara efektif.

2. Tujuan [Kembali]

1. Memahami peran dan fungsi mikrokontroler sebagai pusat pengendalian dalam sistem.
  
2. Menggunakan sensor untuk mendeteksi dan mengukur kondisi air kolam ikan.

3. Menyusun dan mengintegrasikan komponen mikrokontroler dengan sensor-sensor.

4. Mengimplementasikan mikrokontroler untuk mengontrol perangkat-perangkat secara otomatis.

5. Meningkatkan kontrol dan presisi dalam pengelolaan lingkungan kolam ikan menggunakan otomatisasi mikrokontroler.

3. Alat dan Bahan [Kembali]

a. Alat

  • Power Supply



Spesifikasi :

Input voltage    : 5V-12V
Output voltage  : 5V
Output Current : MAX 3A
Output power   :15W

b. Bahan

  • Arduino UNO



Spesifikasi : 

  • Motor DC


Spesifikasi :

Operating temperature  : -10oC – 60oC
Rated voltage                : 6.0VDC
Rate load                       : 10 g*cm
No-load current             : 70 mA max
No-load speed               : 9100±1800rpm
Loaded current              : 250 A max
Loaded speed                : 4500±1500 rpm
Starting torque              : 20 g*cm
Starting voltage            : 2.0
Stall current                  : 500 mA max
Body size                      : 27.5mm x 20mm x 15mm
Weight                           : 17.5 grams
  • Relay


Spesifikasi : 

Trigger Voltage (Voltage across coil) : 5V DC
Trigger Current (Nominal current)     : 70mA
Maximum AC load current                 : 10A @ 250/125V AC
Maximum DC load current                 : 10A @ 30/28V DC
Compact 5-pin configuration with plastic moulding
Operating time                                    : 10msec Release time: 5msec
Maximum switching                           : 300 operating/minute (mechanicall
  • Baterai 


Spesifikasi :

Input voltage                    : ac 100~240v / dc 10~30v
Output voltage                 : dc 1~35v
Max. Input current           : dc 14a
Charging current              : 0.1~10a
Discharging current         : 0.1~1.0a
Balance current               : 1.5a/cell max
Max. Discharging power : 15w
Max. Charging power     : ac 100w / dc 250w
Jenis batre yg didukung  : life, lilon, lipo 1~6s, lihv 1-6s, pb 1-12s, nimh, cd 1-16s
Ukuran                            : 126x115x49mm
Berat                               : 460gr

  • Dioda
Spesifikasi :


  • Transistor

Spesifikasi :


  • Resistor


Spesifikasi :


  • Sensor Suhu (LM35)

Spesifikasi :

Local sensor accuracy (max)         : 0.5, 1
Operating temperature range (°C) : -55 to 150
Supply voltage (min) (V)              : 4
Supply voltage (max) (V)              : 30
Supply current (max) (µA)            : 114
Interface type                                : Analog output
Sensor gain (mV/°C)                    : 10

  • Kapasitor


  • Spek :


    .

  • Potensiometer




    Spesifikasi:

  •  Induktor 




  • PH meter


Spesifikasi :

rentang pengukuran PH : 3,5 - 9 (3,5-6,5 asam, 7-9 alkali)
Dimensi Paket               : 12,6 x 4,2 x 1,2 inch
berat                               : 3,2 ons

  • Sensor Ultrasonik
    m. Sensor ultrasonik ini memiliki 4 pin yaitu: ▪ Pin VCC sebagai pin masukan tegangan. ▪ Pin GND sebagai grounding. ▪ Pin Trigger untuk trigger keluarnya sinyal. ▪ Pin Echo untuk menangkap sinyal pantul dari benda

Spesifikasi dari sensor ultrasonik HC-SR04 adalah sebagai berikut : ▪ Dimensi : 45 mm (P) x 20 mm (L) x 15 mm (T) ▪ Tegangan : 5 VDC ▪ Arus pada mode siaga : <2 mA ▪ Arus pada saat deteksi : 15 mA ▪ Frekuensi suara : 40 kHz ▪ Jangkauan Minimum : 2 cm ▪ Jangkauan Maksimum : 400 cm ▪ Input Trigger : 10µS minimum, pulsa level TTL ▪ Pulsa Echo : Sinyal level TTL positif, lebar berbanding proporsional dengan jarak yang dideteksi. 
  • Heater

Spesifikasi :

Ukuran  25 Watt untuk volume air kurang lebih 25 Liter
Ukuran  50 Watt untuk volume air kurang lebih 50 Liter
Ukuran  75 Watt untuk volume air kurang lebih 75 Liter
Ukuran 100 Watt untuk volume air kurang lebih 100 Liter
Ukuran 150 Watt untuk volume air kurang lebih 150 Liter
Ukuran 200 Watt untuk volume air kurang lebih 200 Liter
Ukuran 300 Watt untuk volume air kurang lebih 300 Liter

  • Modul PCF8574
Fitur:
- Antarmuka I2C, modul ekspansi I / O, dua skalabilitas I / O 8 I / O (hingga 8 penggunaan simultan
- PCF8574 diperluas menjadi 64 I / O)

Fitur paling penting:
1. Mendukung dua jenis antarmuka papan target akses: Pin atau kursi baris,
2. Mendukung kaskade bus I2C (dengan metode docking pin header row seat dapat digunakan secara bersamaan beberapa modul I2C)
3. Aplikasi umum: I / O kekurangan sumber daya Ekspansi I / O MCU
4. Sumber daya utama: antarmuka PCF8574 I2C, paralel 8-bit

  • Ground
    Ground Berfungsi sebagai untuk meniadakan beda potensial dengan mengalirkan arus sisa dari kebocoran tegangan atau arus pada rangkaian


  •  LCD 20x4



gambar LCD


4. Dasar Teori [Kembali]
  • Arduino UNO



  • Arduino adalah platform perangkat keras (hardware) yang dirancang untuk memudahkan pengembangan dan prototyping proyek-proyek elektronik. Ini terdiri dari papan sirkuit cetak berukuran kecil yang dilengkapi dengan mikrokontroler dan sejumlah pin input/output yang dapat digunakan untuk menghubungkan sensor, aktuator, dan komponen elektronik lainnya.

    Mikrokontroler pada papan Arduino adalah otak utama yang mengontrol berbagai komponen yang terhubung dengannya. Papan Arduino biasanya dilengkapi dengan berbagai macam varian mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology. Meskipun demikian, Arduino lebih sering dikaitkan dengan platform open-source yang dikelola oleh Arduino.cc.

    Arduino memiliki beberapa komponen utama yang membentuk papan sirkuit mikrokontroler. Berikut adalah penjelasan tentang komponen-komponen utama Arduino:

    1. Mikrokontroler: Ini adalah otak utama dari Arduino yang melakukan semua operasi pengolahan data dan kontrol. Arduino menggunakan mikrokontroler sebagai pusat kendali, yang berfungsi untuk membaca input, menjalankan kode program, dan mengontrol output. Beberapa varian Arduino menggunakan mikrokontroler dari berbagai produsen, seperti ATmega yang diproduksi oleh Microchip Technology.
    2. Pin I/O: Arduino memiliki sejumlah pin input/output (I/O) yang digunakan untuk menghubungkan sensor, aktuator, dan komponen lainnya. Pin ini bisa berfungsi sebagai input untuk membaca data dari sensor atau output untuk mengontrol aktuator. Ada pin digital dan pin analog. Pin digital dapat berupa input atau output dengan nilai logika 0 (LOW) atau 1 (HIGH), sementara pin analog digunakan untuk membaca nilai analog seperti sensor suhu atau cahaya.
    3. Papan Sirkuit: Papan Arduino adalah substrat fisik tempat semua komponen terhubung. Papan ini biasanya terbuat dari bahan tahan lama dan dilengkapi dengan jalur tembaga yang menghubungkan komponen-komponen elektronik.
    4. Konektor USB: Banyak varian Arduino dilengkapi dengan konektor USB. Ini memungkinkan Anda untuk menghubungkan papan Arduino ke komputer, sehingga Anda dapat mengunggah kode program ke mikrokontroler dan berkomunikasi dengan papan melalui koneksi serial.
    5. Catu Daya: Arduino memerlukan catu daya untuk beroperasi. Ini bisa berasal dari komputer melalui kabel USB atau dari sumber daya eksternal seperti baterai atau adaptor listrik. Beberapa papan Arduino memiliki regulator tegangan yang memungkinkan papan menerima berbagai tingkat tegangan masukan.
    6. Konektor Listrik: Arduino umumnya memiliki pin header atau konektor yang memungkinkan Anda untuk menghubungkan kabel atau kawat ke pin I/O. Ini memudahkan Anda dalam menghubungkan sensor, aktuator, dan komponen lainnya ke papan Arduino.
    7. Kristal Osilator: Kristal osilator digunakan untuk menghasilkan sinyal osilasi yang diperlukan oleh mikrokontroler untuk menjalankan perhitungan waktu dan operasi lainnya.
    8. Tombol Reset: Tombol reset memungkinkan Anda untuk mengulang proses booting papan Arduino atau menghentikan eksekusi program yang sedang berjalan.
    9. Indikator LED: Beberapa varian Arduino memiliki indikator LED yang terhubung ke pin tertentu. LED ini dapat diatur dalam kode program untuk memberi tahu status atau kondisi papan, seperti aktif atau dalam mode tidur.

    Semua komponen ini bekerja bersama-sama untuk menciptakan platform Arduino yang kuat dan serbaguna untuk mengembangkan berbagai proyek elektronik dan pemrograman.



      Pin (5V, 3.3V, GND, Analog, Digital, PWM, AREF)

      Pin pada Arduino adalah tempat dimana untuk menyambungkan kabel anatara pin Arduino dengan perangkat-perangkat input/output (biasanya menghubungkan dengan rangkaian project pada breadboard). Pin Arduino biasanya berupa female header sehingga untuk mendapatkan koneksi dari pin Arduino hanya cukup colokan kabel ke dalam lubang pin header tersebut. Terdapat beberapa pin pada Arduino dengan fungsi yang berbeda-beda, masing-masing pin diberi label sesuai nama dan fungsinya pada PCB.

      GND : Kependekan dari ‘Ground’. Terdapat beberapa pin ground dan semuanya dapat digunakan.

      5V & 3.3V: 5V pin memberikan supply tegangan 5 volt, dan 3.3V pin memberikan supply tegangan 3.3 volt. Kebanyakan yang digunakan dengan Arduino bekerja pada tegangan 5 atau 3.3 volt.

      Analog: Pin yang berada di bawah tulisan ‘Analog In’ (A0 sampai A5 pada Arduino UNO) adalah pin Analog Input. Pin ini dapat membaca sinyal dari sensor analog (seperti sensor suhu) dan mengkonversinya kedalam nilai digital yang dapat kita baca.

      Digital: Terletak disisi lain dari analog pin terdapat pin digital (0 sampai 13 pada UNO). Pin ini dapat difungsikan sebagai digital input (seperti memberitahukan apabila button dipencet) dan digital output (seperti menyalakan sebuah LED).

      PWM: Kamu bisa melihat simbol (~) pada beberapa pin digital (3, 5, 6, 7, 9, 10, dan 11 pada UNO). Pin ini berfungsi sebagai pin digital biasanya, tapi bisa digunakan untuk Pulse-Width Modulation (PWM), sederhananya pin ini dapat mengeluarkan keluaran tegangan Analog.

      AREF: Singkatan dari Analog Reference. Pin ini digunakan untuk mengatur tegangan referensi external (antara 0 dan 5 volt) sebagai batas untuk pin analog input.

      Tombol Reset

      Seperti komputer pada umumnya, Arduino mempunyai tombol reset (10). Menekan tombol ini akan menghubungkan pin reset dengan ground dan merestart semua kode program yang ada di dalam Arduino. Reset ini akan sangat membantu jika kode tidak berjalan berulang-ulang, tapi kamu ingin menjalankannya beberapa kali.

      Power LED Indicator

      Tepat di bawah dan di sebelah kanan kata “UNO” di board Arduino, ada LED kecil di samping kata ‘ON’ (11). LED ini harus menyala setiap kali Anda memasukkan Arduino Anda ke sumber tegangan. Jika lampu ini tidak menyala, ada kemungkinan ada sesuatu yang salah.

      TX RX LED

      TX adalah singkatan dari transmit, RX adalah singkatan dari receive. Kata ini cukup familiar dalam istilah elektronik untuk menunjukkan pin sebagai komunikasi serial. Dalam board Arduino terdapat dua tempat tulisan TX dan RX – pertama pada pin digital 0 dan 1, dan yang kedua di samping indikator LED TX dan RX (12). LED ini akan memberi kita beberapa indikasi visual setiap kali Arduino menerima atau mentransmisikan data (seperti saat kita memasukan program baru ke board Arduino).

      IC Utama

      Berwarna hitam terdapat banyak kaki logam disampingnya adalah IC, atau Integrated Circuit (13). Anggap saja itu sebagai otaknya Arduino. IC utama pada Arduino UNO berbeda dengan jenis board Arduino lainnya tapi biasanya merupakan IC keluarga ATmega yang diproduksi oleh perusahaan ATMEL. Untuk mengetahui jenis IC yang dipakai bisa ditemukan secara tertulis disisi atas IC. Jika Anda ingin tahu lebih banyak tentang perbedaan antara IC tersebut, dapat dilihat pada datasheet.

      Voltage Regulator

      Regulator tegangan berfungsi untuk membatasi jumlah tegangan yang masuk ke board Arduino. Anggap saja itu sebagai semacam gatekeeper; ini akan menghilangkan tegangan lebih yang mungkin membahayakan sirkuit. Tentu saja, ini memiliki batas, jadijangan menghubungkan Arduino Anda dengan yang lebih besar dari 20 volt.

      • Sensor Suhu LM35
      Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan. Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyaikeluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.


      IC LM 35 ini tidak memerlukan pengkalibrasian atau penyetelan dari luar karena ketelitiannya sampai lebih kurang seperempat derajat celcius pada temperature ruang. Jangka sensor mulai dari – 55°C sampai dengan 150°C, IC LM35 penggunaannya sangat mudah, difungsikan sebagai kontrol dari indicator tampilan catu daya terbelah. IC LM 35 dapat dialiri arus 60 μ A dari supplay sehingga panas yang ditimbulkan sendiri sangat rendah kurang dari 0 ° C di dalam suhu ruangan. Untuk mendeteksi suhu digunakan sebuah sensor suhu LM35 yang dapat dikalibrasikan langsung dalam C (celcius), LM35 ini difungsikan sebagai basic temperature sensor. 


      Prinsip Kerja LM35 :
      Sensor LM35 bekerja dengan mengubah besaran suhu menjadi besaran tegangan. Tegangan ideal yang keluar dari LM35 mempunyai perbandingan 100°C setara dengan 1 volt. Sensor ini mempunyai pemanasan diri (self heating) kurang dari 0,1°C, dapat dioperasikan dengan menggunakan power supply tunggal dan dapat dihubungkan antar muka (interface) rangkaian control.

      Sensor suhu LM35 mampu melakukan pengukuran suhu dari suhu -55ºC hingga +150ºC dengan toleransi kesalahan pengukuran ±0.5ºC.

      Dilihat dari tipenya range suhu dapat dilihat sebagai berikut :
      • LM35, LM35A -> range pengukuran temperature  -55ºC hingga +150ºC.
      • LM35C, LM35CA -> range pengukuran temperature -40ºC hingga +110ºC.
      • LM35D -> range pengukuran temperature 0ºC hingga +100ºC. 
      Kelebihan LM 35 :
      • Rentang suhu yang jauh, antara -55 sampai +150ºC
      • Low self-heating, sebesar 0.08 ºC
      • Beroperasi pada tegangan 4 sampai 30 V
      • Tidak memerlukan pengkondisian sinyal
      Kekurangan LM 35:
      • Membutuhkan tegangan untuk beroperasi.
      Pin out sensor suhu:

      Grafik:

    • Resistor

    Resistor merupakan salah satu komponen yang digunakan dalam sebuah sirkuit atau rangkaian elektronik. Resistor berfungsi sebagai resistansi/ hambatan yang mampu mengatur atau mengendalikan tegangan dan arus listrik rangkaian. Resistor mempunyai nilai resistansi (tahanan) tertentu yang dapat memproduksi tegangan listrik di antara kedua pin dimana nilai tegangan terhadap resistansi tersebut berbanding lurus dengan arus yang mengalir, berdasarkan persamaan hukum Ohm :

    • Transistor
    Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung arus (switching), stabilisasi tegangan, dan modulasi sinyal. Transistor dapat berfungsi semacam kran listrik, di mana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya. Kapasitor NPN memiliki simbol seperti gambar di bawah ini:


    Terdapat rumus rumus dalam mencari transistor seperti rumus di bawah ini:
    Rumus dari Transitor adalah :

    hFE = iC/iB

    dimana, iC = perubahan arus kolektor   

    iB = perubahan arus basis 

    hFE = arus yang dicapai


    Rumus dari Transitor adalah :


    Karakteristik Input
    Transistor adalah komponen aktif yang menggunakan aliran electron sebagai prinsip kerjanya didalam bahan. Sebuah transistor memiliki tiga daerah doped yaitu daerah emitter, daerah basis dan daerah disebut kolektor. Transistor ada dua jenis yaitu NPN dan PNP. Transistor memiliki dua sambungan: satu antara emitter dan basis, dan yang lain antara kolektor dan basis. Karena itu, sebuah transistor seperti dua buah dioda yang saling bertolak belakang yaitu dioda emitter-basis, atau disingkat dengan emitter dioda dan dioda kolektor-basis, atau disingkat dengan dioda kolektor.

    Bagian emitter-basis dari transistor merupakan dioda, maka apabila dioda emitter-basis dibias maju maka kita mengharapkan akan melihat grafik arus terhadap tegangan dioda biasa. Saat tegangan dioda emitter-basis lebih kecil dari potensial barriernya, maka arus basis (Ib) akan kecil. Ketika tegangan dioda melebihi potensial barriernya, arus basis (Ib) akan naik secara cepat.

    Pemberian bias 
            Ada beberapa macam rangkaian pemberian bias, yaitu: 
     1. Fixed bias yaitu, arus bias IB didapat dari VCC yang dihubungkan ke kaki B melewati tahanan R seperti gambar 58. Karakteristik Output.


    2.Self Bias adalah arus input didapatkan dari pemberian tegangan input VBB seperti gambar 60.


  • Sensor PH


pH atau derajat keasaman digunakan untuk menyatakan tingkat keasaaman atau basa yang dimiliki oleh suatu zat, larutan atau benda. pH normal memiliki nilai 7 sementara bila nilai pH > 7 menunjukkan zat tersebut memiliki sifat basa sedangkan nilai pH< 7 menunjukkan keasaman. pH 0 menunjukkan derajat keasaman yang tinggi, dan pH 14 menunjukkan derajat kebasaan tertinggi.

Pada prinsipnya pengukuran suatu pH adalah didasarkan pada potensial elektro kimia yang terjadi antara larutan yang terdapat didalam elektroda gelas (membran gelas) yang telah diketahui dengan larutan yang terdapat diluar elektroda gelas yang tidak diketahui. Hal ini dikarenakan lapisan tipis dari gelembung kaca akan berinteraksi dengan ion hidrogen yang ukurannya relatif kecil dan aktif, elektroda gelas tersebut akan mengukur potensial elektro kimia dari ion hidrogen. Untuk melengkapi sirkuit elektrik dibutuhkan elektroda pembanding. Sebagai catatan alat tersebut tidak mengukur arus tetapi hanya mengukur tegangan.

Grafik respon PH sensor:

  • Sensor Ultrasonik
Sensor ultrasonik adalah sebuah sensor yang berfungsi untuk mengubah besaran fisis berupa bunyi menjadi besaran listrik dan sebaliknya. Sensor ini bekerja berdasarkan prinsip dari pantulan suatu gelombang suara, dimana sensor ini menghasilkan gelombang suara yang kemudian menangkap kembali dengan perbedaan waktu sebagai dasar pengindra. Perbedaan waktu yang dipancarkan dan diterima kembali adalah berbanding lurus dengan jarak objek yang memantulkannya. Sensor ultrasonik ini umumnya digunakan untuk mendeteksi keberadaan suatu objek dalam jarak tertentu di depannya. Sensor ultrasonik mempunyai kemampuan mendeteksi objek lebih jauh terutama untuk benda-benda yang keras. Pada benda-benda yang keras yaitu yang mempunyai permukaan kasar gelombang ini akan dipantulkan lebih kuat daripada benda yang permukaannya lunak. Sensor ultrasonik ini terdiri dari rangkaian pemancar ultrasonik yang disebut transmitter dan rangkaian penerima ultrasonik disebut receiver. Pada perancangan alat ini digunakan sebuah sensor untuk membantu proses deteksi keberadaan tanaman dan juga untuk mengetahui jarak tanaman tesebut yaitu sensor ultrasonik. Adapun jenis sensor ultrasonik yang digunakan pada rancang bangun alat ini adalah sensor ultrasonik HC-SR04.



Sensor ultrasonik HC-SR04 adalah seri dari sensor jarak dengan gelombang ultrasonik, dimana didalam sensor terdapat dua bagian yaitu transmitter yang berfungsi sebagai pemancar gelombang dan receiver yang berfungsi sebagai penerima gelombang. Sensor ultrasonik HC-SR04 ini bisa digunakan untuk mengukur jarak benda dari 2cm – 400 cm dengan akurasi 3mm.

 Sensor ultrasonik ini memiliki 4 pin yaitu: ▪ Pin VCC sebagai pin masukan tegangan. ▪ Pin GND sebagai grounding. ▪ Pin Trigger untuk trigger keluarnya sinyal. ▪ Pin Echo untuk menangkap sinyal pantul dari benda. Gambar 2.3 Sensor Ultrasonik HC-SR04. 
Jarak antara sensor dan objek yang memantulkan kembali gelombang suara ultrasonik dapat dihitung dengan menggunakan rumus berikut: s =v x 𝑡/2 .................................................(1) 
Dalam hal ini s merupakan jarak benda, v merupakan kecepatan gelombang suara yaitu 344m/detik dan t merupakan waktu tempuh dari saat sinyal ultrasonik dipancarkan hingga kembali ke penerima

grafik respon sensor ultrasonik



  • Heater
    Heater, dalam konteks umum, merujuk pada perangkat yang dirancang untuk menghasilkan panas dan meningkatkan suhu dalam suatu ruangan atau sistem tertentu. Biasanya menggunakan elemen pemanas, seperti kawat pemanas atau elemen pemanas keramik, heater mengubah energi listrik menjadi panas yang dipancarkan ke sekitarnya. Penggunaan heater dapat bervariasi dari pemanas ruangan untuk kenyamanan termal di rumah atau kantor hingga aplikasi industri yang memerlukan kontrol suhu yang ketat. Selain itu, heater juga dapat menjadi bagian dari berbagai perangkat, termasuk peralatan laboratorium, mesin, atau alat elektronik yang memerlukan suhu tertentu untuk beroperasi secara optimal.

    Prinsip Kerja
    Prinsip kerja heater didasarkan pada konsep transformasi energi listrik menjadi panas. Biasanya, heater dilengkapi dengan elemen pemanas, seperti kawat pemanas atau elemen pemanas keramik, yang memiliki resistansi listrik tinggi. Ketika arus listrik mengalir melalui elemen pemanas ini, resistansi menyebabkan pemanasan, dan energi listrik diubah menjadi panas. Panas yang dihasilkan kemudian dipancarkan ke lingkungan sekitarnya, meningkatkan suhu di sekitar heater. Prinsip ini digunakan baik dalam pemanas ruangan konvensional maupun dalam berbagai aplikasi industri di mana kontrol suhu adalah faktor kritis. Beberapa heater juga dilengkapi dengan sensor suhu atau termostat untuk memantau dan mengatur suhu, memastikan kenyamanan atau kestabilan suhu yang diinginkan sesuai dengan kebutuhan pengguna atau spesifikasi aplikasi.
  • Baterai
Baterai (Battery) adalah sebuah alat yang dapat merubah energi kimia yang disimpannya menjadi energi Listrik yang dapat digunakan oleh suatu perangkat Elektronik. Hampir semua perangkat elektronik yang portabel seperti Handphone, Laptop, Senter, ataupun Remote Control menggunakan Baterai sebagai sumber listriknya. Dengan adanya Baterai, kita tidak perlu menyambungkan kabel listrik untuk dapat mengaktifkan perangkat elektronik kita sehingga dapat dengan mudah dibawa kemana-mana. Dalam kehidupan kita sehari-hari, kita dapat menemui dua jenis Baterai yaitu Baterai yang hanya dapat dipakai sekali saja (Single Use) dan Baterai yang dapat di isi ulang (Rechargeable). Baterai simbol seperti gambar di bawah ini:

Gambar Baterai pada Proteus

  • LCD 20x4
LCD (Liquid Crystal Display) merupakan komponen elektronika yang berfungsi untuk menampilkan suatu data dapat berupa karakter, huruf, symbol maupun grafik. Karena ukurannya yang kecil maka LCD banyak dipasangkan dengan Mikrokontroller. LCD tersedia dalam bentuk modul yang mempunyai pin data, control catu daya, dan pengatur kontras tampilan.
gambar LCD 20x4
spesifikasi LCD 20x4

  • Modul PCF8574

    Merupakan modul expansion board untuk mengatur hingga 8 pin I/O. menggunakan komunikasi secara I2C, artinya dengan 2 pin (SDA/SCL) maka kita dapat mengatur hingga 8 pin yg dapat dijadikan input output. modul ini juga dapat di cascade, hingga 8 modul atau hingga 64 pin input output.
  • Ground
Ground Berfungsi sebagai untuk meniadakan beda potensial dengan mengalirkan arus sisa dari kebocoran tegangan atau arus pada rangkaian.


5. Percobaan [Kembali]

A. Prosedur [Kembali]

1) Download library yang diperlukan (dapat dilihat pada bagian download dalam blog)     
2) Buka proteus yang sudah diinstal untuk membuat rangkaian.
3) Tambahkan komponen seperti Arduino, sensor, dan perangkat lainnya lalu susun menjadi rangkaian.
4) Buka Arduino IDE yang sudah diinstal.
5) Di Arduino IDE, pergi ke menu "File" > "Preferences".
6) Pastikan opsi "Show verbose during compile" dicentang untuk mendapatkan informasi detail saat kompilasi.
7) Salin kode program Arduino pada blog kemudian tempelkan program tadi ke Arduino IDE.
8) Kompilasikan kode dengan menekan tombol "Verify" di Arduino IDE.
9) Cari dan salin path file HEX yang dihasilkan selama proses kompilasi.
10) Kembali ke Proteus dan pilih Arduino yang telah Anda tambahkan di rangkaian.
11) Buka opsi "Program File" dan tempelkan path HEX yang telah Anda salin dari Arduino IDE.
l2) Jalankan simulasi di Proteus

B. Hardware dan Diagram Blok [Kembali]



C. Rangkaian Simulasi dan Prinsip Kerja [Kembali]



Program ini merupakan solusi otomatis yang canggih untuk mengelola kondisi kolam ikan dengan lebih kompleks. Menggunakan sensor pH, suhu, dan ultrasonik, program tidak hanya memonitor parameter dasar, tetapi juga mengintegrasikan kontrol dinamis terhadap perangkat eksternal. Sensor suhu tidak hanya memberikan peringatan saat suhu di luar batas, tetapi juga menyesuaikan operasi pemanas dan water chiller secara adaptif untuk menjaga suhu dalam kisaran optimal.

Selain itu, program ini menggunakan algoritma pintar untuk menginterpretasi data sensor dan mengambil tindakan berdasarkan kondisi lingkungan yang kompleks. Misalnya, ketika nilai pH terdeteksi di luar rentang normal, program dapat menentukan jenis bahan kimia yang perlu ditambahkan untuk menormalisasi pH. Begitu juga dengan ketinggian air, di mana program dapat mengelola pompa dengan kecerdasan artifisial untuk mempertahankan tingkat air yang tepat dengan memperhitungkan faktor-faktor seperti cuaca dan evapotranspirasi.

Sistem ini memberikan visibilitas menyeluruh melalui LCD, menampilkan bukan hanya nilai sensor tetapi juga solusi yang diambil oleh program untuk menjaga kolam dalam kondisi optimal. Dengan integrasi LED sebagai indikator visual, program memberikan informasi yang cepat dan mudah dipahami tentang kondisi kolam. Secara keseluruhan, program ini merupakan solusi terkompleks untuk pengelolaan kolam ikan yang cerdas dan adaptif.

D. Flowchart dan Listing Program [Kembali]




PROGRAM
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Inisialisasi LCD
LiquidCrystal_I2C lcd(0x27, 20, 4); 

// Pin analog untuk sensor pH, suhu, dan sensor ultrasonik HC-SR04 (Trigger dan Echo)
const int pinPh = A0;
const int pinSuhu = A1;
const int pinTrigger = 8; // Pin trigger HC-SR04 diubah menjadi pin digital 8
const int pinEcho = A3;    // Pin echo HC-SR04

// Nilai batas untuk pH, suhu, dan ketinggian air
const float batasBawahPh = 6.0;  // Batas bawah untuk pH normal
const float batasAtasPh = 9.0;  // Batas atas untuk pH normal
const float batasBawahSuhu = 26.0;
const float batasAtasSuhu = 30.0;
const float batasTinggiAirPompa = 100.0; // Batas tinggi air untuk menyalakan pompa (dalam cm)

// Pin output untuk mengendalikan perangkat eksternal
const int pinPemanas = 2;
const int pinWaterChiller = 3;
const int pinLed1 = 4;
const int pinLed2 = 5;
const int pinPompa = 6;
const int pinLed3 = 7;

void setup() {
  Serial.begin(9600);

  // Inisialisasi LCD
  lcd.begin(20, 4);
  lcd.print("Monitoring Kolam");

  delay(1000);

  lcd.clear();
  lcd.print("Nilai suhu :");
  lcd.setCursor(0, 1);
  lcd.print("Nilai pH   :");
  lcd.setCursor(0, 2);
  lcd.print("Tinggi air :");

  // Konfigurasi pin sebagai OUTPUT
  pinMode(pinPemanas, OUTPUT);
  pinMode(pinWaterChiller, OUTPUT);
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
  pinMode(pinPompa, OUTPUT);
  pinMode(pinLed3, OUTPUT);

  // Konfigurasi pin untuk sensor ultrasonik
  pinMode(pinTrigger, OUTPUT);
  pinMode(pinEcho, INPUT);
}

float bacaSensorUltrasonik() {
  digitalWrite(pinTrigger, LOW);
  delayMicroseconds(2);
  digitalWrite(pinTrigger, HIGH);
  delayMicroseconds(10);
  digitalWrite(pinTrigger, LOW);

  float duration = pulseIn(pinEcho, HIGH);
  float distance = (duration * 0.0343) / 2; // Menghitung jarak dalam cm

  return distance;
}

void loop() {
  // Baca nilai sensor pH
  float pHValue = analogRead(pinPh) * 14.0 / 1024.0; // Langsung mengonversi ke pH

  // Baca nilai sensor suhu
  int rawSuhu = analogRead(pinSuhu);
  float suhu = (rawSuhu / 1024.0) * 5000; // Konversi ke mV
  suhu = suhu / 10; // Konversi ke derajat Celsius

  // Baca nilai sensor ketinggian air (ultrasonik HC-SR04)
  float jarakUltrasonik = bacaSensorUltrasonik();
  float ketinggianAir = 250.0 - jarakUltrasonik; // Ketinggian air dihitung dari 250 cm - jarak sensor ultrasonik

  // Tampilkan nilai pada LCD
  lcd.setCursor(12, 0);
  lcd.print(suhu, 1); // Menampilkan satu digit desimal untuk suhu
  lcd.setCursor(12, 1);
  lcd.print(pHValue, 2); // Menampilkan dua digit desimal untuk pH
  lcd.setCursor(12, 2);
  lcd.print(ketinggianAir, 1); // Menampilkan satu digit desimal untuk ketinggian air

  // Inisialisasi status peringatan
  bool suhuRendah = false;
  bool suhuTinggi = false;
  bool phRendah = false;
  bool phTinggi = false;
  bool airKurang = false;
  bool airBerlebih = false;

  // Peringatan jika suhu di luar kisaran yang diinginkan
  if (suhu < batasBawahSuhu) {
    lcd.setCursor(0, 3);
    lcd.print("suhu rendah");
    suhuRendah = true;
    digitalWrite(pinPemanas, HIGH);
    delay(500); // Delay 0.5 detik sebelum menampilkan peringatan berikutnya
  } else if (suhu > batasAtasSuhu) {
    lcd.setCursor(0, 3);
    lcd.print("suhu tinggi");
    suhuTinggi = true;
    digitalWrite(pinWaterChiller, HIGH);
    delay(500);
  } else {
    lcd.setCursor(0, 3);
    lcd.print("            ");
    digitalWrite(pinPemanas, LOW);
    digitalWrite(pinWaterChiller, LOW);
  }

  // Peringatan jika pH di luar batas yang diinginkan
  if (pHValue < batasBawahPh) {
    lcd.setCursor(0, 3);
    lcd.print("ph rendah");
    phRendah = true;
    digitalWrite(pinLed1, HIGH);
    delay(500);
  } else if (pHValue > batasAtasPh) {
    lcd.setCursor(0, 3);
    lcd.print("ph tinggi");
    phTinggi = true;
    digitalWrite(pinLed2, HIGH);
    delay(500);
  } else {
    lcd.setCursor(0, 3);
    lcd.print("         ");
    digitalWrite(pinLed1, LOW);
    digitalWrite(pinLed2, LOW);
  }

  // Kontrol untuk ketinggian air
  if (ketinggianAir < batasTinggiAirPompa) {
    lcd.setCursor(0, 3);
    lcd.print("air rendah");
    airKurang = true;
    digitalWrite(pinPompa, HIGH);
    delay(500);
  } else {
    lcd.setCursor(0, 3);
    lcd.print("air cukup");
    airKurang = false;
    digitalWrite(pinPompa, LOW);
    delay(500);
  }

  // Menampilkan kondisi normal jika tidak ada peringatan
  if (!suhuRendah && !suhuTinggi && !phRendah && !phTinggi && !airKurang && !airBerlebih) {
    lcd.setCursor(0, 3);
    lcd.print("Normal");
    digitalWrite(pinLed3, HIGH);
  } else {
    lcd.setCursor(0, 3);
    lcd.print("        ");
    digitalWrite(pinLed3, LOW);
  }

  delay(1000); // Delay untuk mengurangi frekuensi pembacaan
}

PENJELASAN PROGRAM

1. Inisialisasi dan Setup:

   - Program dimulai dengan menyertakan library yang diperlukan dan menginisialisasi LCD.

   - Mendefinisikan pin-pin untuk sensor pH, suhu, ultrasonik, serta output untuk perangkat eksternal.

   - Menetapkan nilai batas untuk pH, suhu, dan ketinggian air.

   - Dalam fungsi setup(), program menginisialisasi komunikasi serial, LCD, dan mengonfigurasi pin-pin sebagai input atau output.

2. Fungsi Baca Sensor Ultrasonik:

   - Fungsi bacaSensorUltrasonik() dibuat untuk mengukur jarak menggunakan sensor ultrasonik HC-SR04.

3. Loop Utama:

   - Program masuk ke dalam fungsi loop() yang akan berjalan terus-menerus.

4. Pembacaan Sensor:

   - Membaca nilai sensor pH dan mengonversinya ke skala pH.

   - Membaca nilai sensor suhu dan mengonversinya ke derajat Celsius.

   - Memanggil fungsi bacaSensorUltrasonik() untuk mengukur ketinggian air.

5. Menampilkan Data pada LCD:

   - Menampilkan nilai suhu, pH, dan ketinggian air pada LCD.

6. Pengecekan Kondisi dan Peringatan:

   - Memeriksa nilai suhu, pH, dan ketinggian air terhadap batas-batas yang telah ditentukan.

   - Menampilkan peringatan pada LCD dan mengaktifkan perangkat eksternal sesuai kondisi:

     - Jika suhu rendah, mengaktifkan pemanas.

     - Jika suhu tinggi, mengaktifkan water chiller.

     - Jika pH rendah atau tinggi, menyalakan LED tertentu.

     - Jika ketinggian air rendah, mengaktifkan pompa.

7. Menampilkan Status Normal:

   - Jika semua parameter dalam kondisi normal, menampilkan "Normal" pada LCD dan menyalakan LED3.

8. Delay:

   - Program menunggu selama 1 detik sebelum memulai loop berikutnya untuk mengurangi frekuensi pembacaan.

E. Kondisi [Kembali]

Program ini dirancang untuk memantau dan mengendalikan kondisi kolam secara otomatis. Saat dijalankan, program pertama-tama menginisialisasi semua komponen yang diperlukan, termasuk LCD, sensor, dan pin output. Dalam loop utamanya, program secara berurutan membaca nilai dari sensor pH, suhu, dan ketinggian air menggunakan sensor ultrasonik. Data-data ini kemudian ditampilkan pada LCD untuk memudahkan pemantauan. 

Setelah pembacaan sensor, program melakukan serangkaian pengecekan terhadap nilai-nilai yang diperoleh. Ia membandingkan suhu, pH, dan ketinggian air dengan batas-batas yang telah ditentukan sebelumnya. Berdasarkan hasil pemeriksaan ini, program memberikan respons yang sesuai. Jika suhu terlalu rendah, pemanas dinyalakan; jika terlalu tinggi, water chiller diaktifkan. Untuk pH yang tidak sesuai, LED peringatan dinyalakan. Jika ketinggian air kurang dari batas yang ditentukan, pompa air diaktifkan untuk menambah air.

Program juga menampilkan peringatan yang relevan pada LCD, memberikan informasi visual tentang kondisi yang memerlukan perhatian. Jika semua parameter berada dalam rentang normal, program menampilkan status "Normal" dan menyalakan LED indikator khusus. Proses ini berulang setiap satu detik, memastikan pemantauan yang konsisten dan respons yang cepat terhadap perubahan kondisi kolam. 

Program tersebut memantau dan merespons beberapa kondisi kunci dalam pengelolaan kolam:

1. Suhu Air:

   - Kondisi rendah: Jika suhu < 26°C, program menampilkan "suhu rendah" dan mengaktifkan pemanas.

   - Kondisi tinggi: Jika suhu > 30°C, program menampilkan "suhu tinggi" dan mengaktifkan water chiller.

   - Kondisi normal: Jika suhu antara 26-30°C, tidak ada tindakan khusus.

2. Tingkat pH:

   - Kondisi rendah: Jika pH < 6.0, program menampilkan "ph rendah" dan menyalakan LED1.

   - Kondisi tinggi: Jika pH > 9.0, program menampilkan "ph tinggi" dan menyalakan LED2.

   - Kondisi normal: Jika pH antara 6.0-9.0, tidak ada tindakan khusus.

3. Ketinggian Air:

   - Kondisi rendah: Jika ketinggian air < 100 cm, program menampilkan "air rendah" dan mengaktifkan pompa.

   - Kondisi normal: Jika ketinggian air ≥ 100 cm, program menampilkan "air cukup" dan mematikan pompa.

4. Kondisi Keseluruhan:

   - Normal: Jika semua parameter (suhu, pH, ketinggian air) dalam rentang normal, program menampilkan "Normal" dan menyalakan LED3.

   - Tidak normal: Jika ada satu atau lebih parameter di luar rentang normal, LED3 dimatikan dan peringatan yang sesuai ditampilkan.

F. Video Simulasi [Kembali]

                                        


G. Download File [Kembali]











BAHAN PRESENTASI MATA KULIAH JURUSAN TEKNIK ELEKTRO