Akuakultur, atau budidaya ikan, telah menjadi bagian integral dari industri perikanan modern. Dalam upaya meningkatkan efisiensi dan kesejahteraan Lobster yang dibudidayakan, penggunaan teknologi dalam bentuk sistem kontrol tambak lobster menjadi semakin penting. Sistem kontrol tambak lobster bertujuan untuk kemudahan bagi petani dalam proses pertumbuhan, kesehatan, dan produksi lobster secara keseluruhan.
- Memenuhi Syarat Tugas Besar Kelas Mikroprosesor dan Mikrokontroler
- Perancangan Kontrol Pakan Ikan Otomatis Untuk Kemudahan Bagi Lobster dalam Pengontrolan tambak lobster
3.1 Alat
a. Jumper
b. Papan Rangkaian
c. Battery
3.2 Bahan
a. Resistor
b. Potensiometer
3.3 Komponen Input
a. Sensor PH Meter
b. UV Sensor
c. Rain Sensor
3.3 Komponen Output
a. Motor DC
b. LCD
c. LED
3.4 Komponen Lainnya
a. Arduino
1. PH Meter Sensor
Spesifikasi
- Tegangan Catu Daya: 5VDC
- Rentang Pengukuran: 0 - 14PH
- Suhu pengukuran: 0 - 60 ℃
- Akurasi: ± 0.1pH (25 ℃)
- Waktu Respon: ≤ 1 menit
- Sensor pH dengan Konektor BNC
- Antarmuka : pH2.0 (tambalan 3 kaki)
- Adjustable Potensiometer
- Indikator Daya LED
- Ukuran modul: 43 x 32mm (1.69x1.26 ")
Sensor UV digunakan untuk menentukan paparan radiasi
ultraviolet di laboratorium atau pengaturan lingkungan. Itu dapat menggunakan
elemen fotosensitif untuk mengubah sinyal ultraviolet menjadi sinyal listrik
terukur melalui mode fotovoltaik dan mode panduan cahaya.
Sensor UV
(Ultraviolet) adalah perangkat elektronik yang dirancang khusus untuk
mendeteksi radiasi ultraviolet dalam spektrum elektromagnetik. Radiasi
ultraviolet terletak di luar spektrum cahaya yang terlihat oleh mata manusia,
dan terdiri dari sinar UV-A, UV-B, dan UV-C. Berikut adalah beberapa penjelasan
mengenai UV sensor:
Fungsi Utama:
- Deteksi Radiasi UV: Sensor UV digunakan untuk mendeteksi intensitas radiasi ultraviolet dalam lingkungan tertentu.
Penggunaan Umum:
- Keamanan UV: Sensor UV dapat digunakan dalam perangkat keamanan untuk mendeteksi paparan radiasi UV yang tinggi, seperti dalam penggunaan pada goggle atau pakaian pelindung untuk pekerja yang terpapar radiasi UV.
- Vin : DC 5V - 9V
- Radius : 180 derajat
- Jarak Terdeteksi : 5.7 m
- 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
SPESIFIKASI :
- Tegangan kerja: 3-5 VDC nArus kerja: < 20mA.
- Tipe sensor: analog.
- Max output: 2.5v (saat sensor terendam semua)
- Luas area deteksi: 16x40m Suhu kerja: 10-30 C.
- Ukuran: 20x62x8 mm.
Spesifikasi:
- Range:10 to 80cm
- Update frequency / period:25Hz / 40ms
- Direction of the measured distance:Very directional, due to the IR LED
- Max admissible angle on flat surface:> 40°
- Power supply voltage:4.5 to 5.5V
- Noise on the analog output:< 200mV
- Mean consumption:35mA
- Peak consumption:about 200Ma
Cara menghitung nilai resistor:
Tabel warna
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%.
Spesifikasi :
- Male - Male
- Male - Female
- Female - Female
- Penyapu atau disebut juga dengan Wiper
- Element Resistif
- Terminal
- 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.
- 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
- 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)
- Microcontroller : ATmega328P
- Operating Voltage : 5V
- Input Voltage (recommended) : 7-12V
- Input Voltage (limit) : 6-20V
- Digital I/O Pin : 14 (of which 6 provide PWM output)
- PWM Digital I/O Pin : 6
- Analog Input Pin : 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
- VIN. Tegangan masukan kepada board Arduino ketika itu menggunakan sumber daya eksternal (sebagai pengganti dari 5volt koneksi USB atau sumber daya lainnya).
- 5V. Catu daya digunakan untuk daya mikrokontroler dan komponen lainnya.
- 3v3. Sebuah pasokan 3,3volt dihasilkan oleh regulator on-board.
- GND. Ground pin Input dan Output
- 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.
- 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.
- PWM: 3, 5, 6, 9, 10, dan 11. Menyediakan output PWM 8-bit dengan fungsi analogWrite ().
- SPI: 10 (SS), 11 (Mosi), 12 (MISO), 13 (SCK). Pin ini mendukung komunikasi SPI menggunakan SPI library.
- 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:
- I2C: A4 (SDA) dan A5 (SCL). Dukungan I2C (TWI) komunikasi menggunakan perpustakaan Wire.
- Aref. Tegangan referensi (0 sampai 5V saja) untuk input analog. Digunakan dengan fungsi analogReference ().
- Reset. Bawa baris ini LOW untuk me-reset mikrokontroler.
- Siapkan semua alat dan bahan yang diperlukan
- Disarankan agar membaca datasheet setiap komponen
- Cari komponen yang diperlukan di library proteus
- Rangkailah rangkaian sesuai dengan gambar dibawah
- Jika ingin mensimulasikan jangan lupa masukkan library arduino
- Coba jalankan rangkaian apabila output LCD maka rangkaian bisa digunakan
- Diagram Block
- Prinsip Kerja
- Jika Sensor jarak mendeteksi jarak didalam penyimpanan pakan lebih dari 50 cm artinya pakan akan habis dan outputnya yaitu LCD sebagai pengingat untuk isi pakan dengan tertulis "ISI PAKAN" dan Jika Sensor jarak mendeteksi jarak didalam penyimpanan pakan kurang dari 50 cm artinya pakan akan habis dan outputnya yaitu LCD sebagai pengingat untuk isi pakan dengan tertulis "PAKAN AMAN".
- Jika Water Level Sensor mendeteksi nilai level air kurang dari 50 maka artinya air level air berkurang dan outputnya motor sebagai pengisi air kembali agar level air kembali normal.
- Jika sensor uv mendeteksi hari pagi maka sensor memiliki tegangan 0,5-1 volt dan malam 2-3 volt maka motor sebagai outpunya aktif dan diluar tegangan pagi dan malam motor mati.
- jika terjadinya hujan maka sensor hujan akan mendeteksi adanya hujan dan motor pelindung hujan sebagai outputnya akan bekerja menutup pakan dengan tujuan agar air tidak berlebihan didalam pakan dan ph tetap stabil.
- jika PH sensor mendeteksi ph air dibawah 6 ph air maka led sebagai output sensor hidup sebagai penanda bahwa ph air asam.
- Flowchart
- Listing Program
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal.h>
// Definisikan pin untuk Rain Sensor dan Motor 1
const int rainSensorPin = 10; // Pin digital untuk Rain Sensor
const int motorPin1 = 11; // Pin digital untuk Motor 1
// Definisikan pin untuk sensor GP2D12 dan LCD LM016L
const int sensorPin = A2;
// Pin analog untuk sensor GP2D12
const int rs = 7; // Pin RS LCD LM016L
const int en = 6; // Pin EN LCD LM016L
const int d4 = 5; // Pin D4 LCD LM016L
const int d5 = 4; // Pin D5 LCD LM016L
const int d6 = 3; // Pin D6 LCD LM016L
const int d7 = 2; // Pin D7 LCD LM016L
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
// Definisikan pin untuk water level sensor dan Motor 3
const int waterLevelSensorPin = A0; // Pin analog untuk water level sensor
const int motorPin3 = 9; // Pin digital untuk Motor 3
// Definisikan pin untuk pH meter sensor dan LED (yellow)
const int pHMeterSensorPin = A1; // Pin analog untuk pH meter sensor
const int ledPin = 8; // Pin digital untuk LED (yellow)
// Definisikan pin untuk UV sensor dan Motor
const int uvSensorPin = A3;
// Pin analog untuk sensor UV
const int motorPin = 13;
// Pin untuk mengontrol motor
void setup() {
// Set pin mode
untuk Rain Sensor dan Motor 1
pinMode(rainSensorPin, INPUT);
pinMode(motorPin1,
OUTPUT);
// Set pin mode
untuk sensor GP2D12 dan LCD LM016L
pinMode(sensorPin,
INPUT);
lcd.begin(16, 2);
// Set pin mode
untuk water level sensor dan Motor 3
pinMode(waterLevelSensorPin, INPUT);
pinMode(motorPin3,
OUTPUT);
// Set pin mode
untuk pH meter sensor dan LED (yellow)
pinMode(pHMeterSensorPin, INPUT);
pinMode(ledPin,
OUTPUT);
// Set pin mode
untuk UV sensor dan Motor
pinMode(uvSensorPin,
INPUT);
pinMode(motorPin,
OUTPUT);
digitalWrite(motorPin, LOW); //
Matikan motor saat awal
// Mulai Serial
Monitor untuk memantau nilai sensor
Serial.begin(9600);
}
void loop() {
// Baca nilai dari
Rain Sensor
int rainSensorValue
= digitalRead(rainSensorPin);
Serial.print("Rain Sensor Value: ");
Serial.println(rainSensorValue);
// Cek apakah Rain
Sensor mendeteksi hujan (nilai 1)
if (rainSensorValue
== HIGH) {
digitalWrite(motorPin1,
HIGH);
Serial.println("Motor 1 Aktif - Hujan Terdeteksi");
} else {
digitalWrite(motorPin1, LOW);
Serial.println("Motor 1 Mati - Tidak Ada Hujan Terdeteksi");
}
// Baca nilai jarak
dari sensor GP2D12
int distance =
analogRead(sensorPin);
int cm =
map(distance, 0, 1023, 0, 100);
// Tampilkan nilai
jarak di Serial Monitor
Serial.print("Jarak: ");
Serial.print(cm);
Serial.println(" cm");
// Tampilkan pesan
di LCD berdasarkan kondisi jarak
lcd.clear();
if (cm > 50) {
lcd.setCursor(0,
0);
lcd.print("Isi Pakan");
lcd.setCursor(0,
1);
lcd.print("Jarak > 50 cm");
} else {
lcd.setCursor(0,
0);
lcd.print("Pakan Aman");
lcd.setCursor(0,
1);
lcd.print("Jarak <= 50 cm");
}
// Baca nilai dari
water level sensor
int waterLevel =
analogRead(waterLevelSensorPin);
int waterPercentage
= map(waterLevel, 0, 1023, 0, 100);
// Tampilkan nilai
level air di Serial Monitor
Serial.print("Level Air: ");
Serial.print(waterPercentage);
Serial.println("%");
// Cek apakah level
air kurang dari 50%
if (waterPercentage
< 50) {
digitalWrite(motorPin3, HIGH);
Serial.println("Motor
3 Aktif - Level Air Rendah");
} else {
digitalWrite(motorPin3, LOW);
Serial.println("Motor 3 Mati - Level Air Cukup");
}
// Baca nilai dari
pH meter sensor
int pHValue =
analogRead(pHMeterSensorPin);
int pHPercentage =
map(pHValue, 0, 1023, 0, 100);
// Tampilkan nilai
pH di Serial Monitor
Serial.print("pH Air: ");
Serial.print(pHPercentage);
Serial.println("%");
// Cek apakah pH air
kurang dari 60% atau lebih dari 80%
if (pHPercentage
< 60 || pHPercentage > 80) {
digitalWrite(ledPin, HIGH);
Serial.println("LED Aktif - pH Air di Luar Batas Normal");
} else {
digitalWrite(ledPin, LOW);
Serial.println("LED Mati - pH Air Normal");
}
// Baca tegangan
dari sensor UV
int sensorValue =
analogRead(uvSensorPin);
// Konversi nilai
analog menjadi tegangan
float voltage =
sensorValue * (5.0 / 1023.0);
// Tampilkan nilai
tegangan pada Serial Monitor
Serial.print("Voltage: ");
Serial.println(voltage);
// Cek kondisi
tegangan dan kontrol motor
if ((voltage >=
0.5 && voltage <= 1.0) || (voltage >= 2.0 && voltage
<= 3.0)) {
// Hidupkan motor
selama 2 menit (120000 milidetik)
digitalWrite(motorPin, HIGH);
delay(120000);
// Matikan motor
setelah 2 menit
digitalWrite(motorPin, LOW);
} else {
// Matikan motor
jika tegangan tidak sesuai
digitalWrite(motorPin, LOW);
}
// Tunda selama 1
detik sebelum membaca nilai sensor lagi
delay(1000);
}
Download HTML klik disini
Download Rangkaian Simulasi Proteus klik disini
Download Rangkaian Simulasi Flowchart Proteus Klik Disini
Download Program Arduino klik disini
Download Library Arduino klik disini
Download Library Water Level Sensor klik disini
Download Library Sensor PH Meter klik disini
Download Library Rain Sensor klik disini
Download Datasheet Arduino UNO klik disini
Download Datasheet UV Sensor klik disini
Download Datasheet Water Level Sensor klik disini
Download Datasheet Sensor PH Meter klik disini
Download Datasheet Sensor Jarak klik disini
Download Datasheet Rain Sensor klik disini
Tidak ada komentar:
Posting Komentar